OSDN Git Service

2006-04-18 Paolo Bonzini <bonzini@gnu.org>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2006-04-18  Paolo Bonzini  <bonzini@gnu.org>
2
3         PR tree-optimization/26821
4         * tree-ssa-math-opts.c (get_constant_one): New.
5         (insert_reciprocals): Use it.
6
7 2006-04-17  Geoffrey Keating  <geoffk@apple.com>
8
9         * dwarf2out.c (free_AT): Delete.
10         (remove_AT): Update string ref counts.
11         (remove_child_TAG): Don't call free_die.
12         (free_die): Delete.
13         (break_out_includes): Don't call free_die on DW_TAG_GNU_BINCL
14         or DW_TAG_GNU_EINCL.
15         (prune_unused_types_walk_attribs): Reset string refcounts.
16         (prune_unused_types_update_strings): New.
17         (prune_unused_types_prune): Don't make unnecessary stores.  Don't
18         call free_die.  Do call prune_unused_types_update_strings.
19         (prune_unused_types): Empty debug_str_hash.
20
21 2006-04-17  Roger Sayle  <roger@eyesopen.com>
22
23         * expr.c (expand_assignment): Optimize away no-op moves where the
24         source and destination are equal and have no side-effects.
25
26 2006-04-17  Richard Guenther  <rguenther@suse.de>
27
28         PR target/26826
29         * reload.c (push_reload): Guard calls to get_secondary_mem
30         for memory subregs.
31
32 2006-04-16  Kazu Hirata  <kazu@codesourcery.com>
33
34         * alias.c (reg_base_value, old_reg_base_value): Change the
35         type to VEC(rtx,gc) *.
36         (REG_BASE_VALUE, find_base_value, record_set,
37         init_alias_analysis): Use VEC instead of VARRAY.
38
39         * alias.c (alias_sets): Change the type to
40         VEC(alias_set_entry,gc) *.
41         (get_alias_set_entry, new_alias_set, record_alias_subset): Use
42         VEC instead of VARRAY.
43         (last_alias_set): Remove.
44
45         * cgraph.h (cgraph_edge_p): New.
46         Update the prototype of cgraph_function_versioning.
47         * cgraphunit.c (cgraph_copy_node_for_versioning,
48         cgraph_function_versioning): Use VEC instead of VARRAY.
49         * ipa-cp.c (ipcp_insert_stage): Likewise.
50
51 2006-04-16  Roger Sayle  <roger@eyesopen.com>
52
53         PR target/26961
54         * fold-const.c (fold_ternary): When converting "A ? B : C" into either
55         "A op B" or "A op C", we may need to convert A to the type of B and C.
56
57 2006-04-16  Adam Nemet  <anemet@caviumnetworks.com>
58
59         * target.h (struct gcc_target): Add mode_rep_extended.
60         * rtlanal.c (num_sign_bit_copies_in_rep): New global.
61         (init_num_sign_bit_copies_in_rep): Initialize it using
62         mode_rep_extended.
63         (truncate_to_mode): Use it.
64         (init_rtlanal): Call init_num_sign_bit_copies_in_rep.
65         * targhooks.h (default_mode_rep_extended): Declare it.
66         * targhooks.c (default_mode_rep_extended): Define it.
67         * target-def.h (TARGET_MODE_REP_EXTENDED): New macro.  Default to
68         default_mode_rep_extended.
69         (TARGET_INITIALIZER): Include it.
70         * doc/tm.texi (Misc): Document it.
71         * config/mips/mips.c (TARGET_TRUNCATED_TO_MODE): Override it.
72         (mips_truncated_to_mode): New function.
73
74 2006-04-16  Roger Sayle  <roger@eyesopen.com>
75
76         PR middle-end/25474
77         * expr.c (compress_float_constant): Copy the narrow constant into
78         a new pseudo before extending it to its final width.
79
80 2006-04-16  Roger Sayle  <roger@eyesopen.com>
81             Andrew Pinski  <pinskia@gcc.gnu.org>
82             Dale Johannesen  <dalej@apple.com>
83
84         PR target/24076
85         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Add
86         special case code to implement V8HImode and V16QImode with SSE2.
87
88 2006-04-15  Roger Sayle  <roger@eyesopen.com>
89
90         * config/i386/i386.c (ix86_va_start): Ensure all integer constant
91         trees are constructed with a suitable tree type.
92
93 2006-04-15  Roger Sayle  <roger@eyesopen.com>
94
95         * tree.c (integer_zerop): Ignore TREE_CONSTANT_OVERFLOW.
96         (integer_onep): Likewise.
97         (integer_all_onesp): Likewise.
98         (integer_pow2p): Likewise.
99         (integer_nonzerop): Likewise.
100         (real_zerop): Likewise.
101         (real_onep): Likewise.
102         (real_twop): Likewise.
103         (real_minus_onep): Likewise.
104         (int_size_in_bytes): Likewise.
105         (host_integerp): Likewise.
106
107 2006-04-15  Kazu Hirata  <kazu@codesourcery.com>
108
109         * cfgcleanup.c, config/dfp-bit.c, expr.c, fold-const.c,
110         jump.c, mips-tfile.c, omp-low.c, sched-int.h,
111         tree-ssa-loop-prefetch.c, tree-vrp.c: Fix comment typos.
112
113         * tree-ssa-structalias.h (alias_info): Remove num_references.
114
115 2006-04-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
116
117         * pa.md (output_bb patterns): Shorten long branch alternatives by 4.
118         (output_bvb patterns): Likewise.
119         * pa.c (output_bb): Use 'bb' insn for long branch case.
120         (output_bvb): Likewise use '{bvb|bb}' for long branch case.
121         (output_dbra): Use '{comb|cmpb}' for long branch case for alternative
122         1.  Correct length operand for alternatives 1 and 2.
123         (output_movb): Use '{comb|cmpb}' for long branch case for alternatives
124         1, 2 and 3.  Correct length operand for alternatives 1, 2 and 3.
125
126 2006-04-14  Roger Sayle  <roger@eyesopen.com>
127
128         * tree-cfg.c (make_edges, make_omp_sections_edges, move_stmt_r,
129         is_ctrl_altering_stmt): Reinstate RTH's changes from r112935 that
130         were accidentally reverted by r112959.
131
132 2006-04-15  Jakub Jelinek  <jakub@redhat.com>
133
134         PR middle-end/26823
135         * except.h (eh_region_outermost): New prototype.
136         * except.c (eh_region_outermost): New function.
137         * tree-cfg.c (find_outermost_region_in_block): Use it.
138
139 2006-04-14  Kazu Hirata  <kazu@codesourcery.com>
140
141         * local-alloc.c (rest_of_handle_local_alloc): Use VEC instead
142         of VARRAY.
143         * reload1.c (reg_equiv_memory_loc_varray): Rename to
144         reg_equiv_memory_loc_vec.  Change the type to VEC(rtx,gc) *.
145         (init_reload, reload): Use VEC instead of VARRAY.
146         * reload.h: Update the prototype for
147         reg_equiv_memory_loc_varray.
148
149 2006-04-14  Alexey Starovoytov  <alexey.starovoytov@sun.com>
150             Eric Botcazou  <ebotcazou@libertysurf.fr>
151
152         * config/sparc/sparc.c (emit_and_preserve): Allocate space for the
153         register save area.
154
155 2005-04-13  Uros Bizjak  <uros@kss-loka.si>
156
157         PR middle-end/27134
158         * builtins.c (expand_builtin_int_roundingfn): Use expand_normal()
159         to expand fallback builtin function call.
160
161 2006-04-14  Alan Modra  <amodra@bigpond.net.au>
162
163         PR middle-end/27095
164         * builtins.c: (expand_builtin_memset): Stabilize args before expansion
165         and emit libcall here in case the builtin fails.
166         (expand_builtin_strcmp): Always emit the libcall here on failure.
167
168 2006-04-14  Kazu Hirata  <kazu@codesourcery.com>
169
170         * basic-block.h (REG_BASIC_BLOCK): Use VEC instead of VARRAY.
171         * flow.c (reg_n_info): Change the type to
172         VEC(reg_info_p,heap) *.
173         * regclass.c (allocate_reg_info, free_reg_info): Use VEC
174         instead of VARRAY.
175         * regs.h (reg_info_p): New.
176         (REG_N_REFS, REG_FREQ, REG_N_SETS, REG_N_DEATHS,
177         REG_N_CALLS_CROSSED, REG_N_THROWING_CALLS_CROSSED,
178         REG_LIVE_LENGTH, REGNO_FIRST_UID, REGNO_LAST_UID): Use VEC
179         instead of VARRAY.
180
181 2006-04-13  Eric Botcazou  <ebotcazou@adacore.com>
182
183         * params.def (PARAM_MAX_SCHED_READY_INSNS): New parameter,
184         defaulting to 100.
185         * params.h (MAX_SCHED_READY_INSNS): New macro.
186         * haifa-sched.c: (queue_to_ready): Re-queue insns for the next cycle
187         past MAX_SCHED_READY_INSNS during the first scheduling pass.
188         (schedule_block): Delay insns past MAX_SCHED_READY_INSNS in
189         the ready list for 1 cycle during the first scheduling pass.
190         * doc/invoke.texi (--param): New parameter max-sched-ready-insns.
191
192 2006-04-13  Richard Henderson  <rth@redhat.com>
193
194         PR libgomp/26651
195         * gimple-low.c (lower_omp_directive): Remove dead code.
196         (lower_stmt): Do nothing except for openmp, except for OMP_PARALLEL.
197         * gimplify.c (gimplify_expr): Update for OMP_RETURN, OMP_CONTINUE.
198         * omp-low.c (struct omp_region): Move to tree-flow.h.
199         (root_omp_region): Export.
200         (omp_regions, lookup_omp_region): Remove.
201         (determine_parallel_type): Update for struct omp_region changes.
202         (dump_omp_region): Dump regions with block numbers.
203         (new_omp_region): Take type and block instead of stmt; malloc
204         instead of ggc.
205         (free_omp_region_1, free_omp_regions): New.
206         (expand_parallel_call): Take entry_stmt as argument; update for
207         changes to omp_region.
208         (remove_exit_barrier): Rewrite to update OMP_RETURN_NOWAIT.
209         (remove_exit_barriers): New.
210         (expand_omp_parallel): Update for struct omp_region changes.
211         (expand_omp_synch): Likewise.
212         (expand_omp): Likewise.
213         (expand_omp_for_static_nochunk): Likewise; update for OMP_CONTINUE.
214         (expand_omp_for_static_chunk): Likewise.
215         (expand_omp_for): Likewise.
216         (expand_omp_for_generic): Likewise; emit the proper GOMP_loop_end call.
217         (expand_omp_sections): Similarly, with GOMP_sections_end.
218         (expand_omp_single): New.
219         (build_omp_regions_1): Update for OMP_CONTINUE.
220         (execute_expand_omp): Call remove_exit_barriers, free_omp_regions.
221         (lower_omp_sections): Expand with OMP_CONTINUE, do not collect
222         OMP_SECTIONS_SECTIONS.
223         (lower_omp_single_simple): Don't emit barrier here.
224         (lower_omp_single_copy): Likewise.
225         (lower_omp_single): Fix bindings, and lower to straightline now.
226         (lower_omp_master, lower_omp_ordered): Likewise.
227         (lower_omp_critical): Likewise.
228         (lower_omp_for): Likewise.  Emit OMP_CONTINUE.
229         * tree-cfg.c (make_edges): Collect an omp_region tree, use it for
230         omp edges, free it afterward.
231         (make_omp_sections_edges): Remove.
232         (is_ctrl_altering_stmt): Don't bother checking flag_openmp.
233         (move_stmt_r): Handle OMP_CONTINUE.
234         * tree-flow.h (struct omp_region): Move from omp-low.c.  Switch 
235         statement pointers to basic blocks.  Add type member.
236         (root_omp_region, new_omp_region, free_omp_regions): Declare.
237         * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN, OMP_CONTINUE.
238         * tree-inline.c (estimate_num_insns_1): Likewise.
239         * tree-pretty-print.c (dump_generic_node): Likewise.
240         * tree-ssa-operands.c (get_expr_operands): Likewise.
241         * tree.def (OMP_SECTIONS): Remove OMP_SECTIONS_SECTIONS operand.
242         (OMP_RETURN): Rename from OMP_RETURN_EXPR.
243         (OMP_CONTINUE): New.
244         * tree.h (OMP_DIRECTIVE_P): Add OMP_CONTINUE.
245         (OMP_SECTIONS_SECTIONS): Remove.
246         (OMP_SECTION_LAST): New.
247         (OMP_RETURN_NOWAIT): New.
248
249 2006-04-13  Roger Sayle  <roger@eyesopen.com>
250
251         * fold-const.c (native_encode_vector, native_interpret_real):
252         Correct obvious mistakes in the previous check-in.
253
254 2006-04-13  Roger Sayle  <roger@eyesopen.com>
255
256         * fold-const.c (native_encode_expr): New function to encode
257         the target representation of an INTEGER_CST, REAL_CST, COMPLEX_CST
258         or VECTOR_CST into a specified buffer.
259         (native_encode_int): New function.
260         (native_encode_real): New function.
261         (native_encode_complex): New function.
262         (native_encode_vector): New function.
263         (native_interpret_expr): Inverse of native_encode_expr to convert
264         a target representation into an INTEGER_CST, REAL_CST etc...
265         (native_interpret_int): New function.
266         (native_interpret_real): New function.
267         (native_interpret_complex): New function.
268         (native_interpret_vector): New function.
269         (fold_view_convert_expr): New function to constant fold/evaluate
270         a VIEW_CONVERT_EXPR of a suitable constant expression.
271         (fold_unary) <VIEW_CONVERT_EXPR>: Call fold_view_convert_expr.
272         Change call of build1 to fold_build1 when constructing a
273         VIEW_CONVERT_EXPR.
274
275 2006-04-13  Paolo Bonzini  <bonzini@gnu.org>
276             Ulrich Weigand  <uweigand@de.ibm.com>
277
278         PR target/27006
279         * config/rs6000/rs6000.h (EASY_VECTOR_15_ADD_SELF): Require n
280         to be even.
281
282 2006-04-13  Alan Modra  <amodra@bigpond.net.au>
283
284         PR target/26459
285         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
286         optimize to lo_sum for DFmode if !TARGET_FPRS.
287
288 2006-04-12  Kazu Hirata  <kazu@codesourcery.com>
289
290         * tree-ssa-alias.c (set_initial_properties, init_alias_info,
291         delete_alias_info, compute_flow_sensitive_aliasing,
292         group_aliases): Use VEC instead of VARRAY.
293         * tree-ssa-structalias.c (update_alias_info): Likewise.
294         * tree-ssa-structalias.h (alias_info): Change the type of
295         processed_ptrs to VEC(tree,heap) *.
296
297 2006-04-12  J"orn Rennecke <joern.rennecke@st.com>
298
299         PR target/27060
300         * config/sh/lib1funcs.h: New file, broken out of:
301         * config/sh/lib1funcs.asm.
302         * config/sh/lib1funcs.h (DR00, DR01, DR20, DR21, DR40, DR41):
303         New macros.
304         * config/sh/lib1funcs.asm (udivsi3_i4): Use them.
305         * config/sh/lib1funcs-Os-4-200.asm: New file.
306         * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-Os-4-200.
307         * config/sh/t-sh (OPT_EXTRA_PARTS): New variable.
308         (EXTRA_MULTILIB_PARTS): Include it.
309         ($(T)sdivsi3_i4i-Os-4-200.o): New rule.
310         ($(T)udivsi3_i4i-Os-4-200.o, $(T)libgcc-Os-4-200.a): Likewise.
311         * config/sh/t-superh (EXTRA_MULTILIB_PARTS): Include OPT_EXTRA_PARTS.
312         * config/sh/sh.h (OVERRIDE_OPTIONS): Recognize -mdiv=call-table for
313         TARGET_SH2.
314
315 2006-04-12  Kazu Hirata  <kazu@codesourcery.com>
316
317         * Makefile.in (TREE_SSA_LIVE_H): Add vecprim.h.
318         * tree-ssa-live.c (tpa_init, tpa_remove_partition, tpa_delete,
319         tpa_compact, root_var_init, type_var_init): Use VEC instead of
320         VARRAY.
321         * tree-ssa-live.h: Include vecprim.h.
322         (tree_partition_associator_d): Change the type of
323         first_partition to VEC(int,heap) *.
324         (tpa_first_partition): Use VEC instead of VARRAY.
325
326         * Makefile.in (GTFILES): Move functions.h after tree.h.
327         * function.c (reset_block_changes, record_block_change,
328         check_block_change, free_block_changes): Use VEC instead of
329         VARRAY.
330         * function.h (function): Change the type of
331         ib_boundaries_block to VEC(tree,gc) *.
332         * tree-inline.c (copy_cfg_body): Initialize
333         ib_boundaries_block to NULL instead of (varray_type) 0.
334
335 2006-04-12  Roger Sayle  <roger@eyesopen.com>
336
337         * expr.c (emit_group_store): Correct operand order in call to
338         subreg_lowpart_offset.  Always create paradoxical SUBREGs with
339         a SUBREG_BYTE of zero.
340
341 2006-04-12  Richard Guenther  <rguenther@suse.de>
342
343         * profile.c (compute_branch_probabilities): Remove code
344         encapsulated in !ir_type (), which are remanents of the
345         removed RTL profiling code.
346         * rtl-profile.c: Remove.
347
348 2006-04-12  Alan Modra  <amodra@bigpond.net.au>
349
350         * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Update
351         magic NULL_RTX comment.
352         (function_arg): Store entire fp arg to mem if any part should go
353         on stack.
354         (rs6000_arg_partial_bytes): Adjust for above change.
355
356 2006-04-11  Roger Sayle  <roger@eyesopen.com>
357
358         * dwarf2out.c (output_call_frame_info): Create debug_frame_section
359         if it hasn't been initialized by dwarf2out_init.
360
361 2006-04-11  John David Anglin  <dava.anglin@nrc-cnrc.gc.ca>
362
363         * pa.md (MAX_12BIT_OFFSET, MAX_17BIT_OFFSET): Define and use new
364         symbolic constants in branch patterns.
365
366 2006-04-11  Roger Sayle  <roger@eyesopen.com>
367
368         * caller-save.c: #include "addresses.h" after #include "tm_p.h".
369
370 2006-04-11  Richard Sandiford  <richard@codesourcery.com>
371
372         PR rtl-optimization/27073
373         * gcse.c (try_replace_reg): Revert last change.  Continue to search
374         for both REG_EQUAL and REG_EQUIV notes, but only perform replacements
375         on the former.
376
377 2006-04-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
378
379         * config/sparc/sparc.c (function_arg_slotno) <BLKmode>: Handle
380         aggregate types other than record and union types.
381         (function_arg): Likewise.
382         (function_arg_pass_by_reference): In 64-bit mode, return 0 for
383         small arrays.
384         (function_value): In 64-bit mode, return objects that require it
385         in FP registers.
386
387 2006-04-11  Roger Sayle  <roger@eyesopen.com>
388
389         * dwarf2out.c (premark_used_types): Remove problematic prototype.
390
391 2006-04-11  Jakub Jelinek  <jakub@redhat.com>
392
393         * gcc.c (LINK_COMMAND_SPEC): Move link_gomp after %o.
394
395 2006-04-03  Jeff Law  <law@redhat.com>
396
397         PR/27087
398         * tree-ssa-copy.c (may_propagate_copy): Test flow sensitive
399         alias information too.
400
401 2006-04-10  Mike Frysinger  <vapier@gentoo.org>
402
403         * gcc/Makefile.in (gcc-cross): Add $(exeext) to target name.
404
405 2006-04-10  Aldy Hernandez  <aldyh@redhat.com>
406
407         PR/21391
408         * dwarf2out.c (struct die_struct): Add die_perennial_p field.
409         (premark_used_types_helper): New.
410         (premark_used_types): New.
411         (gen_subprogram_die): Call premark_used_types.
412         (prune_unused_types_walk): Do not prune perennial dies.
413         * function.c (used_types_insert): New.
414         * function.h (struct function): Add used_types_hash field.
415         (used_types_insert): Add prototype.
416         * Makefile.in (FUNCTION_H): Depend on HASHTAB_H.
417         * c-parser.c (c_parser_cast_expression): Save casted types in used
418         types hash table.
419
420 2006-04-11  Mark Mitchell  <mark@codesourcery.com>
421
422         PR target/26459
423         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Test
424         rs6000_explicit_options.float_gprs.
425
426 2006-04-10  Roger Sayle  <roger@eyesopen.com>
427
428         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Renamed
429         from ix86_expand_vector_init_low_nonzero.  Take an additional
430         one_var argument indicating which element is non-zero.  Support
431         one_var != 0 for V4SFmode and V4SImode by permuting the result.
432         (ix86_expand_vector_init): Call ix86_expand_vector_init_one_nonzero
433         with one_var instead of ix86_expand_vector_init_low_nonzero.
434
435 2006-04-10  Kazu Hirata  <kazu@codesourcery.com>
436
437         * Makefile.in (tree-into-ssa.o, tree-outof-ssa.o,
438         tree-ssa-live.o, tree-ssa-alias.o, function.o, df-problems.o,
439         global.o, cfglayout.o, lambda-code.o, reg-stack.o,
440         build/genextract.o): Depend on vecprim.h.
441         * cfglayout.c, df-problems.c, function.c, genextract.c,
442         global.c, lambda-code.c, reg-stack.c, tree-into-ssa.c,
443         tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Include
444         vecprim.h.
445         * vecprim.h: New.
446
447 2006-04-10  Geoffrey Keating  <geoffk@apple.com>
448
449         * dwarf2out.c (struct dw_attr_struct): Remove dw_attr_next.
450         Declare VECs of this type.
451         (struct die_struct): Make field die_attr a VEC of dw_attr_struct.
452         (remove_children): Delete.
453         (add_dwarf_attr): Use VEC routines.
454         (add_AT_flag): Update for changes to add_dwarf_attr.
455         (add_AT_int): Likewise.
456         (add_AT_unsigned): Likewise.
457         (add_AT_long_long): Likewise.
458         (add_AT_vec): Likewise.
459         (add_AT_string): Likewise.
460         (add_AT_die_ref): Likewise.
461         (add_AT_fde_ref): Likewise.
462         (add_AT_loc): Likewise.
463         (add_AT_loc_list): Likewise.
464         (add_AT_addr): Likewise.
465         (add_AT_lbl_id): Likewise.
466         (add_AT_lineptr): Likewise.
467         (add_AT_macptr): Likewise.
468         (add_AT_offset): Likewise.
469         (add_AT_range_list): Likewise.
470         (get_AT): Use VEC_iterate.
471         (remove_AT): Use VEC_ordered_remove.
472         (free_die): Fold remove_children into here; have it use VEC_iterate.
473         (print_die): Use VEC_iterate on attrs.
474         (reverse_die_lists): Don't reverse attr lists.
475         (die_checksum): Use VEC_iterate on attrs.
476         (same_die_p): Likewise.
477         (output_location_lists): Likewise.
478         (build_abbrev_table): Likewise.
479         (size_of_die): Likewise.
480         (unmark_all_dies): Likewise.
481         (output_abbrev_section): Likewise.
482         (output_die): Likewise.
483         (prune_unused_types_walk_attribs): Likewise.
484
485 2006-04-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
486
487         * doc/install.texi (*-*-solaris2*): Point to the configure page.
488
489 2006-04-10  Jakub Jelinek  <jakub@redhat.com>
490
491         PR debug/27057
492         * dwarf2out.c (is_symbol_die): Return true also for namespaces.
493
494 2006-04-09  Roger Sayle  <roger@eyesopen.com>
495
496         * expr.c (store_constructor): Don't bother clearing target if
497         we're about to assign a vector to it using vec_init_optab.
498
499 2006-04-10 Daniel Berlin  <dberlin@dberlin.org>
500         
501         * tree-ssa-alias.c (lhs_may_store_to): New function.
502         (recalculate_used_alone): Handle LHS of calls.
503
504 2006-04-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
505
506         PR target/27034
507         PR target/26508
508         * config.gcc (hppa*64*-*-hpux11*): Add 'libgcc_stub.a' to extra_parts.
509         * pa64-hpux.h (LIB_SPEC): Correct typo.  Don't append milli.a.
510         (LINK_GCC_C_SEQUENCE_SPEC): Define.  Append milli.a here.
511         (PA_CXA_FINALIZE_STUB, PA_JV_REGISTERCLASSES_STUB): Delete defines.
512         (PA_INIT_FINI_HACK): Rename to PA_CRTBEGIN_HACK.
513         (PA_CRTBEGIN_HACK): Ensure __do_global_ctors_aux is placed in text
514         section.  Delete PA_CXA_FINALIZE_STUB and PA_JV_REGISTERCLASSES_STUB
515         stubs.  Add ".align 8" directives before all ".dword" directives.
516         (GTHREAD_USE_WEAK): Revise comment.
517         (TARGET_ATTRIBUTE_WEAK): Define.
518         * pa/t-pa64 (LIBGCCSTUB_OBJS): Add new rules for stublib.c, rfi-stub.o,
519         dfi-stub.o, cxaf-stub.o and jvrc-stub.o.
520         * stublib.c: New file.
521
522         PR target/26743
523         PR target/11254
524         PR target/10274
525         * pa.md (cbranch patterns): Revise arguments used in calls to
526         output_cbranch, output_bb and output_bvd.  Add long branch length
527         attributes.
528         (fbranch patterns): Handle long branches.
529         (jump): Revise length check.  Revise arguments for output_lbranch call.
530         Add long branch length attributes.
531         (decrement_and_branch_until_zero): Add long branch length attributes.
532         (output_movb, output_parallel_addb and output_parallel_movb patterns):
533         Likewise.  Revise arguments for output_parallel_addb and
534         output_parallel_movb calls.
535         * pa-protos.h (output_cbranch, output_lbranch, output_bb, output_bvb,
536         output_parallel_movb and output_parallel_addb): Update prototypes.
537         * pa.c (output_cbranch): Revise arguments.  Correct handling of
538         nullification in long branches.
539         (output_lbranch): Add new argument to control extraction of delay
540         instruction.
541         (output_bb): Handle long branches.
542         (output_bvb, output_dbra, output_movb, output_parallel_movb,
543         output_parallel_addb): Likewise.
544
545 2006-04-09  Richard Sandiford  <richard@codesourcery.com>
546
547         PR rtl-optimization/27073
548         * gcse.c (try_replace_reg): Just propagate into REG_EQUAL notes,
549         not REG_EQUIVs.
550
551 2006-04-08  Daniel Berlin  <dberlin@dberlin.org>
552
553         * tree.h (tree_memory_tag): Add old_used_alone.
554         (SMT_OLD_USED_ALONE): New macro.
555         * tree-ssa-alias.c (recalculate_used_alone): Stop
556         marking things for renaming unnecessarily.
557
558 2006-04-08  Kazu Hirata  <kazu@codesourcery.com>
559
560         * builtins.c, config/arm/arm.c, config/i386/cygwin.h,
561         config/i386/i386.c, config/ia64/ia64.c, config/s390/fixdfdi.h,
562         config/sh/sh.c, config/sh/sh.h, df-scan.c, except.c,
563         haifa-sched.c, optabs.c, rtl.h, sched-deps.c, sched-int.h,
564         sched-rgn.c, tree-inline.h, tree-ssa-dom.c,
565         tree-ssa-loop-prefetch.c, tree-ssa-operands.c,
566         tree-vect-patterns.c, tree-vrp.c: Fix comment typos.  Follow
567         spelling convensions.
568         * config/ia64/ia64.opt, doc/contrib.texi, doc/invoke.texi,
569         doc/passes.texi, doc/tm.texi, doc/tree-ssa.texi: Fix comment
570         typos.  Follow spelling conventions.
571
572 2006-04-07  DJ Delorie  <dj@redhat.com>
573
574         * config/m32c/m32c.c (m32c_function_arg): Structures are always
575         passed on the stack.
576         (m32c_init_cumulative_args): When a function returns a structure,
577         always pass the pointer to that return area on the stack.
578         (m32c_function_arg_advance): Don't increment the parameter number
579         if we're processing the returned structure pointer.
580         (pushm_info): Reverse order of registers.
581
582 2006-04-07  Sebastian Pop  <pop@cri.ensmp.fr>
583
584         * tree-ssa-loop-niter.c (inverse, number_of_iterations_ne,
585         assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
586         number_of_iterations_le, number_of_iterations_cond, find_loop_niter,
587         estimate_numbers_of_iterations_loop): Use build_int_cst instead of 
588         build_int_cst_type.
589         * tree-chrec.c (chrec_fold_multiply_poly_poly,
590         chrec_fold_multiply): Same.
591         * tree-ssa-loop-ivopts.c (strip_offset_1, force_expr_to_var_cost,
592         force_expr_to_var_cost): Same.
593         * tree-mudflap.c (mf_xform_derefs_1): Same.
594         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Same.
595
596 2006-04-07  David Edelsohn  <edelsohn@gnu.org>
597
598         * config/rs6000/rs6000.c (rs6000_rtx_costs) <CONST_DOUBLE>: Do not
599         treat CONST_DOUBLE as INTVAL.  and64_2_operands require an extra
600         insn.
601
602 2006-04-07  Jan Hubicka  <jh@suse.cz>
603
604         * ipa-inline.c (cgraph_early_inlining): Collect garbage.
605
606 2006-04-07  Richard Guenther  <rguenther@suse.de>
607
608         PR tree-optimization/26135
609         * tree-ssa-copy.c (stmt_may_generate_copy): Handle memory
610         loads for store copy-prop.
611         (copy_prop_visit_stmt): Likewise.
612
613 2006-04-05  Robert Millan  <robertmh@gnu.org>
614
615         * gcc/config/i386/linux.h:  Add a comment to mark macros that are
616         being overriden in config/k*bsd-gnu.h.
617         * gcc/config/kfreebsd-gnu.h:  Redefine GLIBC_DYNAMIC_LINKER instead of
618         DYNAMIC_LINKER.
619         * gcc/config/knetbsd-gnu.h:  Ditto.
620
621 2006-04-06  Jan Hubicka  <jh@suse.cz>
622
623         PR profile/20815
624         PR profile/26399
625         * coverage.c (coverage_checksum_string): Reorganize loop to not read
626         after buffer.
627
628 2006-04-06  Mike Stump  <mrs@apple.com>
629
630         * builtins.c (expand_builtin_longjmp):Use #ifdef instead of #if
631         for HAVE_nonlocal_goto to be consistent.
632         (expand_builtin_nonlocal_goto): Likewise.
633         (expand_builtin_strcmp): Use #ifdef instead of #if
634         for HAVE_cmpstrnsi to be consistent.
635
636 2006-04-05  DJ Delorie  <dj@redhat.com>
637
638         * config/m32c/m32c.h (INCOMING_FRAME_SP_OFFSET): Adjust for m16c
639         vs m32c.
640
641 2006-04-05  Bernd Schmidt  <bernd.schmidt@analog.com>
642
643         * config/bfin/bfin.c (bfin_legitimate_address_p): Disallow
644         got-relative addressing for anything but SImode.
645
646         * config/bfin/lib1funcs.asm (modsi): P1/P2 can be call-clobbered
647         even if the calling function doesn't modify them.
648
649 2006-04-05  Richard Guenther  <rguenther@suse.de>
650
651         PR tree-optimization/26919
652         * ipa-inline.c (cgraph_decide_inlining_incrementally): Fix argument
653         to cgraph_estimate_size_after_inlining.
654
655 2006-04-05  Alan Modra  <amodra@bigpond.net.au>
656
657         * reload.c (find_dummy_reload): Fix typo in 2006-04-03 change.
658
659 2006-04-05  Sebastian Pop  <pop@cri.ensmp.fr>
660
661         PR tree-optimization/26996
662         * tree-scalar-evolution.c (analyze_scalar_evolution_1): Don't analyze
663         VECTOR_TYPE variables.
664
665 2006-04-05  Richard Guenther  <rguenther@suse.de>
666
667         PR tree-optimization/26763
668         * fold-const.c (fold_comparison): Move folding of
669         PTR + CST CMP PTR + CST ...
670         (fold_binary): ... here.  Fold only for EQ_EXPR and NE_EXPR.
671
672 2006-04-05  Gerald Pfeifer  <gerald@pfeifer.com>
673
674         * doc/install.texi (Prerequisites): Refine some wording on
675         bootstrapping and ksh.
676         Move the version numbers of DejaGnu here from the testing section
677         and fix casing of names.
678         Fix markup and clarify wording for autogen requirements.
679         Refer to GCJ instead of just java.
680         Refer to SVN instead of CVS.
681         Describe diffutils as useful instead of necessary.
682         (Downloading the source): Refer to SVN instead of CVS.
683         Adjust a link to our web site accordingly.
684         (Configuration): Fix casing of Bison.
685         (Building): Refer to SVN instead of CVS.  
686         Fix a sentence on the use of Bison and remove duplicate (and
687         incorrect) version number of Bison requirement.
688         Remove one redundant list of packages needed for building.
689         (Specific): Avoid reference to CVS.
690
691 2006-04-04  Eric Christopher  <echristo@apple.com>
692
693         * config/rs6000/rs6000.c (TARGET_MS_BITFIELD_LAYOUT_P): Define.
694         (TARGET_USE_MS_BITFIELD_LAYOUT): Ditto.
695         (rs6000_handle_struct_attribute): New.
696         (rs6000_ms_bitfield_layout_p): Ditto.
697
698 2006-04-04  Geoffrey Keating  <geoffk@apple.com>
699
700         * config/darwin-crt3.c (atexit): Pass &__dso_handle rather than
701         NULL for dso parameter to atexit_common.
702
703 2006-04-04  Eric Christopher  <echristo@apple.com>
704
705         * config/i386/i386.c (machopic_output_stub): Output \t
706         between instructions and operands.
707
708 2006-04-04  David Edelsohn  <edelsohn@gnu.org>
709
710         * config/rs6000/rs6000.c (num_insns_constant_wide): Change
711         satisfies_constraint_[IL] to explicit tests on value.
712
713 2006-04-04  Sebastian Pop  <pop@cri.ensmp.fr>
714
715         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
716         set_nb_iterations_in_loop): Use build_int_cst instead of
717         build_int_cst_type.
718         * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Use
719         build_int_cst instead of convert.
720
721 2006-04-04  Carlos O'Donell  <carlos@codesourcery.com>
722
723         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document
724         new value 2 for incoming.
725         * function.c (expand_function_start): Call struct_value_rtx
726         with incoming as 2.
727         * config/sparc/sparc.md: Comment updated_return.
728         * config/sparc/sparc.opt: Add -mstd-struct-return option.
729         * config/sparc/sparc.c (sparc_struct_value_rtx): Use standard
730         struct return if sparc_std_struct_return and incoming is 2.
731         (print_operand): Do not adjust return if
732         sparc_std_struct_return.
733
734 2006-04-04  Roger Sayle  <roger@eyesopen.com>
735
736         * builtins.c (fold_builtin_sprintf): Use fold_convert instead of
737         convert in the middle-end.
738         * expr.c (store_expr, store_constructor, get_inner_reference,
739         expand_expr_real_1, string_constant, try_casesi, try_tablejump):
740         Likewise.
741         * tree.c (build_range_type): Likewise.
742
743 2006-04-04  Tom Tromey  <tromey@redhat.com>
744
745         * doc/install.texi (Prerequisites): Mention jar.
746
747 2006-04-04  Daniel Berlin  <dberlin@dberlin.org>
748
749         * doc/tree-ssa.texi (Preserving the virtual ssa form): New
750         subsection.
751
752 2006-04-04  Matthias Klose  <doko@debian.org>
753
754         * Makefile.in (unprotoize.o): Same dependencies as for protoize.o.
755
756 2006-04-03  Geoffrey Keating  <geoffk@apple.com>
757
758         * doc/extend.texi (Function Attributes): Rewrite visibility
759         attribute documentation.
760         * doc/invoke.texi (C++ Dialect Options): Rewrite
761         -fvisibility-inlines-hidden documentation to describe something
762         entirely different, although in practise compatible.
763         (Code Gen Options): Warn about system headers in -fvisibiltity=
764         documentation.
765
766         * doc/extend.texi (Other Builtins): Document that
767         __builtin_nan is a compile-time constant only when its argument
768         is valid.
769
770 2006-04-03  Adam Nemet  <anemet@caviumnetworks.com>
771
772         * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: When
773         trying to remove TRUNCATE check if all bits outside the new mode
774         are identical to the sign bit.
775
776 2006-04-03  Jeff Law  <law@redhat.com>
777
778         * tree-ssa-dom.c (propagate_rhs_into_lhs): Avoid useless folding
779         and operand scanning in some common cases.
780
781 2006-04-03  Paolo Bonzini  <bonzini@gnu.org>
782             Dale Johannesen  <dalej@apple.com>
783
784         PR target/19653
785         * regclass.c (struct reg_pref): Update documentation.
786         (regclass): Set prefclass to NO_REGS if memory is the best option.
787         (record_reg_classes): Cope with a prefclass set to NO_REGS.
788         * reload.c (find_reloads): Take PREFERRED_OUTPUT_RELOAD_CLASS
789         into account.  For non-registers, equate an empty preferred
790         reload class to a `!' in the constraint; move the if clause to
791         do so after those that reject the insn.
792         (push_reload): Allow PREFERRED_*_RELOAD_CLASS to liberally
793         return NO_REGS.
794         (find_dummy_reload): Likewise.
795         * doc/tm.texi (Register Classes): Document what it means
796         if PREFERRED_*_RELOAD_CLASS return NO_REGS.
797         * config/i386/i386.c (ix86_preferred_reload_class): Force
798         using SSE registers (and return NO_REGS for floating-point
799         constants) if math is done with SSE.
800         (ix86_preferred_output_reload_class): New.
801         * config/i386/i386-protos.h (ix86_preferred_output_reload_class): New.
802         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): New.
803         * config/i386/i386.md: Remove # register preferences.
804
805 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
806
807         PR bootstrap/26992
808         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
809         chrec_is_positive, set_nb_iterations_in_loop): Use a variable for
810         the type of nb_iter.
811         (instantiate_parameters_1): Convert the operands before calling
812         chrec_fold_minus, chrec_fold_plus, or chrec_fold_multiply.
813         * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Same.
814
815 2006-04-02  Roger Sayle  <roger@eyesopen.com>
816
817         * builtins.c (dummy_object): Use build_int_cst instead of convert.
818         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Use fold_convert
819         instead of convert.
820         * dojump.c (do_jump): Likewise.
821         * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE): Likewise.
822         * gimplify.c (gimple_boolify, gimplify_init_constructor,
823         gimplify_boolean_expr): Likewise.
824         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
825         * varasm.c (array_size_for_constructor): Likewise.
826         * tree-object-size.c (compute_object_offset): Likewise.
827
828 2006-04-02  Roger Sayle  <roger@eyesopen.com>
829
830         PR middle-end/26977
831         * expr.c (emit_group_store): Check whether simplify_gen_subreg returns
832         NULL_RTX, indicating it couldn't create a valid paradoxical subreg.
833
834 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
835
836         PR tree-optimization/26939
837         * tree-chrec.c (chrec_merge): Use eq_evolutions_p.
838
839 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
840
841         * tree-scalar-evolution.c (add_to_evolution_1): Pass an extra argument
842         at_stmt.  Convert the type of operands before calling
843         build_polynomial_chrec.
844         (add_to_evolution): Pass an extra argument at_stmt.  Adjust the call to
845         add_to_evolution_1.
846         (follow_ssa_edge_in_rhs): Adjust call to add_to_evolution.
847         (instantiate_parameters_1): Convert the type of operands before calling
848         build_polynomial_chrec.
849         * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
850         chrec_fold_multiply_poly_poly, chrec_replace_initial_condition,
851         reset_evolution_in_loop): Insert asserts to check the types of the
852         operands.
853         (chrec_type): Moved...
854         (eq_evolutions_p): Use operand_equal_p.
855         * tree-chrec.h (build_polynomial_chrec): Insert an assert to check
856         the types of the operands.
857         (chrec_type): ...here.
858         * tree-data-ref.c (create_data_ref): Convert the operands before
859         calling chrec_replace_initial_condition.
860         (same_access_functions, analyze_subscript_affine_affine,
861         analyze_miv_subscript, all_chrecs_equal_p): Use eq_evolutions_p.
862         (compute_subscript_distance, analyze_ziv_subscript,
863         analyze_siv_subscript_cst_affine, compute_overlap_steps_for_affine_1_2,
864         analyze_miv_subscript): Convert the operands before calling
865         chrec_fold_minus or chrec_fold_plus.
866
867 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
868
869         * tree-data-ref.c (compute_all_dependences): Use a pointer to
870         the dependence_relations vector.
871         (compute_data_dependences_for_loop): Adjust call to
872         compute_all_dependences.
873
874 2006-04-01  Roger Sayle  <roger@eyesopen.com>
875             Richard Henderson  <rth@redhat.com>
876
877         * gimplify.c (gimplify_scan_omp_clauses) <OMP_CLAUSE_IF>: Call
878         gimple_boolify on the condition before calling gimplify_expr.
879
880 2006-03-31  Bob Wilson  <bob.wilson@acm.org>
881
882         * config/xtensa/lib1funcs.asm: Rename abi_entry/abi_return macros
883         to leaf_entry/leaf_return.  Change leaf_entry to add 16 bytes to
884         the frame size.  Update to use the new macros.
885         * config/xtensa/ieee754-sf.S: Use new leaf_entry/leaf_return macros.
886         * config/xtensa/ieee754-df.S: Likewise.
887
888 2006-03-31  Richard Henderson  <rth@redhat.com>
889
890         * tree-cfg.c (make_ctrl_stmt_edges, make_exit_edges): Merge into...
891         (make_edges): ... here.  Control fallthru creation with a local
892         variable.  Do not play with fake edges.
893         (make_omp_sections_edges): Don't set EDGE_ABNORMAL.
894         (make_goto_expr_edges): Don't play with fake edges.  Make for_call
895         a boolean.
896
897 2006-04-01  Joseph S. Myers  <joseph@codesourcery.com>
898
899         * dwarf2.h (DW64_CIE_ID): Define.
900         * dwarf2out.c (DWARF_CIE_ID): Define.
901         (output_call_frame_info): Output 0xffffffff before standard 8-byte
902         length header.  Use DWARF_CIE_ID.
903         (value_format): Use DW_FORM_data4 or DW_FORM_data8 for
904         dw_val_class_loc_list depending on DWARF_OFFSET_SIZE.
905
906 2006-03-31  Kaz Kojima  <kkojima@gcc.gnu.org>
907
908         * config/sh/linux-atomic.asm: New file.
909         * config/sh/t-linux (LIB2FUNCS_EXTRA): Add linux-atomic.asm.
910
911 2006-03-31  DJ Delorie  <dj@redhat.com>
912
913         * config/m32c/cond.md: Set condition flags properly throughout.
914         * config/m32c/minmax.md: Likewise.
915         * config/m32c/prologue.md: Likewise.
916         * config/m32c/bitops.md: Likewise.
917         * config/m32c/muldiv.md: Likewise.
918         * config/m32c/mov.md: Likewise.
919         * config/m32c/addsub.md: Likewise.
920         * config/m32c/m32c.md: Likewise.
921         * config/m32c/jump.md: Likewise.
922         * config/m32c/shift.md: Likewise.
923
924         * config/m32c/cond.md (cmp<mode>): Call m32c_output_compare to
925         conditionally output the pattern for this.
926         * config/m32c/m32c.c (flags_needed_for_conditional): New.
927         (m32c_compare_redundant): New.
928         (m32c_output_compare): New.
929         * config/m32c/m32c-protos.h (m32c_output_compare): New.
930
931         * config/m32c/m32c.c (m32c_prepare_shift): Fix logic to clobber
932         dest, not src.  Allow other 4-byte modes.
933
934 2006-03-30  Denis Chertykov  <denisc@overta.ru>
935
936         * doc/md.texi: Refer to avr/constraints.md instead of
937         avr/avr.h.
938
939 2006-03-30  Roger Sayle  <roger@eyesopen.com>
940
941         * expr.c (emit_group_store): Make BYTEPOS a HOST_WIDE_INT to
942         signed vs. unsigned comparison failures on some hosts.
943
944 2006-03-31  Alan Modra  <amodra@bigpond.net.au>
945
946         PR target/26459
947         * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Limit 2003-12-08
948         change to FLOAT_REGS.
949
950         * config/rs6000/rs6000.c (rs6000_explicit_options): Add ieee.
951         (rs6000_override_options): Use it.
952         (rs6000_handle_option): Set it.  Set rs6000_explicit_options.abi
953         only for -mabi=spe/no-spe and -mabi=altivec.
954
955 2006-03-30  Geoffrey Keating  <geoffk@apple.com>
956
957         * config/darwin.h (LINK_COMMAND_SPEC): Don't try to protect %S with
958         !Zdynamiclib.
959
960 2006-03-30  Carlos O'Donell  <carlos@codesourcery.com>
961
962         * Makefile.in: Rename docdir to gcc_docdir.
963
964 2006-03-30  Roger Sayle  <roger@eyesopen.com>
965
966         PR target/17959
967         * expr.c (emit_group_store):  Optimize group stores into a pseudo
968         register by using a paradoxical subreg to initialize the destination
969         if the first or last member of the group specifies a "low part".
970
971 2006-03-30  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
972
973         PR target/26734
974         * rtl.def (DEPS_LIST): Change type of the second operand to 'int'.
975         * target.h (struct gcc_target.speculate_insn): Change type of the
976         second parameter to 'int'.
977         * lists.c (alloc_DEPS_LIST): Change signature.  Update reference to
978         the second operand of the DEPS_LIST.
979         (copy_DEPS_LIST_list): Update reference to the second operand of the
980         DEPS_LIST.
981         * rtl.h (alloc_DEPS_LIST): Update signature.
982         * sched-int.h (ds_t): Change typedef to 'int'.
983         (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
984
985 2006-03-30  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
986
987         * haifa-sched.c (try_ready): Change condition to restore
988         non-speculative pattern of the instruction.
989         (process_insn_depend_be_in_spec): Code to keep probability of the
990         speculative dependence non-decreasing.
991
992 2006-03-30  Jie Zhang  <jie.zhang@analog.com>
993
994         * config/bfin/bfin.c (single_move_for_strmov): Renamed to...
995         (single_move_for_movmem): ... this. Also change all uses.
996         (bfin_expand_strmov): Renamed to...
997         (bfin_expand_movmem): ... this. Also change all uses.
998         * config/bfin/bfin.md (movstrsi): Renamed to...
999         (movstrsi): ...this.
1000
1001 2006-03-30  Paolo Bonzini  <bonzini@gnu.org>
1002
1003         PR tree-optimization/26830
1004
1005         * tree-ssa-copy.c (copy_prop_visit_assignment): Do not check loop depth.
1006         (copy_prop_visit_stmt): Remove write-only variable ann.
1007         (init_copy_prop): Check variable loop depth here.  Do not simulate
1008         memory-tag and virtual operand PHIs except for store copy prop.
1009
1010 2006-03-30  Richard Guenther  <rguenther@suse.de>
1011
1012         * config/i386/i386.c: Remove builtins for SSE2 ABI intrinsic
1013         variants with double arguments.
1014
1015 2006-03-29  David Edelsohn  <edelsohn@gnu.org>
1016
1017         * genpreds.c (write_tm_constrs_h): Delete variable p.
1018         * genconditions.c (write_header): Add tm-constrs.h to included
1019         headers.
1020         * genpeep.c (main): Add toplev.h to included headers.
1021         * Makefile.in (build/gencondmd.o): Add tm-constrs.h dependency.
1022         (build/genpeep.o): Add toplev.h dependency.
1023         * config/rs6000/constraints.md: Add "W" constraint.
1024
1025 2006-03-29  Roger Sayle  <roger@eyesopen.com>
1026
1027         * stor-layout.c (mode_for_size_tree): Remove restiction on type
1028         sizes by correctly testing whether the size fits a host integer.
1029         (initialize_sizetypes): Use set_min_and_max_values_for_integral_type
1030         to correctly set TYPE_MIN_VALUE and TYPE_MAX_VALUE to the full
1031         SImode range for the default sizetype and bitsizetype.
1032
1033 2006-03-29  Roger Sayle  <roger@eyesopen.com>
1034
1035         * convert.c (convert_to_pointer): Preserve the TREE_OVERFLOW
1036         and TREE_CONSTANT_OVERFLOW bits of the argument.  Return
1037         quickly if the argument is already of the correct type.
1038         Call fold_build1 instead of build1.  Tidy up blank lines.
1039
1040 2006-03-29  David Edelsohn  <edelsohn@gnu.org>
1041
1042         * genemit.c (main): Add tm-constrs.h to included headers.
1043         * genoutput.c (output_prologue): Add tm-constrs.h to included headers.
1044         * genpeep.c (main): Add tm-constrs.h to included headers.
1045         * genpreds.c (write_satisfies_constraint_fns): Rename to ...
1046         (write_tm_constrs_h): this and write complete file.
1047         (write_tm_preds_h): Do not emit satisfies_constraint fns.
1048         (write_insn_preds_c): Add tm-constrs.h to included headers.
1049         (gen_constrs): New variable.
1050         (parse_option): Parse "-c".
1051         (main): Invoke write_tm_constrs_h.
1052         * genrecog.c (write_header): Add tm-constrs.h to included headers.
1053         * Makefile.in (STAGECOPYSTUFF): Add tm-constrs.h.
1054         (object_out_file): Add tm-constrs.h dependency.
1055         (insn-emit.o): Same.
1056         (insn-output.o): Same.
1057         (insn-peep.o): Same.
1058         (insn-preds.o): Same.
1059         (insn-recog.o): Same.
1060         (tm-constsr.h): New target.
1061         (s-constrs-h): New target.
1062
1063         * config/rs6000/constraints.md: New file.
1064         * config/rs6000/rs6000.c: Include tm-constrs.h.
1065         (num_insn_constant_wide): Convert to satisfies_constraint.
1066         (rs6000_rtx_costs): Convert to satisfies_constraint.
1067         * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Delete.
1068         (CONST_OK_FOR_LETTER_P): Delete.
1069         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
1070         (EXTRA_CONSTRAINT): Delete.
1071         (EXTRA_MEMORY_CONSTRAINT): Delete.
1072         (EXTRA_ADDRESS_CONSTRAINT): Delete.
1073         * config/rs6000/predicates.md: Convert to satisfies_constraint.
1074         * config/rs6000/rs6000.md: Include constraints.md.  Convert to
1075         satisfies_constraint.
1076
1077         * config/i386/i386.c: Include tm-constrs.h.
1078
1079 2006-03-29  Sebastian Pop  <pop@cri.ensmp.fr>
1080
1081         * tree-loop-linear.c (compute_data_dependences_for_loop): Adjust calls.
1082         * tree-data-ref.c (find_data_references_in_loop,
1083         compute_data_dependences_for_loop): Use pointers to VEC.
1084         (analyze_all_data_dependences): Adjust calls.
1085         * tree-data-ref.h (find_data_references_in_loop,
1086         compute_data_dependences_for_loop): Adjust declarations.
1087         * tree-vect-analyze.c (vect_analyze_data_refs): Adjust call to
1088         compute_data_dependences_for_loop.
1089
1090 2006-03-29  Paul Brook  <paul@codesourcery.com>
1091
1092         * config/arm/vfp.md (movsf_vfp): Disparage w<->r alternatives.
1093         (movdf_vfp): Ditto.
1094
1095 2006-03-29  Sebastian Pop  <pop@cri.ensmp.fr>
1096
1097         PR tree-optimization/26859
1098         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Avoid
1099         division by zero.
1100         (convert_step): Remove TREE_OVERFLOW and TREE_CONSTANT_OVERFLOW flags
1101         for the step after fold_convert.
1102
1103 2006-03-29  Paul Brook  <paul@codesourcery.com>
1104
1105         * reload1.c (choose_reload_regs): Check for all RTX_AUTOINC operators.
1106         (inc_for_reload): Handle PRE_MODIFY and POST_MODIFY addresses.
1107
1108 2006-03-29  Paul Brook  <paul@codesourcery.com>
1109
1110         PR middle-end/23623
1111         * targhooks.c (default_narrow_bitfield): New fuction.
1112         * targhooks.h (default_narrow_bitfield): add prototype.
1113         * target.h (gcc_target): Add narrow_volatile_bitfield.
1114         * target-def.h (TARGET_NARROW_VOLATILE_BITFIELD): Define.
1115         * stor-layout.c (get_best_mode): Use targetm.narrow_volatile_bitfield.
1116         * doc/tm.texi: Document TARGET_NARROW_VOLATILE_BITFIELDS.
1117         * config/arm/arm.c (TARGET_NARROW_VOLATILE_BITFIELD): Define.
1118
1119 2006-03-29  Andreas Krebbel  <krebbel1@de.ibm.com>
1120
1121         * config.gcc (s390-*-linux-*, s390x-*-linux*): Add t-dfprules to
1122         tmake_file.
1123         * config/s390/s390.c (S390_scalar_mode_supported_p): New function.
1124         (NR_C_MODES): Add TDmode, DDmode and SDmode.
1125         (s390_output_pool_entry, ): Accept MODE_DECIMAL_FLOAT.
1126         (s390_hard_regno_mode_ok): Disallow TDmode in integer regs.
1127         (s390_function_arg_float): Allow SDmode and DDmode values to be
1128         passed in floating point registers.
1129         (s390_function_arg_integer, s390_function_value): Replace MODE_FLOAT
1130         check with SCALAR_FLOAT_MODE_P.
1131         (TARGET_SCALAR_MODE_SUPPORTED_P): Define target macro.
1132
1133 2006-03-28  Zdenek Dvorak <dvorakz@suse.cz>
1134
1135         PR tree-optimization/25985
1136         * tree-ssa-loop-niter.c (number_of_iterations_le,
1137         number_of_iterations_ne): Make comments more precise.
1138         (number_of_iterations_cond): Add only_exit argument.  Use the
1139         fact that signed variables do not overflow only when only_exit
1140         is true.
1141         (loop_only_exit_p): New.
1142         (number_of_iterations_exit): Pass result of loop_only_exit_p to
1143         number_of_iterations_cond.
1144
1145 2006-03-28  Zdenek Dvorak <dvorakz@suse.cz>
1146
1147         PR tree-optimization/26643
1148         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not handle
1149         bit_field_refs.
1150
1151 2006-03-28  Kaz Kojima  <kkojima@gcc.gnu.org>
1152
1153         * config/sh/sh.md (udivsi3_i4_int): Clobber MACH_REG and MACL_REG.
1154         (divsi3_i4_int): Likewise.
1155
1156 2006-03-28  Roger Sayle   <roger@eyesopen.com>
1157
1158         * expr.c (emit_group_store): Only create a new pseudo reg if the
1159         quantity it needs to hold isn't already a suitable pseudo.
1160
1161 2006-03-28  Jeff Law  <law@redhat.com>
1162
1163         * timevar.def (TV_TREE_PHI_CPROP): New timevar.
1164         * tree-ssa-dom.c (pass_phi_only_cprop): Use it.
1165
1166 2006-03-28  Roger Sayle  <roger@eyesopen.com>
1167
1168         * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & Y) ^ Y as
1169         the equivalent ~X & Y, and the symmetry related transformations.
1170         (fold_binary) <BIT_AND_EXPR>: Similarly, fold (X ^ Y) & Y as
1171         ~X & Y, and symmetry related transforms.
1172
1173 2006-03-28  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1174
1175         Revert my 2006-03-27 patches.
1176
1177 2006-03-28  Roger Sayle  <roger@eyesopen.com>
1178
1179         * fold-const.c (fold_unary) <NOP_EXPR>: Fold (T1)(~(T2)X) as
1180         ~(T1)X, when T1 and T2 are integer types of the same precision
1181         and (T2)X isn't an extension.
1182
1183 2006-03-28  Jeff Law  <law@redhat.com>
1184
1185         PR tree-optimization/26796
1186         * tree-ssa-dom.c (propagate_rhs_into_lhs): Queue blocks which
1187         need EH edge cleanups rather than purging them immediately.
1188         (eliminate_degenerate_phis): Handle queued EH cleanups.
1189
1190 2006-03-28  Daniel Berlin  <dberlin@dberlin.org>
1191
1192         * tree-ssa-alias.c (create_sft): Initially inherit TREE_ADDRESSABLE
1193         from parent_var.
1194
1195 2006-03-27  Roger Sayle  <roger@eyesopen.com>
1196
1197         PR middle-end/22524
1198         * fold-const.c (fold_binary) <MINUS_EXPR>: Call fold_convert to
1199         cast BIT_NOT_EXPR operand to the correct type.
1200
1201 2006-03-27  Sebastian Pop  <pop@cri.ensmp.fr>
1202
1203         * tree-loop-linear.c: Don't include varray.h.
1204         (gather_interchange_stats, try_interchange_loops,
1205         linear_transform_loops): Use VEC instead of VARRAY.
1206         * lambda-mat.c: Don't include varray.h.
1207         * tree-chrec.c: Same.
1208         * lambda-trans.c: Same.
1209         * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info): Use
1210         VEC instead of VARRAY.
1211         * tree-vectorizer.h: Idem.
1212         * tree-data-ref.c (dump_data_references,
1213         dump_data_dependence_relations, dump_dist_dir_vectors, dump_ddrs,
1214         initialize_data_dependence_relation, finalize_ddr_dependent,
1215         compute_all_dependences, find_data_references_in_loop,
1216         compute_data_dependences_for_loop, analyze_all_data_dependences,
1217         free_dependence_relation, free_dependence_relations,
1218         free_data_refs): Idem.
1219         * tree-data-ref.h (data_reference_p, subscript_p): New.
1220         (data_dependence_relation, DDR_SUBSCRIPT, DDR_NUM_SUBSCRIPTS): Use
1221         VEC instead of VARRAY.
1222         (DDR_SUBSCRIPTS_VECTOR_INIT): Removed.
1223         (find_data_references_in_loop, compute_data_dependences_for_loop,
1224         dump_ddrs, dump_dist_dir_vectors, dump_data_references,
1225         dump_data_dependence_relations, free_dependence_relations,
1226         free_data_refs): Adjust declaration.
1227         (lambda_transform_legal_p): Move declaration here...
1228         * tree-vect-analyze.c (vect_analyze_data_ref_dependences,
1229         vect_compute_data_refs_alignment, vect_verify_datarefs_alignment,
1230         vect_enhance_data_refs_alignment, vect_analyze_data_ref_accesses,
1231         vect_analyze_data_refs): Use VEC instead of VARRAY.
1232         * lambda.h (lambda_transform_legal_p): ...from here.
1233         * lambda-code.c (lambda_transform_legal_p): Use VEC instead of VARRAY.
1234         * tree-vect-transform.c (vect_update_inits_of_drs): Idem.
1235         * Makefile.in (tree-loop-linear.o, lambda-mat.o, lambda-trans.o,
1236         tree-chrec.o): Don't depend on VARRAY_H.
1237
1238 2006-03-27  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1239
1240         * rtl.def (Copyright): Update date.
1241         (DEPS_LIST): Change type of the second operand to 'int'.
1242         * target.h (Copyright): Update date.
1243         (struct gcc_target.speculate_insn): Change type of the second parameter
1244         to 'int'.
1245         * lists.c (Copyright): Update date.
1246         (alloc_DEPS_LIST): Change signature.  Update reference to the second
1247         operand of the DEPS_LIST.
1248         (copy_DEPS_LIST_list): Update reference to the second operand of the
1249         DEPS_LIST.
1250         * rtl.h (Copyright): Update date.
1251         (alloc_DEPS_LIST): Update signature.
1252         * sched-int.h (Copyright): Update date.
1253         (ds_t): Change typedef to 'int'.
1254         (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
1255
1256 2006-03-27  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1257
1258         * haifa-sched.c (Copyright): Update date.
1259         (try_ready): Change condition to restore non-speculative pattern
1260         of the instruction.
1261         (process_insn_depend_be_in_spec): Code to keep probability of the
1262         speculative dependence non-decreasing.
1263
1264 2006-03-27  Bernd Schmidt  <bernd.schmidt@analog.com>
1265
1266         * regrename.c (replace_oldest_value_addr): Initialize a variable to
1267         shut up the compiler.
1268
1269 2006-03-27  J"orn Rennecke <joern.rennecke@st.com>
1270
1271         * config/sh/t-sh ($(T)libic_invalidate_array_4-100.a): Fix rule
1272         to use lib prefix for target.
1273         ($(T)libic_invalidate_array_4-200.a): Likewise.
1274         ($(T)libic_invalidate_array_4a.a): Likewise.
1275
1276 2006-03-27  Andrew Stubbs <andrew.stubbs@st.com>
1277             J"orn Rennecke <joern.rennecke@st.com>
1278
1279         * superh.opt: New file.
1280         * sh.c (boardtype, osruntime): Remove.
1281         * superh.h (SUBTARGET_OPTIONS): Remove.
1282         * config.gcc (sh*-superh-elf): Add sh/superh.opt to extra_options.
1283
1284         * config.gcc (sh*-*-*): Don't use c-c ranges for tr.  Quote sed
1285         arguments with ^ and/or [].
1286
1287         * config.gcc (sh-*-*): Add quoting to account for quirk of
1288         Solaris /bin/sh.
1289         Replace == with = in enable_incomplete_targets test.
1290
1291         * config/sh/superh.h (SUBTARGET_LINK_SPEC): Replace LITTLE_ENDIAN_BIT
1292         with MASK_LITTLE_ENDIAN.
1293
1294         * config.gcc (sh*-superh-elf): Add sh/superh.h to tm_file.
1295         * config/sh/sh.opt: Added to some comments.
1296         * config/sh/superh.h: Removed some chaff.
1297
1298         * config/sh/sh.opt: Add m4-[1234]00* options.
1299         * config/sh/sh.c (sh_handle_option): Likewise.
1300         * config/sh/t-sh (IC_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Define.
1301         (ic_invalidate_array_4-100.o): New rule.
1302         ($(T)libic_invalidate_array_4-100.a): Likewise.
1303         (ic_invalidate_array_4-200.o): Likewise.
1304         ($(T)libic_invalidate_array_4-200.a): Likewise.
1305         (ic_invalidate_array_4a.o): Likewise.
1306         ($(T)libic_invalidate_array_4a.a): Likewise.
1307         * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Add IC_EXTRA_PARTS.
1308         * config/sh/embed-elf.h (LIBGCC_SPEC): Add clauses for m4-100*,
1309         m4-200*, and m4a*.
1310         * config/sh/crt1.asm: Merged in profiling code.
1311         * config/sh/superh.h (STARTFILE_SPEC): Override.
1312         * config/sh/t-superh: Override EXTRA_MULTILIB_PARTS.
1313         Add rules for $(T)crt1-mmu.o, $(T)gcrt1-mmu.o and $(T)gcrt1.o.
1314         * config.gcc (sh*-superh-elf): Add t-superh to tmake_file.
1315
1316         * t-sh (MULTILIB_MATCHES): Add sh4-[1245]00* variants.
1317         * config/sh/t-superh: Removed now-redundant MULTILIB_OPTIONS /
1318         MULTILIB_DIRNAMES / MULTILIB_MATCHES settings.
1319
1320         * sh.opt (mpretend-cmove): New option.
1321         * sh.h (OPERRIDE_OPTIONS): Switch it off if not TARGET_SH1.
1322         * sh.md (movsicc_t_false, movsicc_t_tru): New patterns.
1323         (movsicc): Add TARGET_PRETEND_CMOVE code.
1324
1325 2006-03-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1326
1327         * config/s390/s390-protos.h (s390_hard_regno_mode_ok,
1328         s390_class_max_nregs): New function prototypes.
1329         * config/s390/s390.c (REGNO_PAIR_OK): New macro.
1330         (s390_hard_regno_mode_ok, s390_class_max_nregs): New functions.
1331         * config/s390/s390.h (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
1332         CLASS_MAX_NREGS): Macro bodies replaced by function calls.
1333
1334 2006-03-26  Geoffrey Keating  <geoffk@apple.com>
1335
1336         * dwarf2out.c (add_location_or_const_value_attribute): Call
1337         tree_add_const_value_attribute if nothing else works.
1338         (reference_to_unused): New.
1339         (rtl_for_decl_init): Use reference_to_unused to decide whether
1340         to output an initializer.
1341
1342 2006-03-27  Alan Modra  <amodra@bigpond.net.au>
1343
1344         PR target/26459
1345         * config/rs6000/rs6000.md (DF reg move peephole): Prevent
1346         peephole removing spe frob_di_df_2.
1347
1348 2006-03-26  Sebastian Pop  <pop@cri.ensmp.fr>
1349
1350         * tree-data-ref.c: Rename DDR_SIZE_VECT to DDR_NB_LOOPS.
1351         (subscript_dependence_tester_1): Declared.
1352         (print_dir_vectors, print_dist_vectors): New.
1353         (debug_data_dependence_relation): New.
1354         (dump_data_dependence_relation): Print more details.
1355         (initialize_data_dependence_relation): Initialize DDR_LOOP_NEST.
1356         (analyze_subscript_affine_affine): Don't ICE when gcd_alpha_beta is 0.
1357         (save_dist_v, save_dir_v, add_outer_distances,
1358         build_classic_dist_vector_1): New.
1359         (build_classic_dist_vector): Rewrite to work on DDR_LOOP_NEST.
1360         Don't test for lambda_vector_lexico_pos.
1361         (same_access_functions, add_multivariate_self_dist,
1362         add_other_self_distances, dir_from_dist): New.
1363         (build_classic_dir_vector): Replace implementation almost identical to
1364         build_classic_dist_vector with a walk of DDR_DIST_VECTS with a call to
1365         dir_from_dist.
1366         (subscript_dependence_tester_1): New.
1367         (subscript_dependence_tester): Handle the lexicographically negative
1368         distance vectors by recomputing the dependence relation.
1369         (compute_affine_dependence): Remove parameter loop_nest_depth.
1370         (compute_self_dependence): Don't call compute_subscript_distance.
1371         (compute_all_dependences): Remove parameters nb_loops, loop_nest_depth.
1372         Add a parameter for the loop_nest.
1373         (find_loop_nest_1, find_loop_nest): New.
1374         (compute_data_dependences_for_loop): Compute the loop nest, and give
1375         up if the nest is not well formed.
1376         * tree-data-ref.h (loop_p): New.
1377         (struct data_dependence_relation): Replace size_vect field with
1378         loop_nest, a vec of loops.
1379         (DDR_SIZE_VECT): Renamed DDR_NB_LOOPS.
1380         (DDR_LOOP_NEST): New.
1381         (print_dir_vectors, print_dist_vectors,
1382         debug_data_dependence_relation): Declared.
1383         (index_in_loop_nest): New.
1384         * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Use
1385         DDR_LOOP_NEST and index_in_loop_nest to determine the dependence
1386         distance.
1387
1388 2006-03-25  Adam Nemet  <anemet@caviumnetworks.com>
1389
1390         * simplify-rtx.c (simplify_relational_operation): Call
1391         simplify_relational_operation_1 even if mode is VOIDmode.
1392
1393 2006-03-25  Daniel Berlin  <dberlin@dberlin.org>
1394
1395         PR tree-optimization/26804
1396         * tree.h (DECL_CALL_CLOBBERED): New macro.
1397         (tree_decl_common): Add call_clobbered_flag.
1398         * tree-flow-inline.h (is_call_clobbered): Use DECL_CALL_CLOBBERED.
1399         (mark_call_clobbered): Set DECL_CALL_CLOBBERED.
1400         (clear_call_clobbered): Clear DECL_CALL_CLOBBERED.
1401         (mark_non_addressable): Ditto.
1402         * tree-ssa.c (verify_call_clobbered): New function.
1403         (verify_alias_info): Use it.
1404         * tree-pass.h (pass_reset_cc_flags): New prototype.
1405         * tree-ssa-alias.c (pass_reset_cc_flags): New structure.
1406         (reset_cc_flags): New function.
1407         * passes.c (init_optimization_passes): Call reset_cc_flags after
1408         initializing referenced_vars.
1409
1410 2006-03-25  Uros Bizjak  <uros@kss-loka.si>
1411             Roger Sayle  <roger@eyesopen.com>
1412
1413         PR middle-end/26717
1414         * fold-const.c (fold_binary) [RDIV_EXPR]: Do not optimize A / A
1415         to 1.0 for non-real operands. Implement A / A optimization for
1416         complex operands.
1417
1418 2006-03-25  H.J. Lu  <hongjiu.lu@intel.com>
1419
1420         * config/i386/i386.c (size_cost): Correct the comment for
1421         cost of storing fp registers.
1422         (i386_cost): Likewise.
1423         (i486_cost): Likewise.
1424         (pentium_cost): Likewise.
1425         (pentiumpro_cost): Likewise.
1426         (k6_cost): Likewise.
1427         (athlon_cost): Likewise.
1428         (k8_cost): Likewise.
1429         (pentium4_cost): Likewise.
1430         (nocona_cost): Likewise.
1431         (generic64_cost): Likewise.
1432         (generic32_cost): Likewise.
1433
1434 2006-03-24  Denis Chertykov  <denisc@overta.ru>
1435
1436         * config/avr/avr-protos.h (extra_constraint): Delete.
1437         (extra_constraint_Q): New declaration.
1438         * config/avr/constraints.md: New file.
1439         * config/avr/avr.md: Include it.
1440         (REG_X, REG_Y, REG_Z, REG_W): New constants.
1441         (TMP_REGNO, ZERO_REGNO): Likewise.
1442         (UNSPEC_STRLEN, UNSPEC_INDEX_JMP): Likewise.
1443         * config/avr/avr.c (avr_reg_class_from_letter): Delete.
1444         (extra_constraint): Delete.
1445         (extra_constraint_Q): Test for memory constraint 'Q'.
1446         * config/avr/avr.h (REG_X,REG_Y,REG_Z,REG_W): Delete.
1447         (REG_CLASS_FROM_LETTER): Delete.
1448         (CONST_OK_FOR_LETTER_P): Delete.
1449         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
1450         (EXTRA_CONSTRAINT): Delete.
1451         (TMP_REGNO): Delete.
1452         (ZERO_REGNO): Delete.
1453
1454 2006-03-24  Jeff Law  <law@redhat.com>
1455
1456         * tree-ssa-dom.c (propagate_rhs_into_lhs): Don't call update_stmt
1457         directly.  Call mark_new_vars_to_rename slightly earlier.
1458
1459 2006-03-24  Geoffrey Keating  <geoffk@apple.com>
1460
1461         * dwarf2out.c (is_c_family): Understand new DWARF3 language types.
1462         (is_cxx): Likewise.
1463         (gen_compile_unit_die): Use new language types for Objective-C and
1464         Objective-C++.
1465         (dwarf2out_decl): Use is_cxx rather than testing explicitly against
1466         DW_LANG_C_plus_plus.
1467
1468         PR 26793
1469         * config/t-darwin (crt3.o): Work around bug 26840.
1470         * config/darwin-crt3.c: Rewrite.
1471         * config/darwin.h (STARTFILE_SPEC): Don't use -l for crt3.o.
1472
1473 2006-03-24  Carlos O'Donell  <carlos@codesourcery.com>
1474
1475         * doc/invoke.texi: Document -femit-class-debug-always
1476         * common.opt: Add -femit-class-debug-always.
1477
1478 2006-03-24  Andreas Krebbel  <krebbel1@de.ibm.com>
1479
1480         * config/s390/s390.c (s390_decompose_address): Allow SImode for
1481         index and base register.
1482         (s390_expand_plug_operand, legitimate_address_p, preferred_la_operand_p,
1483         print_operand_address, print_operand): Replaced REG_OK_FOR_BASE_STRICT_P
1484         with REGNO_OK_FOR_BASE_P and REG_OK_FOR_INDEX_STRICT_P with
1485         REGNO_OK_FOR_INDEX_P.
1486         * config/s390/s390.h (REGNO_OK_FOR_INDEX_P): Replaced check with
1487         ADDR_REGNO_P.
1488         (REG_OK_FOR_INDEX_NONSTRICT_P, REG_OK_FOR_BASE_NONSTRICT_P,
1489         REG_OK_FOR_INDEX_STRICT_P, REG_OK_FOR_BASE_STRICT_P, REG_OK_FOR_INDEX_P,
1490         REG_OK_FOR_BASE_P): Definitions removed.
1491
1492 2006-03-24  Jakub Jelinek  <jakub@redhat.com>
1493
1494         PR middle-end/26611
1495         * gimplify.c (gimplify_bind_expr): Only call omp_add_variable on
1496         non-global variables that don't have DECL_SEEN_IN_BIND_EXPR_P bit
1497         set yet or weren't marked as local yet.
1498
1499 2006-03-24  Bernd Schmidt  <bernd.schmidt@analog.com>
1500
1501         * regrename.c (scan_rtx_address): Initialize a variable to shut up
1502         the compiler.
1503
1504 2006-03-24  Eric Botcazou  <ebotcazou@adacore.com>
1505
1506         * config/rs6000/rs6000-protos.h (rs6000_offsettable_memref_p): Declare.
1507         (rs6000_legitimate_small_data_p): Delete.
1508         * config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New predicate.
1509         (rs6000_legitimate_small_data_p): Rename to legitimate_small_data_p
1510         and make static.  Add forward declaration.  Update uses.
1511         (rs6000_split_multireg_move): Use rs6000_offsettable_memref_p instead
1512         of offsettable_memref_p.
1513         * config/rs6000/rs6000.md (movdf_hardfloat32): Revert 2005-08-23 fix.
1514         Use rs6000_offsettable_memref_p instead of a less accurate predicate.
1515
1516 2006-03-24  Jeff Law  <law@redhat.com>
1517
1518         * tree-ssa-dom.c (propagate_rhs_into_lhs): Temporarily work
1519         around bug in immediate-use iterator.
1520
1521 2006-03-24  Alan Modra  <amodra@bigpond.net.au>
1522
1523         PR target/26607
1524         * config/rs6000/darwin-ldouble.c: Don't compile when __NO_FPRS__
1525         or __LITTLE_ENDIAN__.
1526
1527 2006-03-23  J"orn Rennecke <joern.rennecke@st.com>
1528
1529         * config/sh/divtab-sh4.c, config/sh/divcost-analysis: New files.
1530         * config/sh/lib1funcs.asm (div_table): Add !__SH5__ variant.
1531         * config/sh/t-sh (LIB1ASMFUNCS): Add _div_table.
1532         * config/sh/sh.opt (mdiv=): Amend description.
1533         * config/sh/sh.h (TARGET_DIVIDE_CALL_DIV1): New macro.
1534         (TARGET_DIVIDE_CALL_FP, TARGET_DIVIDE_CALL_TABLE): Likewise.
1535         (sh_divide_strategy_e): Add new members SH_DIV_CALL_DIV1,
1536         SH_DIV_CALL_FP, SH_DIV_CALL_TABLE and SH_DIV_INTRINSIC.
1537         (OVERRIDE_OPTIONS): Also process sh_div_str for TARGET_SH1.
1538         Calculate sh_divsi3_libfunc using TARGET_DIVIDE_* macros.
1539         * config/sh/sh.md (udivsi3_i4_int, divsi3_i4_int): New patterns.
1540         (udivsi3, divsi3): Use them.  Check TARGET_DIVIDE_CALL_TABLE /
1541         TARGET_DIVIDE_CALL_FP.
1542
1543 2006-03-23  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1544
1545         * haifa-sched.c (choose_ready): Fix type of the local variable.
1546         Move local variables.  Add comment.
1547         (check_reg_live): Change signature.  Make callable from debugger.
1548         * sched-int.h (check_reg_live): Update signature.
1549         * sched-ebb.c (check_reg_live): Update parameters.
1550         * sched-rgn.c (check_reg_live): Ditto.
1551         (region_head_or_leaf_p): Check pointer before dereferencing.
1552         * config/ia64/ia64.c (ia64_set_sched_flags): Disable data speculation
1553         before reload on optimization levels below 1.
1554
1555 2006-03-23  Richard Henderson  <rth@redhat.com>
1556
1557         * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject
1558         tls symbols.
1559
1560         PR target/26347
1561         * config/alpha/predicates.md (local_symbolic_operand): Reject
1562         weak symbols.
1563
1564 2006-03-23  Andrew Pinski  <pinskia@physics.uc.edu>
1565
1566         PR tree-opt/26795
1567         * tree-ssa-pre.c (create_value_expr_from): Don't reject
1568         expressions which have overflowed constants.
1569
1570 2006-03-23  Zdenek Dvorak <dvorakz@suse.cz>
1571
1572         * cse.c (cse_end_of_basic_block): Do not check for LOOP_END note.
1573
1574 2006-03-23  Zdenek Dvorak <dvorakz@suse.cz>
1575
1576         * cfgloopmanip.c (create_loop_notes): Removed.
1577         * final.c (final_scan_insn): Do not handle loop notes.
1578         * jump.c (squeeze_notes): Ditto.
1579         * cfglayout.c (skip_insns_after_block,
1580         duplicate_insn_chain): Ditto.
1581         * cfgcleanup.c (rest_of_handle_jump2): Do not call
1582         create_loop_notes.
1583         * cfgloop.h (create_loop_notes): Declaration removed.
1584
1585 2006-03-23  Richard Sandiford  <richard@codesourcery.com>
1586
1587         * varasm.c (output_constant_pool): Restore fnname and fndecl
1588         arguments.
1589         (assemble_start_function): Adjust call accordingly.
1590         (assemble_end_function): Likewise.
1591
1592 2006-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1593
1594         PR mudflap/26790
1595         * tree-mudflap.c (mudflap_finish_file): Skip erroneous objects.
1596
1597         PR mudflap/26789
1598         * tree-mudflap.c (mf_xform_derefs_1): Return early on error_mark_node.
1599
1600 2006-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1601
1602         PR driver/22600
1603         * system.h (ICE_EXIT_CODE): New macro.
1604         * diagnostic.c (diagnostic_count_diagnostic): Exit with ICE_EXIT_CODE.
1605         (diagnostic_action_after_output): Likewise.
1606         * gcc.c (fatal_ice): New function.
1607         (execute): Use it instead of fatal.
1608         (fancy_abort): Likewise.
1609         * doc/invoke.texi (-pass-exit-codes): Document return code for ICEs.
1610
1611 2006-03-22  Jeff Law  <law@redhat.com>
1612
1613         * loop-unroll.c (analyze_iv_to_split_insn): Handle
1614         iv_analyze_result returning false.
1615
1616 2006-03-22  Jie Zhang  <jie.zhang@analog.com>
1617
1618         * config/bfin/bfin.h (ASM_FORMAT_PRIVATE_NAME): Remove.
1619
1620 2006-03-22  Richard Henderson  <rth@redhat.com>
1621
1622         PR middle-end/26084
1623         * except.c (duplicate_eh_regions_0): New.
1624         (duplicate_eh_region_1): Duplicate the children of the node as
1625         well as the node itself.  Link them up properly.
1626         (duplicate_eh_region_2): Merge into ...
1627         (duplicate_eh_regions): ... here.  Take copy_region argument, and
1628         copy only a sub-tree if asked.  Simplify copying and fixup.
1629         (eh_region_outer_p): New.
1630         * except.h (duplicate_eh_regions): Update decl.
1631         (eh_region_outer_p): Declare.
1632         * omp-low.c (lower_omp_single): Fix eh region placement wrt OMP_RETURN.
1633         (lower_omp_master): Likewise.
1634         (lower_omp_ordered): Likewise.
1635         * tree-cfg.c (struct move_stmt_d): Add new_label_map.
1636         (move_stmt_r): Use it to remap labels.  Handle recursion vs
1637         remap_decls_p properly.
1638         (move_block_to_fn): Pass in new_label_map.  Remap RESX_EXPR.
1639         (find_outermost_region_in_block): New.
1640         (new_label_mapper): New.
1641         (move_sese_region_to_fn): Copy eh information to the new function
1642         properly.
1643         * tree-inline.c (copy_cfg_body): Update for new duplicate_eh_regions
1644         argument.
1645         * tree-pretty-print.c (dump_generic_node): Dump RESX_EXPR region
1646         number.
1647
1648 2006-03-22  Richard Sandiford  <richard@codesourcery.com>
1649
1650         * doc/md.texi (-mshared): Mention that -mshared code can be linked
1651         into shared libraries.
1652
1653 2006-03-22  Richard Sandiford  <richard@codesourcery.com>
1654
1655         * doc/md.texi: Refer to i386/constraints.md instead of
1656         i386/predicates.md.
1657         * config/i386/constraints.md: New file, extracted from...
1658         * config/i386/predicates.md: ...here.
1659         * config/i386/i386.md: Include constraints.md.
1660
1661 2006-03-21  Jason Merrill  <jason@redhat.com>
1662
1663         * builtins.c (expand_builtin_fork_or_exec): Fix pasto.
1664
1665         PR middle-end/20297
1666         * expr.c (init_block_move_fn): Force default visibility.
1667         (init_block_clear_fn): Likewise.
1668         * builtins.c (expand_builtin_fork_or_exec): Likewise.
1669         * targhooks.c (default_external_stack_protect_fail): Likewise.
1670
1671 2006-03-21  Richard Sandiford  <richard@codesourcery.com>
1672
1673         * config/mips/predicates.md (const_call_insn_operand): Allow direct
1674         calls to locally-defined functions if TARGET_ABSOLUTE_ABICALLS.
1675         * config/mips/mips.md (jal_macro): Test TARGET_ABSOLUTE_ABICALLS.
1676         Use TARGET_OLDABI instead of !TARGET_NEWABI.
1677         (loadgp): Use mips_current_loadgp_style.
1678         (loadgp_noshared): New pattern.
1679         (sibcall_internal): Use MIPS_CALL.
1680         (sibcall_value_internal): Likewise.
1681         (sibcall_value_multiple_internal): Likewise.
1682         (call_internal): Likewise.
1683         (call_value_internal): Likewise.
1684         (call_value_multiple_internal): Likewise.
1685         (call_split): Use MIPS_CALL and add an 'S' constraint.
1686         (call_value_split): Likewise.
1687         (call_value_multiple_split): Likewise.
1688         * config/mips/mips.opt (-mabicalls): Tweak docstring.
1689         (-mshared): New option.
1690         * config/mips/mips-protos.h (mips_loadgp_style): New enum.
1691         (mips_current_loadgp_style): Declare.
1692         * config/mips/mips.c (mips_classify_symbol): Avoid using
1693         SYMBOL_GOT_LOCAL if TARGET_ABSOLUTE_ABICALLS.  Use SYMBOL_GENERAL
1694         rather than SYMBOL_GOT_GLOBAL for locally-binding symbols if
1695         TARGET_ABSOLUTE_ABICALLS.
1696         (override_options): Adjust comments.  Improve the warning that is
1697         issued when -mabicalls and -G are used together.
1698         (mips_file_start): Remove comment.
1699         (mips_current_loadgp_style): New function.
1700         (mips_gnu_local_gp): New variable.
1701         (mips_emit_loadgp): Use mips_current_loadgp_style.  Handle
1702         LOADGP_ABSOLUTE.
1703         (mips_output_function_prologue): Use mips_current_laodgp_style.
1704         (mips_expand_prologue): Call mips_emit_loadgp before emitting
1705         the cprestore instruction.
1706         (mips_extra_live_on_entry): Fix reversed test.  Don't make $25
1707         live for TARGET_ABSOLUTE_ABICALLS.
1708         * config/mips/mips.h (TARGET_ABSOLUTE_ABICALLS): New macro.
1709         (ASM_SPEC): Pass down -mshared and -mno-shared.
1710         (MIPS_CALL): New macro.
1711         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove __ABICALLS__
1712         definition.
1713         * doc/invoke.texi (-mabicalls): Update documentation.
1714         (-mshared): Document.
1715
1716 2006-03-21  Steve Ellcey  <sje@cup.hp.com>
1717
1718         * config/ia64/unwind-hpux.c: New file.
1719         * config/ia64/t-hpux: Add unwind-hpux.c to libgcc.
1720
1721 2006-03-21  Steve Ellcey  <sje@cup.hp.com>
1722
1723         PR libgomp/26384
1724         * config/pa/pa64-hpux.h (LIB_SPEC): Fix for -mt and -pthread options.
1725
1726 2006-03-21  Jeff Law  <law@redhat.com>
1727
1728         * tree-vrp.c (extract_range_from_unary_expr): Derive ranges for
1729         type conversions of a VR_VARYING source to a wider type.
1730
1731 2006-03-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
1732
1733         * config.gcc (i[34567]86-*-solaris2*): Add config/sol2-10.h to
1734         tm_file on Solaris 10 and later.
1735         (sparc64-*-solaris2*): Likewise.
1736         (sparc-*-solaris2*): Likewise.
1737         * config/sol26.h: Rename to config/sol2-6.h.
1738         * config/sol2-10.h: New file.
1739
1740 2006-03-21  Andrew Pinski  <pinskia@physics.uc.edu>
1741
1742         PR tree-opt/26781
1743         * tree-ssa-pre.c (create_component_ref_by_pieces):
1744         Handle STRING_CST.
1745
1746 2006-03-21  Jakub Jelinek  <jakub@redhat.com>
1747
1748         PR c++/26690
1749         * tree.c (get_callee_fndecl): If CALL is error_mark_node,
1750         return it immediately.
1751
1752 2006-03-21  Michael Matz  <matz@suse.de>
1753
1754         * genautomata.c (<struct state>, num_out_arcs, presence_signature):
1755         New members.
1756         (remove_arc, add_arc): Update num_out_arcs member.
1757         (set_out_arc_insns_equiv_num): Returns nothing instead of number
1758         of out arcs.
1759         (cache_presence): New function.
1760         (compare_states_for_equiv): New function.
1761         (state_is_differed): Don't take number of outargs, adjust callers.
1762         Use new invariant for speeding up.
1763         (init_equiv_class): Create initial classes based on sorted
1764         input.
1765         (partition_equiv_class): Don't track out_arcs_num.
1766         (evaluate_equiv_classes): Call cache_presence on all states and
1767         sort them.
1768
1769 2006-03-21  Bernd Schmidt  <bernd.schmidt@analog.com>
1770
1771         * config/bfin/bfin-protos.h (bfin_dsp_memref_p): Declare.
1772         * config/bfin/bfin.c (bfin_dsp_memref_p): New function.
1773         (bfin_valid_reg_p): Test for pseudos explicitly and use only
1774         REGNO_MODE_CODE_OK_FOR_BASE_P.  New args MODE and OUTER_CODE; all
1775         callers changed.
1776         * config/bfin/bfin.h (PREG_P): Use P_REGNO_P.
1777         (IREG_P, P_REGNO_P, I_REGNO_P): New macros.
1778         (enum reg_class, REG_CLASS_CONTENTS): Add IPREGS.
1779         (BASE_REG_CLASS, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
1780         REGNO_OK_FOR_BASE_STRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): Delete
1781         macros.
1782         (IREG_POSSIBLE_P, MODE_CODE_BASE_REG_CLASS,
1783         REGNO_MODE_CODE_OK_FOR_BASE_P): New macros.
1784         (REGNO_REG_CLASS): ARGP is in PREGS.
1785         * config/bfin/bfin.md (movhi_insn): Allow for addresses containing
1786         IREGS.
1787         (zero_extendhisi2, extendhisi2): Likewise; changed to define_and_split
1788         to deal with those addresses.
1789         * addresses.h: New file.
1790         * caller-save.c: Include "addresses.h".
1791         (init_caller_save): Use new base_reg_class function.
1792         * rtl-factoring.c: Include "addresses.h".
1793         (recompute_gain_for_pattern_seq): Use new function ok_for_base_p_1.
1794         * recog.c: Include "addresses.h".
1795         (preprocess_constraints): Use new base_reg_class function.
1796         * regrename.c: Include "addresses.h".
1797         (scan_rtx_address): Use new regno_ok_for_base_p and base_reg_class
1798         functions.  Keep track of a new var INDEX_CODE to compute valid
1799         classes.
1800         (replace_oldest_value_addr): Likewise.
1801         (replace_oldest_value_mem): Use base_reg_class.
1802         * reload.c: Include "addresses.h".
1803         (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Delete macros.
1804         (find_reloads): Use new base_reg_class function.
1805         (find_reloads_address): Likewise; also use regno_ok_for_base_p.
1806         (find_reloads_address_1): Likewise. New args OUTER_CODE and INDEX_CODE;
1807         all callers and prototype changed.
1808         * reload1.c: Include "addresses.h".
1809         (maybe_fix_stack_asms): Use base_reg_class.
1810         * regclass.c: Include "addresses.h".
1811         (ok_for_index_p_nonstrict, ok_for_base_p_nonstrict): New functions.
1812         (init_reg_autoinc): Use new base_reg_class function.
1813         (record_reg_classes): Likewise.
1814         (record_address_regs): Delete arg CLASS; add args CONTEXT, MODE,
1815         OUTER_CODE and INDEX_CODE.  All callers and prototype changed.
1816         Use new args to compute necessary class.
1817
1818         * Makefile.in (regclass.o, reload.o, reload1.o, caller-save.o, recog.o,
1819         regrename.o, rtl-factoring.o): Update dependencies.
1820         * doc/tm.texi (MODE_CODE_BASE_REG_CLASS): Document.
1821         (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
1822         (REG_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_REG_BASE_P,
1823         REG_OK_FOR_INDEX_P): Delete documentation.
1824
1825 2006-03-21  Alexey Starovoytov  <alexey.starovoytov@sun.com>
1826
1827         * config.gcc (sparc-*-solaris2*): Change the default CPU setting
1828         from V7 to V9 for Solaris 7 and above.
1829
1830 2006-03-21  Toon Moene  <toon@moene.indiv.nluug.nl>
1831
1832         * doc/invoke.texi: Document new flag -fargument-noalias-anything.
1833         * tree-ssa-alias.c (may_alias_p): If flag_argument_noalias > 2,
1834         argument pointers may not alias any other storage.
1835         * common.opt: Define option -fargument-noalias-anything.
1836         * tree-ssa-structalias.c (intra_create_variable_infos): Fortran
1837         alias semantics is specified by flag_argument_noalias > 2.
1838
1839 2006-03-20  Jeff Law  <law@redhat.com>
1840
1841         * tree-pass.h (pass_phi_only_copy_prop): Delete.
1842         (pass_phi_only_cprop): Declare.
1843         * passes.c (init_optimization_passes): Replace pass_phi_only_copy_prop
1844         with phi_only_cprop
1845         * tree-ssa-dom.c (degenerate_phi_result): New function.
1846         (remove_stmt_or_phi, get_lhs_or_phi_result): Likewise.
1847         (get_rhs_or_phi_arg, propagate_rhs_into_lhs): Likewise.
1848         (eliminate_const_or_copy, eliminate_degenerate_phis_1): Likewise.
1849         (eliminate_degenerate_phis): Likewise.
1850         (pass_phi_only_cprop): New pass descriptor.
1851         * tree-ssa-copy.c (init_copy_prop): Lose PHIS_ONLY argument and
1852         support code.  Callers updated.
1853         (execute_copy_prop, do_copy_prop): Likewise and corresponding changes.
1854         (store_copy_prop): Likewise.
1855         (do_phi_only_copy_prop, pass_phi_only_copy_prop): Remove.
1856
1857 2006-03-20  Jason Merrill  <jason@redhat.com>
1858
1859         PR c++/21764
1860         * c-pragma.c (visstack): Move out of handle_pragma_visibility.
1861         (push_visibility, pop_visibility): Likewise.
1862         * c-pragma.h: Declare them.
1863
1864 2006-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
1865
1866         * config/sh/sh.c (untangle_mova): Initialize n_addr and n_target.
1867
1868         * config/sh/sh.c (find_regmode_weight): Change the type of the first
1869         parameter and use get_ebb_head_tail.
1870         (sh_md_init_global): Adjust uses of find_regmode_weight.
1871
1872 2006-03-20  Steven Bosscher  <stevenb.gcc@gmail.com>
1873
1874         * function.h (struct function) <x_tail_recursion_reentry>:
1875         Rename to x_stack_check_probe_note.
1876         (tail_recursion_reentry): Rename to stack_check_probe_note.
1877         * function.c: Replace tail_recursion_reentry with
1878         stack_check_probe_note everywhere.
1879         (expand_function_start): Only emit a note for
1880         stack_check_probe_note with -fstack-protect.
1881         * stmt.c (expand_case): Don't emit NOTE_INSN_DELETED notes.
1882
1883         * emit-rtl.c (remove_unnecessary_notes): Remove.
1884         (pass_remove_unnecessary_notes): Remove.
1885         * rtl.h (remove_unnecessary_notes): Remove prototype.
1886         * final.c (final_start_function): Don't call remove_unnecessary_notes.
1887         * tree-pass.h (pass_remove_unnecessary_notes): Remove.
1888         * passes.c (pass_remove_unnecessary_notes): Don't run it.
1889
1890 2006-03-20  Andrew Pinski  <pinskia@physics.uc.edu>
1891
1892         PR tree-opt/26629
1893         * tree-ssa-pre (phi_translate): Handle ARRAY_REF's operands.
1894         (valid_in_set): Handle ARRAY_REF.
1895         Change "if min_variant or VH" to asserts.
1896         (create_component_ref_by_pieces): Handle ARRAY_REF.
1897         (create_expression_by_pieces): Likewise.
1898         (can_PRE_operation): ARRAY_REFs can now be PRE'd.
1899
1900 2006-03-20  David Edelsohn  <edelsohn@gnu.org>
1901
1902         * genpreds.c (write_insn_extra_address_constraint): Argument `c'
1903         is operand of switch, not str[0].
1904
1905 2006-03-20  Alan Modra  <amodra@bigpond.net.au>
1906
1907         * config/rs6000/rs6000.c (rs6000_handle_option): Use
1908         TARGET_NO_FP_IN_TOC inside #ifdef TARGET_USES_SYSV4_OPT too.
1909
1910 2006-03-19  David Edelsohn  <edelsohn@gnu.org>
1911
1912         * genpreds.c (write_tm_preds_h): Add semicolon and newline at
1913         end of insn_extra_address_constraint declaration.
1914
1915 2006-03-19  David Edelsohn  <edelsohn@gnu.org>
1916
1917         * config/rs6000/rs6000.opt (no-fp-in-toc): Use Var not Mask.
1918         (no-sum-in-toc): Same.
1919         * config/rs6000/rs6000.c (rs6000_handle_option): Use new
1920         variables.
1921         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set
1922         NO_FP_IN_TOC for -fPIC instead of mask.
1923
1924         * config/rs6000/t-aix43 (T_ADAFLAGS): Delete.
1925         (BOOT_LDFLAGS): Delete.
1926         (LDFLAGS): Delete.
1927         * config/rs6000/t-aix52: Same.
1928
1929         * config/rs6000/rs6000.md (store_multiple_power): Delete.
1930         (stmsi[345678]_power): New.
1931
1932 2006-03-17  Steve Ellcey  <sje@cup.hp.com>
1933
1934         * config/ia64/ia64.opt: Add empty line to end of file.
1935
1936 2006-03-17  Richard Guenther  <rguenther@suse.de>
1937
1938         PR middle-end/26721
1939         * builtins.c (get_pointer_alignment): For component style references
1940         adjust alignment to the component type alignment.  Make sure
1941         to adjust alignment for component access of constants.
1942
1943 2006-03-17  David Edelsohn  <edelsohn@gnu.org>
1944
1945         * config/rs6000/rs6000.md (strlensi): Emit barrier after
1946         unconditional jump.
1947
1948 2006-03-17  Paul Brook  <paul@codesourcery.com>
1949
1950         * doc/install.texi: Docuemnt --with-mode.
1951         * config.gcc: Add --with-mode for arm*-*-*.
1952         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "mode".
1953
1954 2006-03-17  J"orn Rennecke <joern.rennecke@st.com>
1955
1956         * sh.c (max_labelno_before_reorg): New variable.
1957         (sh_reorg): Initialize it.
1958         (find_barrier): Check max_labelno_before_reorg before using
1959         label_to_alignment.  Take length of explicit alignment insns
1960         into account.  When seeing a UNSPECV_CONST_END, return it.
1961
1962         * sh.c (fixup_mova): Set mode of affected label to QImode.
1963         (untangle_mova): New function.
1964         (find_barrier): Use it.  Check mode of label before decrementing
1965         num_mova.
1966         (sh_reorg): Likewise.
1967         Set mode of all insns back to VOIDmode.
1968
1969         * sh.c (MOVA_LABELREF): New macro.
1970         (mova_p, fixup_mova, sh_reorg): Use it.
1971         (find_barrier, sh_reorg): Don't count num_mova back to 0 unless
1972         ADDR_DIFF_VEC matches mova.
1973
1974 2006-03-17  Steven Bosscher  <stevenb.gcc@gmail.com>
1975
1976         * dwarf2asm.c (dw2_asm_output_offset): Mark 'base' argument
1977         with ATTRIBUTE_UNUSED.
1978
1979 2006-03-17  Alexandre Oliva  <aoliva@redhat.com>
1980
1981         * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
1982         pointer, instead of assuming it is possible to derive the
1983         correct args size from a call insn.
1984
1985 2006-03-16  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
1986
1987         * rtl.h (CONST_INT_P): Define.
1988         * config/vax/vax.c (print_operand_address): Use CONST_INT_P()
1989         instead of GET_CODE(x) == CONST_INT.
1990         (vax_rtx_costs): Likewise.
1991         (vax_output_int_move): Likewise.
1992         (vax_output_int_add): Likewise.
1993         (legitimate_constant_address_p): Likewise.
1994         (index_term_p): Likewise.
1995         * config/vax/vax.h (PRINT_OPERAND): Likewise.
1996         * config/vax/vax.md (and<mode>3): Likewise.
1997         (ashrsi3): Likewise.
1998         (extv): Likewise.
1999         (movstricthi): Likewise.
2000         (movstrictqi): Likewise.
2001         (rotrsi3): Likewise.
2002         (five unnamed insns): Likewise.
2003
2004 2006-03-16  Geoffrey Keating  <geoffk@apple.com>
2005
2006         * doc/tm.texi (SDB and DWARF): Add extra parameter to
2007         ASM_OUTPUT_DWARF_OFFSET.  Use @var to indicate metavariables.
2008         * dwarf2asm.h (dw2_asm_output_offset): Add section parameter.
2009         * dwarf2asm.c (dw2_asm_output_offset): Add base section parameter.
2010         Pass to ASM_OUTPUT_DWARF_OFFSET.
2011         * dwarf2out.c (debug_frame_section): New.
2012         (output_call_frame_info): Use debug_frame_section.  Pass it to
2013         dw2_asm_output_offset.
2014         (output_die): Pass appropriate section to dw2_asm_output_offset.
2015         (output_compilation_unit_header): Likewise.
2016         (output_pubnames): Likewise.
2017         (output_aranges): Likewise.
2018         (enum dw_val_class): Break dw_val_class_lbl_offset into
2019         dw_val_class_lineptr and dw_val_class_macptr.
2020         (add_AT_lbl_offset): Delete.
2021         (add_AT_lineptr): New.
2022         (add_AT_macptr): New.
2023         (AT_lbl): Expect a lineptr or macptr.
2024         (print_die): Handle dw_val_class_lineptr and dw_val_class_macptr.
2025         (attr_checksum): Likewise.
2026         (same_dw_val_p): Likewise.
2027         (size_of_die): Likewise.
2028         (value_format): Likewise.
2029         (output_die): Likewise.
2030         (dwarf2out_finish): Call add_AT_lineptr and add_AT_macptr instead of
2031         add_AT_lbl_offset.
2032         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
2033         * config/i386/i386.c (x86_file_start): Call darwin_file_start.
2034         * config/darwin-protos.h (darwin_file_start): New.
2035         (darwin_asm_output_dwarf_offset): New.
2036         * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
2037         * config/rs6000/rs6000.c (rs6000_darwin_file_start): Call
2038         darwin_file_start.
2039         * config/darwin.c (darwin_emit_unwind_label): Don't output label
2040         if not EH section; simplify.
2041         (darwin_file_start): New.
2042         (darwin_asm_output_dwarf_offset): New.
2043         * config/darwin.h (DEBUG_FRAME_SECTION): In __DWARF segment,
2044         mark as 'debug'.
2045         (DEBUG_INFO_SECTION): Likewise.
2046         (DEBUG_ABBREV_SECTION): Likewise.
2047         (DEBUG_ARANGES_SECTION): Likewise.
2048         (DEBUG_MACINFO_SECTION): Likewise.
2049         (DEBUG_LINE_SECTION): Likewise.
2050         (DEBUG_LOC_SECTION): Likewise.
2051         (DEBUG_PUBNAMES_SECTION): Likewise.
2052         (DEBUG_STR_SECTION): Likewise.
2053         (DEBUG_RANGES_SECTION): Likewise.
2054         (FRAME_BEGIN_LABEL): Must start with 'L' in debug section.
2055         (ASM_OUTPUT_DWARF_OFFSET): New.
2056
2057 2006-03-16  Joseph S. Myers  <joseph@codesourcery.com>
2058
2059         * config.gcc (tm_defines): Always add to previous value rather
2060         than replacing it.
2061
2062 2006-03-16  Richard Sandiford  <richard@codesourcery.com>
2063
2064         * config/mips/predicates.md (splittable_const_int_operand): New,
2065         split from move_operand.
2066         (splittable_symbolic_operand): New.
2067         (move_operand): Add commentary.  Use splittable_const_int_operand.
2068         Inline mips_atomic_symbolic_constant_p.
2069         * config/mips/mips.md: Add combine splitters for handling moves
2070         of splittable_const_int_operands and splittable_symbolic_operands.
2071         * config/mips/mips-protos.h (mips_atomic_symbolic_constant_p): Delete.
2072         (mips_split_symbol): Declare.
2073         (mips_move_integer): Declare.
2074         * config/mips/mips.c (mips_split_p): Make global.
2075         (TARGET_MIN_ANCHOR_OFFSET): Override default.
2076         (TARGET_MAX_ANCHOR_OFFSET): Likewise.
2077         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
2078         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Likewise.
2079         (mips_offset_within_object_p): Handle block symbols.
2080         (mips_atomic_symbolic_constant_p): Delete.
2081         (mips_cannot_force_const_mem): Return false for constants that
2082         mips_legitimize_move can handle.
2083         (mips_use_blocks_for_constant_p): New function.
2084         (mips_split_symbol): Make global.
2085         (mips_move_integer): Likewise.  Add a temporary register argument.
2086         (mips_legitimize_const_move): Use splittable_const_int_operand and
2087         splittable_symbolic_operand.
2088         (mips_use_anchors_for_symbol_p): New function.
2089         * config/mips/mips.h: Protect externs with !USED_FOR_TARGET.
2090         (mips_split_p): Declare.
2091
2092 2006-03-16  Richard Sandiford  <richard@codesourcery.com>
2093
2094         * config.gcc (mips64*-*-linux*): Keep existing tm_defines.
2095         (mips*-*-linux*): Likewise.
2096
2097 2006-03-16  Roger Sayle  <roger@eyesopen.com>
2098             Daniel Speyer  <dspeyer@wam.umd.edu>
2099
2100         PR middle-end/18259
2101         * tree-dump.c (dump_real): New function.
2102         (dequeue_and_dump) <REAL_CST>: Use it to dump FP constants.
2103         * Makefile.in (REAL_H): New macro for dependencies on real.h.
2104         (tree-dump.o): Add $(REAL_H) to the dependencies.
2105
2106 2006-03-16  Roger Sayle  <roger@eyesopen.com>
2107
2108         PR middle-end/21781
2109         * real.c (real_from_string): If the mantissa is zero, don't bother
2110         parsing the exponent as the result should always be zero.
2111
2112 2006-03-16  Andreas Krebbel  <krebbel1@de.ibm.com>
2113
2114         * simplify-rtx.c (simplify_plus_minus): Simplify within CONST terms.
2115
2116 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2117
2118         * config/ia64/ia64.c (stops_p): Added explicit initialization.
2119         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
2120         ia64_h_i_d_extended, ia64_set_sched_flags, ia64_speculate_insn,
2121         ia64_needs_block_p, ia64_gen_check, ia64_sched_init_global,
2122         ia64_sched_finish_global): New static functions to implement
2123         hooks from gcc_target.sched.
2124         (spec_check_no, max_uid, pending_data_specs): New static variables.
2125         (ia64_mode_to_int, ia64_gen_spec_insn, ia64_spec_check_p,
2126         ia64_spec_check_src_p): New static functions.
2127         (ia64_adjust_cost): Renamed to ia64_adjust_cost_2.
2128         (TARGET_SCHED_ADJUST_COST): Removed.
2129         (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_INIT_GLOBAL,
2130         TARGET_SCHED_FINISH_GLOBAL, TARGET_SCHED_H_I_D_EXTENDED,
2131         TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
2132         TARGET_SCHED_GEN_CHECK,
2133         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
2134         TARGET_SCHED_SET_SCHED_FLAGS): New macros.
2135         (update_set_flags, group_barrier_needed, set_src_needs_barrier):
2136         Fixed to handle speculation checks.
2137         (rtx_needs_barrier): Fixed to handle speculative loads and
2138         their checks.
2139         (ia64_variable_issue): Added code to count speculative loads and their
2140         checks.
2141         (ia64_first_cycle_multipass_dfa_lookahead_guard): Fixed to handle
2142         speculative loads.
2143         (enum SPEC_MODES, enum SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET):
2144         New enumerations.
2145         (SPEC_GEN_EXTEND_OFFSET, SPEC_N, SPEC_GEN_CHECK_MUTATION_OFFSET):
2146         New constants.
2147         (ia64_ld_address_bypass_p): Fixed to handle speculative loads.
2148         (ia64_reorg): Reset stops_p to NULL after it is freed.
2149         * config/ia64/ia64.md (UNSPEC_LDA, UNSPEC_LDS, UNSPEC_LDSA,
2150         UNSPEC_LDCCLR, UNSPEC_CHKACLR, UNSPEC_CHKS): New constants.
2151         (itanium_class): chk_s renamed to chk_s_i.  New constants: chk_s_f,
2152         chk_a.
2153         (data_speculative, control_speculative, check_load): New attributes.
2154         (mov<mode>_advanced, mov<mode>_speculative,
2155         mov<mode>_speculative_advanced, zero_extend<mode>di2_advanced,
2156         zero_extend<mode>di2_speculative,
2157         zero_extend<mode>di2_speculative_advanced): New patterns for
2158         data and control speculative loads.
2159         (mov<mode>_clr, zero_extend<mode>di2_clr): New patterns for
2160         check loads.
2161         (advanced_load_check_clr_<mode>, speculation_check_<mode>):
2162         New pattern for data and control speculation checks.
2163         (MODE, MODE_FOR_EXTEND, output_a, output_s, output_sa, output_c_clr,
2164         ld_reg_constr, ldc_reg_constr, chk_reg_constr, mem_constr,
2165         reg_pred_prefix, ld_class, chka_class, chks_class, attr_yes):
2166         Auxiliary definitions for the patterns.
2167         * config/ia64/itanium1.md (1_fldc, 1_fldpc, 1_ldc, 1_chk_s_f, 1_chk_a,
2168         1b_fldc, 1b_fldpc, 1b_ldc, 1b_chk_s_f, 1b_chk_a): New resource
2169         constraints.
2170         (1_fld, 1_fldp, 1_ld, 1b_fld, 1b_fldp, 1b_ld): Add a condition
2171         for speculation.
2172         (1_chk_s, 1b_chk_s): Renamed to 1_chk_s_i, 1b_chk_s_i.
2173         * config/ia64/itanium2.md (2_flda, 2_fldc, 2_fldpc, 2_ldc, 2_chk_s_f,
2174         2_chk_a, 2b_flda, 2b_fldc, 2b_fldpc, 2b_ldc, 2b_chk_s_f, 2b_chk_a):
2175         New resource constraints.
2176         (2_fld, 2_fldp, 2_ld, 2b_fld, 2b_fldp, 2b_ld): Add a condition
2177         for speculation.
2178         (2_chk_s, 2b_chk_s): Renamed to 2_chk_s_i, 2b_chk_s_i.
2179         * config/ia64/ia64.opt (msched-br-data-spec, msched-ar-data-spec,
2180         msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
2181         msched-in-control-spec, msched-ldc, msched-control-ldc,
2182         msched-spec-verbose, msched-prefer-non-data-spec-insns,
2183         msched-prefer-non-control-spec-insns,
2184         msched-count-spec-in-critical-path): New flags to tune speculative
2185         scheduling.
2186         * doc/invoke.texi (msched-br-data-spec, msched-ar-data-spec,
2187         msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
2188         msched-in-control-spec, msched-ldc, msched-control-ldc,
2189         msched-spec-verbose, msched-prefer-non-data-spec-insns,
2190         msched-prefer-non-control-spec-insns,
2191         msched-count-spec-in-critical-path): Document new flags.
2192
2193 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2194
2195         * target.h (struct spec_info_def): New opaque declaration.
2196         (struct gcc_target.sched): New fields: adjust_cost_2, h_i_d_extended,
2197         speculate_insn, needs_block_p, gen_check,
2198         first_cycle_multipass_dfa_lookahead_guard_spec, set_sched_flags.
2199         * target-def.h (TARGET_SCHED_ADJUST_COST_2,
2200         TARGET_SCHED_H_I_D_EXTENDED, TARGET_SCHED_SPECULATE_INSN,
2201         TARGET_SCHED_NEEDS_BLOCK_P, TARGET_SCHED_GEN_CHECK,
2202         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
2203         TARGET_SCHED_SET_SCHED_FLAGS): New macros to initialize fields in
2204         gcc_target.sched.
2205         (TARGET_SCHED): Use new macros.
2206         * rtl.h (copy_DEPS_LIST_list): New prototype.
2207         * sched-int.h (struct sched_info): Change signature of new_ready field,
2208         adjust all initializations. New fields: add_remove_insn,
2209         begin_schedule_ready, add_block, advance_target_bb, fix_recovery_cfg,
2210         region_head_or_leaf_p.
2211         (struct spec_info_def): New structure declaration.
2212         (spec_info_t): New typedef.
2213         (struct haifa_insn_data): New fields: todo_spec, done_spec, check_spec,
2214         recovery_block, orig_pat.
2215         (glat_start, glat_end): New variables declaraions.
2216         (TODO_SPEC, DONE_SPEC, CHECK_SPEC, RECOVERY_BLOCK, ORIG_PAT):
2217         New access macros.
2218         (enum SCHED_FLAGS): New constants: SCHED_RGN, SCHED_EBB,
2219         DETACH_LIFE_INFO, USE_GLAT.
2220         (enum SPEC_SCHED_FLAGS): New enumeration.
2221         (NOTE_NOTE_BB_P): New macro.
2222         (extend_dependency_caches, xrecalloc, unlink_bb_notes, add_block,
2223         attach_life_info, debug_spec_status, check_reg_live): New functions.
2224         (get_block_head_tail): Change signature to get_ebb_head_tail, adjust
2225         all uses in ddg.c, modulo-sched.c, haifa-sched.c, sched-rgn.c,
2226         sched-ebb.c
2227         (get_dep_weak, ds_merge): Prototype functions from sched-deps.c .
2228         * ddg.c (get_block_head_tail): Adjust all uses.
2229         * modulo-sched.c (get_block_head_tail): Adjust all uses.
2230         (sms_sched_info): Initialize new fields.
2231         (contributes_to_priority): Removed.
2232         * haifa-sched.c (params.h): New include.
2233         (get_block_head_tail): Adjust all uses.
2234         (ISSUE_POINTS): New macro.
2235         (glat_start, glat_end): New global variables.
2236         (spec_info_var, spec_info, added_recovery_block_p, nr_begin_data,
2237         nr_be_in_data, nr_begin_control, nr_be_in_control, bb_header,
2238         old_last_basic_block, before_recovery, current_sched_info_var,
2239         rgn_n_insns, luid): New static variables.
2240         (insn_cost1): New function.  Move logic from insn_cost to here.
2241         (find_insn_reg_weight1): New function.  Move logic from
2242         find_insn_reg_weight to here.
2243         (reemit_notes, move_insn, max_issue): Change signature.
2244         (move_insn1): Removed.
2245         (extend_h_i_d, extend_ready, extend_global, extend_all, init_h_i_d,
2246         extend_bb): New static functions to support extension of scheduler's
2247         data structures.
2248         (generate_recovery_code, process_insn_depend_be_in_spec,
2249         begin_speculative_block, add_to_speculative_block,
2250         init_before_recovery, create_recovery_block, create_check_block_twin,
2251         fix_recovery_deps): New static functions to support
2252         generation of recovery code.
2253         (fix_jump_move, find_fallthru_edge, dump_new_block_header,
2254         restore_bb_notes, move_block_after_check, move_succs): New static
2255         functions to support ebb scheduling.
2256         (init_glat, init_glat1, attach_life_info1, free_glat): New static
2257         functions to support handling of register live information.
2258         (associate_line_notes_with_blocks, change_pattern, speculate_insn,
2259         sched_remove_insn, clear_priorities, calc_priorities, bb_note,
2260         add_jump_dependencies): New static functions.
2261         (check_cfg, has_edge_p, check_sched_flags): New static functions for
2262         consistancy checking.
2263         (debug_spec_status): New function to call from debugger.
2264         (priority): Added code to handle speculation checks.
2265         (rank_for_schedule): Added code to distinguish speculative instructions.
2266         (schedule_insn): Added code to handle speculation checks.
2267         (unlink_other_notes, rm_line_notes, restore_line_notes, rm_other_notes):
2268         Fixed to handle ebbs.
2269         (move_insn): Added code to handle ebb scheduling.
2270         (max_issue): Added code to use ISSUE_POINTS of instructions.
2271         (choose_ready): Added code to choose between speculative and
2272         non-speculative instructions.
2273         (schedule_block): Added code to handle ebb scheduling and scheduling of
2274         speculative instructions.
2275         (sched_init): Initialize new variables.
2276         (sched_finish): Free new variables.  Print statistics.
2277         (try_ready): Added code to handle speculative instructions.
2278         * lists.c (copy_DEPS_LIST_list): New function.
2279         * sched-deps.c (extend_dependency_caches): New function.  Move logic
2280         from create_dependency_caches to here.
2281         (get_dep_weak, ds_merge): Make global.
2282         * genattr.c (main): Code to output prototype for
2283         dfa_clear_single_insn_cache.
2284         * genautomata.c (DFA_CLEAR_SINGLE_INSN_CACHE_FUNC_NAME): New macros.
2285         (output_dfa_clean_insn_cache_func): Code to output
2286         dfa_clear_single_insn_cache function.
2287         * sched-ebb.c (target_n_insns): Remove.  Adjust all users to use
2288         n_insns.
2289         (can_schedule_ready_p, fix_basic_block_boundaries, add_missing_bbs):
2290         Removed.
2291         (n_insns, dont_calc_deps, ebb_head, ebb_tail, last_bb):
2292         New static variables.
2293         (begin_schedule_ready, add_remove_insn, add_block1, advance_target_bb,
2294         fix_recovery_cfg, ebb_head_or_leaf_p): Implement hooks from
2295         struct sched_info.
2296         (ebb_sched_info): Initialize new fields.
2297         (get_block_head_tail): Adjust all uses.
2298         (compute_jump_reg_dependencies): Fixed to use glat_start.
2299         (schedule_ebb): Code to remove unreachable last block.
2300         (schedule_ebbs): Added code to update register live information.
2301         * sched-rgn.c (region_sched_info): Initialize new fields.
2302         (get_block_head_tail): Adjust all uses.
2303         (last_was_jump): Removed.  Adjust users.
2304         (begin_schedule_ready, add_remove_insn, insn_points, extend_regions,
2305         add_block1, fix_recovery_cfg, advance_target_bb, region_head_or_leaf_p):
2306         Implement new hooks.
2307         (check_dead_notes1): New static function.
2308         (struct region): New fields: dont_calc_deps, has_real_ebb.
2309         (RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB): New access macros.
2310         (BB_TO_BLOCK): Fixed to handle EBBs.
2311         (EBB_FIRST_BB, EBB_LAST_BB): New macros.
2312         (ebb_head): New static variable.
2313         (debug_regions, contributes_to_priority): Fixed to handle EBBs.
2314         (find_single_block_regions, find_rgns, find_more_rgns): Initialize
2315         new fields.
2316         (compute_dom_prob_ps): New assertion.
2317         (check_live_1, update_live_1): Fixed to work with glat_start instead of
2318         global_live_at_start.
2319         (init_ready_list): New assertions.
2320         (can_schedule_ready_p): Split update code to begin_schedule_ready.
2321         (new_ready): Add support for BEGIN_CONTROL speculation.
2322         (schedule_insns): Fixed code that updates register live information
2323         to handle EBBs.
2324         (schedule_region): Fixed to handle EBBs.
2325         (init_regions): Use extend_regions and check_dead_notes1.
2326         * params.def (PARAM_MAX_SCHED_INSN_CONFLICT_DELAY,
2327         PARAM_SCHED_SPEC_PROB_CUTOFF): New parameters.
2328         * doc/tm.texi (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_H_I_D_EXTENDED,
2329         TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
2330         TARGET_SCHED_GEN_CHECK,
2331         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
2332         TARGET_SCHED_SET_SCHED_FLAGS): Document.
2333         * doc/invoke.texi (max-sched-insn-conflict-delay,
2334         sched-spec-prob-cutoff): Document.
2335
2336 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2337
2338         * sched-int.h (struct haifa_insn_data): New fields: resolved_deps,
2339         inter_tick, queue_index.
2340         (struct sched_info): Change signature of init_ready_list field.
2341         Adjust all initializations.
2342         (RESOLVED_DEPS): New access macro.
2343         (ready_add): Remove prototype.
2344         (try_ready): Add prototype.
2345         * sched-rgn.c (init_ready_list): Use try_ready.
2346         (schedule_region): Initialize
2347         current_sched_info->{sched_max_insns_priority, queue_must_finish_empty}.
2348         * sched-ebb.c (new_ready): Remove.  Adjust ebb_sched_info.
2349         (init_ready_list): Use try_ready.
2350         (schedule_ebb): Initialize current_sched_info->sched_max_insns_priority.
2351         * lists.c (remove_list_elem): Remove `static'.
2352         (remove_free_INSN_LIST_elem): New function.
2353         * rtl.h (remove_list_elem, remove_free_INSN_LIST_elem): Add prototypes.
2354         * haifa-sched.c (INTER_TICK, QUEUE_INDEX): New macros.
2355         (INVALID_TICK, MIN_TICK, QUEUE_SCHEDULED, QUEUE_NOWHERE, QUEUE_READY):
2356         New constants.
2357         (readyp): New variable.
2358         (queue_remove, ready_remove_insn, fix_inter_tick, fix_tick_ready,
2359         change_queue_index, resolve_dep): New static functions.
2360         (try_ready): New function.  Adjust callers in sched-rgn.c and
2361         sched-ebb.c to use it instead of ready_add.
2362         (clock_var): Move at the begining of file.
2363         (rank_for_schedule): Fix typo.
2364         (queue_insn): Add assertion.  Handle QUEUE_INDEX.
2365         (ready_lastpos): Enforce assertion.
2366         (ready_add): Make it static.  Handle QUEUE_INDEX.  Add new argument,
2367         update all callers.
2368         (ready_remove_first, ready_remove): Handle QUEUE_INDEX.
2369         (schedule_insn): Rewrite to use try_ready and resolve_dep.
2370         (queue_to_ready): Use free_INSN_LIST_list.
2371         (early_queue_to_ready): Fix typo.
2372         (schedule_block): Init readyp.  Move init_ready_list call after the
2373         initialization of clock_var.  Fix error in rejecting insn by
2374         targetm.sched.dfa_new_cycle.  Add call to fix_inter_tick.  Remove code
2375         that previously corrected INSN_TICKs.  Add code for handling
2376         QUEUE_INDEX.
2377         (set_priorities): Fix typo.
2378         (sched_init): Initialize INSN_TICK, INTER_TICK and QUEUE_INDEX.
2379         Clarify comment and code that keeps current_sched_info->next_tail
2380         non-null.
2381
2382 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2383
2384         * sched-rgn.c (extend_rgns): New static function.
2385         (find_rgns): Use it.
2386         (gather_region_statistics, print_region_statistics): New static
2387         functions.
2388         * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): New parameter.
2389         * doc/invoke.texi (max-sched-extend-regions-iters): Document.
2390
2391 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2392             Andrey Belevantsev <abel@ispras.ru>
2393
2394         * ddg.c (build_intra_loop_deps): Adjust add_forward_dependence call.
2395         * lists.c (unused_deps_list): New variable.
2396         (free_list): Add assertions to verify the proper distinguishing
2397         between INSN_LISTs and DEPS_LISTs.
2398         (find_list_elem, remove_list_elem, remove_list_node): New static
2399         functions.
2400         (alloc_DEPS_LIST, free_DEPS_LIST, free_DEPS_LIST_node,
2401         remove_free_INSN_LIST_elem, remove_free_DEPS_LIST_elem,
2402         remove_free_INSN_LIST_node, remove_free_DEPS_LIST_node): New functions.
2403         (alloc_INSN_LIST): Assert that the list we're working on is indeed
2404         an INSN_LIST.
2405         (free_INSN_LIST_node): Likewise.
2406         * modulo-sched.c (current_sched_info): Initialize flags field.
2407         * reg-notes.def: Exchange DEP_ANTI and DEP_OUTPUT.
2408         * rtl.def (DEPS_LIST): Define.
2409         * rtl.h: Declare new functions from lists.c.
2410         * sched-deps.c (spec_dependency_cache): New static variable.
2411         (maybe_add_or_update_back_dep_1, add_back_dep): New static functions.
2412         (add_dependence): Change return type to void.  Move the logic to ...
2413         (add_or_update_back_dep_1): ... here.  Handle speculative dependencies.
2414         (delete_all_dependences): Add comment about forward_dependency_cache.
2415         Handle spec_dependency_cache.  Handle DEPS_LISTs.
2416         (fixup_sched_groups): Clarify the change of priority of output
2417         and anti dependencies.
2418         (sched_analyze_2): Adjust add_dependence calls to create data
2419         speculative dependence.
2420         (add_forward_dependence): Renamed to add_forw_dep, change prototype.
2421         Adjust all callers.  Handle DEPS_LISTS.
2422         (compute_forward_dependences): Use add_forw_dep.  Sort LOG_LINKs in
2423         presence of speculation.
2424         (init_dependency_caches, free_dependency_caches):
2425         Handle spec_dependency_cache.
2426         (adjust_add_sorted_back_dep, adjust_back_add_forw_dep, delete_forw_dep,
2427         estimate_dep_weak, get_dep_weak, ds_merge, check_dep_status):
2428         New static functions.
2429         (add_or_update_back_dep, add_or_update_back_forw_dep,
2430         add_back_forw_dep, delete_back_forw_dep): New functions.
2431         * sched-int.h (ds_t, dw_t): New typedefs.
2432         (struct sched_info): Add new field flags.
2433         (struct haifa_insn_data): Add new bitfield has_internal_dep.
2434         Prototype new sched-deps.c functions.
2435         (HAS_INTERNAL_DEP, DEP_STATUS): New access macros.
2436         (BITS_PER_DEP_STATUS, BITS_PER_DEP_WEAK, DEP_WEAK_MASK, MAX_DEP_WEAK,
2437         MIN_DEP_WEAK, NO_DEP_WEAK, UNCERTAIN_DEP_WEAK, BEGIN_DATA, BE_IN_DATA,
2438         BEGIN_CONTROL, BE_IN_CONTROL, BEGIN_SPEC, DATA_SPEC, CONTROL_SPEC,
2439         SPECULATIVE, BE_IN_SPEC, FIRST_SPEC_TYPE, LAST_SPEC_TYPE,
2440         SPEC_TYPE_SHIFT, DEP_TRUE, DEP_OUTPUT, DEP_ANTI, DEP_TYPES, HARD_DEP):
2441         New constants.
2442         (enum SPEC_TYPES_OFFSETS, enum DEPS_ADJUST_RESULT, enum SCHED_FLAGS):
2443         New enums.
2444         * sched-rgn.c (current_sched_info): Initialize flags field.
2445         (schedule_insns): Initialize current_sched_info before the sched_init
2446         call.
2447         * sched-ebb.c (current_sched_info): Initialize flags field.
2448         (add_deps_for_risky_insns): Use control_flow_insn_p instead of JUMP_P.
2449         Call add_or_update_back_dep instead of add_dependence.
2450         Create control speculative dependencies.
2451         (schedule_insns): Initialize current_sched_info before the sched_init
2452         call.
2453
2454 2006-03-16  Kaz Kojima  <kkojima@gcc.gnu.org>
2455
2456         * config/sh/linux-unwind.h (shmedia_fallback_frame_state): Set
2457         fs->signal_frame.
2458         (sh_fallback_frame_state): Likewise.
2459
2460 2006-03-15  Geoffrey Keating  <geoffk@apple.com>
2461
2462         * config.gcc (*-*-darwin*): Don't build crt2.o for all Darwin ports.
2463         Do switch on default_use_cxa_atexit.
2464         (powerpc*-*-darwin*): Build crt2.o on powerpc.
2465         * config/darwin-crt3.o: New.
2466         * config/darwin.h (LINK_SPEC): If -shared-libgcc, make linker default
2467         to 10.3.  Pass '-multiply_defined suppress' if crt3.o is in use.
2468         (STARTFILE_SPEC): Add crt3.o when -shared-libgcc and appropriate
2469         OS version.
2470         * config/rs6000/t-darwin: Move crt2.o building to here.
2471         * config/rs6000/darwin.h (C_COMMON_OVERRIDE_OPTIONS): Update
2472         Mac OS version for using __cxa_get_exception_ptr.  Don't test versions
2473         of __cxa_atexit.
2474
2475 2006-03-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
2476
2477         * config/vax/vax.c (nonindexed_address_p): Change logical negation
2478         from '! xxx' to '!xxx' for coding-style conformance.
2479         * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Likewise.
2480         (EXTRA_CONSTRAINT): Likewise.
2481         * config/vax/vax.md (four unnamed insns): Likewise.
2482
2483 2006-03-15  Paul Brook  <paul@codesourcery.com>
2484
2485         * config/arm/arm.c (minipool_pad): New.
2486         (add_minipool_forward_ref): Include pool alignment padding in address
2487         calculation.
2488         (push_minipool_fix): Set minipool_pad.
2489         (minipool_pad): Ditto.
2490
2491 2006-03-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
2492
2493         * config/vax/vax.c (split_quadword_operands): Use MEM_P()
2494         instead of GET_CODE() == MEM and REG_P() instead of
2495         GET_CODE() == REG.
2496         (print_operand_address): Likewise.
2497         (vax_address_cost): Likewise.
2498         (vax_rtx_costs): Likewise.
2499         (vax_notice_update_cc): Likewise.
2500         (vax_output_int_add): Likewise.
2501         (INDEX_REGISTER_P): Likewise.
2502         (BASE_REGISTER_P): Likewise.
2503         (nonindexed_address_p): Likewise.
2504         (vax_mode_dependent_address_p): Likewise.
2505         * config/vax/vax.h (EXTRA_CONSTRAINT): Likewise.
2506         (PRINT_OPERAND): Likewise.
2507         * config/vax/vax.md (ashlsi3): Likewise.
2508         (ashlsi3): Likewise.
2509         (some more unnamed insns): Likewise.
2510
2511 2006-03-15  Kazu Hirata  <kazu@codesourcery.com>
2512
2513         * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Make it an
2514         iterator-style macro.
2515         (mark_control_dependent_edges_necessary): Update the use of
2516         EXECUTE_IF_CONTROL_DEPENDENT.
2517
2518 2006-03-15  J"orn Rennecke <joern.rennecke@st.com>
2519
2520         * config/sh/predicates.md (cache_address_operand): Special.
2521         (ua_address_operand): Likewise.
2522
2523 2006-03-15  Zdenek Dvorak <dvorakz@suse.cz>
2524
2525         * haifa-sched.c (unlink_other_notes, reemit_notes): Do not handle
2526         loop notes.
2527         * sched-deps.c (sched_analyze_insn, sched_analyze): Ditto.
2528
2529 2006-03-15  Andreas Schwab  <schwab@suse.de>
2530
2531         * gensupport.c (identify_predicable_attribute): Don't free p_false
2532         when it is still in use.
2533
2534 2006-03-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
2535
2536         * config.gcc (default with_cpu setting) <sparc*-*-*>: Do not modify
2537         the default setting here.
2538
2539 2006-03-14  Steven Bosscher  <stevenb.gcc@gmail.com>
2540
2541         * tree-pass.h (pass_cfg): Remove.
2542         * alias.c (rest_of_handle_cfg, pass_cfg): Remove.
2543         * passes.c (pass_cfg): Don't run it.
2544
2545 2006-03-14  Kazu Hirata  <kazu@codesourcery.com>
2546
2547         * Makefile.in (reg-stack.o): Don't depend on gt-reg-stack.h.
2548         * reg-stack.c (stack_regs_mentioned_data): Change the type to
2549         VEC(char,heap) *.
2550         (stack_regs_mentioned): Update the uses of
2551         stack_regs_mentioned_data.  Don't access the array beyond its
2552         end.
2553         (reg_to_stack): Update the uses of stack_regs_mentioned_data.
2554         Don't include gt-reg-stack.h.
2555
2556         * config/bfin/bfin.h (UNALIGNED_WORD_ASM_OP): Remove.
2557         * system.h (UNALIGNED_WORD_ASM_OP): Poison.
2558
2559         * combine.c (UWIDE_SHIFT_LEFT_BY_BITS_PER_WORD): Remove.
2560
2561         PR middle-end/26684
2562         * reg-stack.c (stack_regs_mentioned_data): Put it undef #ifdef
2563         STACK_REGS.
2564
2565 2006-03-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2566
2567         * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Fix typo.
2568
2569 2006-03-14  Richard Guenther  <rguenther@suse.de>
2570
2571         PR tree-optimization/26672
2572         * tree-ssa-propagate.c (set_rhs): Don't walk DEFs if not in
2573         SSA form.
2574
2575 2006-03-14  Richard Guenther  <rguenther@suse.de>
2576
2577         PR tree-optimization/26667
2578         * ipa-inline.c (cgraph_check_inline_limits): Walk the correct
2579         node for the callees.  Always allow inlining if it will shrink
2580         the function size.
2581
2582 2006-03-14  Richard Guenther  <rguenther@suse.de>
2583
2584         PR middle-end/26659
2585         * builtins.c (get_pointer_alignment): Prefer alignment
2586         information from decls over that from types.
2587
2588 2006-03-14  Andrew Pinski  <pinskia@physics.uc.edu>
2589
2590         PR target/26657
2591         * config/darwin.h (LINK_COMMAND_SPEC): Handle -fopenmp.
2592
2593 2006-03-14  Joseph S. Myers  <joseph@codesourcery.com>
2594
2595         * config/rs6000/rs6000.opt (mdlmzb): New option.
2596         (msched-prolog, msched-epilog): Use Var not Mask.
2597         * doc/invoke.texi (-mdlmzb): Document.
2598         * config/rs6000/rs6000.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
2599         MASK_SCHED_PROLOG.
2600         (rs6000_override_options): Enable -mdlmzb for 405 and 440.
2601         * config/rs6000/rs6000.md: Add dlmzb support for 405 and 440.
2602
2603 2006-03-13  Uttam Pawar  <uttamp@us.ibm.com>
2604
2605         PR rtl-optimization/25739
2606         * bt-load.c (augment_live_range): Free tos pointer.
2607
2608         * gensupport.c (identify_predicable_attribute): Free
2609         p_false pointer.
2610         * gcov.c (create_file_names): Free name pointer.
2611
2612 2006-03-13  Roger Sayle  <roger@eyesopen.com>
2613
2614         PR middle-end/26557
2615         * stmt.c (emit_case_nodes): Handle the case where the index is a
2616         CONST_INT, where the comparison mode is specified by the index type.
2617
2618 2006-03-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2619
2620         * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Define when CRTSTUFFS_O
2621         is defined.
2622
2623 2006-03-13  Richard Sandiford  <richard@codesourcery.com>
2624
2625         * config/mips/mips.md (*branch_fp): Use %Z2 for the condition.
2626         (*branch_fp_inverted): Likewise.
2627
2628 2006-03-13  Jakub Jelinek  <jakub@redhat.com>
2629
2630         PR middle-end/25989
2631         * omp-low.c (expand_omp_for_generic): Mark istart0
2632         and iend0 as addressable.
2633
2634 2006-03-13  Jie Zhang  <jie.zhang@analog.com>
2635
2636         * config/bfin/uclinux.h: Define _GNU_SOURCE in CPLUSPLUS_CPP_SPEC.
2637
2638 2006-03-13  Jeff Law  <law@redhat.com>
2639
2640         * tree-vrp.c (stmt_interesting_for_vrp): Some statements with
2641         virtual operands are interesting.
2642         (vrp_visit_stmt): Corresponding changes.
2643
2644 2006-03-13  Bernd Schmidt  <bernd.schmidt@analog.com>
2645
2646         * config/bfin/lib1funcs.asm (___umodsi3): Use stack to save contents
2647         of RETS.
2648         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If
2649         TARGET_ID_SHARED_LIBRARY, define __ID_SHARED_LIB__.
2650         * config/bfin/crti.S: Use it instead of __PIC__.
2651         * config/bfin/crtn.S: Likewise.
2652
2653         * config/bfin/bfin.md (call_value_symbol, sibcall_value_symbol,
2654         call_symbol, sibcall_symbol): Disallow if TARGET_ID_SHARED_LIBRARY,
2655         not if flag_pic.
2656         Lose 'G' modifier for call operand.
2657         * config/bfin/bfin.c (print_operand) <case SYMBOL_REF>: Don't
2658         recognize 'G' modifier.
2659
2660 2006-03-13  Eric Botcazou  <ebotcazou@adacore.com>
2661
2662         PR middle-end/18859
2663         * gimplify.c (gimplify_switch_expr): Discard empty ranges.
2664         * stmt.c (expand_case): Likewise.
2665
2666 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
2667
2668         PR rtl-optimization/26254
2669         * loop-invariant.c (seq_insns_valid_p): New function.
2670         (move_invariant_reg): Only emit new code if it is valid.
2671
2672 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
2673
2674         * cfgrtl.c (last_loop_beg_note, back_edge_of_syntactic_loop_p):
2675         Removed.
2676         (force_nonfallthru_and_redirect): Do not use last_loop_beg_note.
2677         (rtl_split_edge): Do not use back_edge_of_syntactic_loop_p.
2678         (commit_one_edge_insertion): Do not look for loop notes.
2679
2680 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
2681
2682         * jump.c (follow_jumps): Do not check for loop notes.  Move check for
2683         flag_test_coverage out of loop.
2684
2685 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
2686
2687         * final.c (shorten_branches): Remove outdated comment, and turn
2688         the if branch that guards it to continue.
2689
2690 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
2691
2692         * cfgloop.c (flow_loop_dump): Do not dump loop->invalid field.
2693         * cfgloop.h (struct loop): Remove unused fields.
2694
2695 2006-03-13  Kazu Hirata  <kazu@codesourcery.com>
2696
2697         * doc/invoke.texi (-fdump-rtl-loop): Remove.
2698         (-dL, -fdump-rtl-loop2): Update the dump file names
2699
2700         * doc/invoke.texi: Update dump file names.
2701
2702 2006-03-12  Steven Bosscher  <stevenb.gcc@gmail.com>
2703
2704         * predict.c (estimate_probability): Remove.
2705         * profile.c (rest_of_handle_branch_prob, pass_branch_prob): Remove.
2706         * basic-block.h (estimate_probability): Remove prototype.
2707         * passes.c (finish_optimization_passes): Dump branch prediction or
2708         profiling heuristics to the .profile tree dump.
2709         (init_optimization_passes): Unqueue pass_branch_prob.
2710
2711         * doc/invoke.texi (-fdump-rtl-bp): Remove.
2712
2713 2006-03-11  Steven Bosscher  <stevenb.gcc@gmail.com>
2714
2715         * rtl.def (LABEL_REF): Remove the field for LABEL_NEXTREF.
2716         * rtl.h (LABEL_NEXTREF): Remove field accessor.
2717
2718 2006-03-11  Eric Botcazou  <ebotcazou@adacore.com>
2719
2720         * function.h (frame_offset_overflow): Declare.
2721         * function.c (frame_offset_overflow): New function.
2722         (assign_stack_local_1): Call it to detect that the offset overflows.
2723         * cfgexpand.c (alloc_stack_frame_space): Likewise.
2724
2725 2006-03-11  Steven Bosscher  <stevenb.gcc@gmail.com>
2726
2727         * config/sh/sh.c: Include alloc-pool.h.
2728         (label_ref_list_pool): New alloc pool.
2729         (label_ref_list_t): New type for lists of labels.
2730         (struct pool_node): Make wend a label_ref_list_t.
2731         (add_constant): Use the new type, eradicate LABEL_NEXTREF
2732         references.
2733         (dump_table): Likewise.
2734         (sh_reorg): Set up the alloc pool before using add_constant and
2735         dump_table, and destroy it when finishing.
2736
2737 2006-03-11  Richard Sandiford  <richard@codesourcery.com>
2738
2739         * config/mips/mips.c: Remove redundant comment.
2740
2741 2006-03-10  Jason Merrill  <jason@redhat.com>
2742
2743         PR c/26004
2744         * gimplify.c (gimplify_modify_expr_rhs): Don't do return slot opt if
2745         the target was declared 'register'.
2746
2747 2006-03-10  Adam Nemet  <anemet@caviumnetworks.com>
2748
2749         * genpreds.c (write_insn_constraint_len): Change definition of
2750         insn_constraint_len to return size_t to match the declaration.
2751
2752 2006-03-10  DJ Delorie  <dj@redhat.com>
2753
2754         * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Bit numbers
2755         start at zero.
2756         (m32c_expand_insv): Fix test for an AND mask.
2757
2758 2006-03-10  Richard Guenther  <rguenther@suse.de>
2759
2760         PR middle-end/26565
2761         * builtins.c (get_pointer_alignment): Handle component
2762         references for field alignment.
2763
2764 2006-03-10  J"orn Rennecke <joern.rennecke@st.com>
2765
2766         * config.gcc (sh*-superh-elf, sh*elf (newlib)): Use newlib.h
2767         when building with libgloss.
2768         (sh*elf): Implement --without-fp option.
2769         (sh64-superh-linux*): Don't multilib.
2770
2771 2006-03-10  J"orn Rennecke <joern.rennecke@st.com>
2772
2773         * struct-equiv.c (rtx_equiv_p): Fix POST_MODIFY case.
2774
2775 2006-03-09  Andrew Pinski  <pinskia@physics.uc.edu>
2776
2777         * tree-ssa-phiopt.c (tree_ssa_phiopt): Add cfgchanged variable.
2778         Set it when one of the replacement functions returned true.
2779         Return TODO_cleanup_cfg if cfgchanged is true.
2780         (pass_phiopt) <todo_flags_finish>: Remove TODO_cleanup_cfg.
2781
2782 2006-03-09  Adam Nemet  <anemet@caviumnetworks.com>
2783
2784         * combine.c (simplify_shift_const_1): Use gen_lowpart_or_truncate
2785         instead of gen_lowpart.
2786
2787 2006-03-09  Richard Sandiford  <richard@codesourcery.com>
2788
2789         * config/mips/mips-protos.h (mips_output_conditional_branch): Change
2790         interface.
2791         (mips_output_order_conditional_branch): Declare.
2792         * config/mips/mips.h (MIPS_BRANCH): New macro.
2793         * config/mips/mips.c (gen_conditional_branch): Use VOIDmode
2794         for the comparison.  Use gen_condjump.
2795         (mips_output_conditional_branch): Rework interface to take the
2796         asm templates for a direct branch and the inverse of a direct branch.
2797         (mips_output_order_conditional_branch): New function.
2798         (mips_builtin_branch_and_move): New function.
2799         (mips_expand_builtin_compare): Use it.  Use VOIDmode for the
2800         branch condition.  Use gen_single_cc as the condition for
2801         __builtin_mips_upper_* or __builtin_mips_lower_*.
2802         (mips_expand_builtin_bposge): Use mips_builtin_branch_and_move.
2803         Use VOIDmode for the branch condition.
2804         * config/mips/predicates.md (order_operator): New predicate.
2805         * config/mips/mips.md (UNSPEC_SINGLE_CC): New constant.
2806         (branch_fp): Rename to...
2807         (*branch_fp): ...this.  Remove mode from comparison operator.
2808         Use new mips_output_conditional_branch interface.
2809         (branch_fp_inverted): Rename to...
2810         (*branch_fp_inverted): ...this and update as for *branch_fp.
2811         (*branch_zero<mode>): Rename to...
2812         (*branch_order<mode>): ...this.  Remove mode from comparison operator.
2813         Use mips_output_order_conditional_branch.  Only accept ordered
2814         comparisons.
2815         (*branch_zero<mode>_inverted): Rename to...
2816         (*branch_order<mode>_inverted): ...this and update as for
2817         *branch_order<mode>.
2818         (*branch_equality<mode>): Accept zero as the second operand to
2819         the equality operator.  Use the new mips_output_conditional_branch
2820         interface.
2821         (*branch_equality<mode>_inverted): Likewise.
2822         (condjump): New expander.
2823         * config/mips/mips-dsp.md (mips_bposge): Remove mode from comparison
2824         operator.
2825         * config/mips/mips-ps-3d.md (bc1any4t, bc1any4f): Likewise.
2826         (bc1any2t, bc1any2f): Likewise.
2827         (single_cc): New expander.
2828         (*branch_upper_lower, *branch_upper_lower_inverted): New patterns.
2829
2830 2006-03-09  Richard Sandiford  <richard@codesourcery.com>
2831
2832         * doc/md.texi: Update documentation of MIPS constraints.
2833         * config/mips/constraints.md: New file.
2834         * config/mips/mips.md: Include it.
2835         * config/mips/mips.c (mips_char_to_class): Delete.
2836         (override_options): Don't initialize mips_char_to_class.
2837         * config/mips/mips.h (mips_char_to_class): Delete.
2838         (REG_CLASS_FROM_LETTER): Delete.
2839         (CONST_OK_FOR_LETTER_P): Delete.
2840         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
2841         (EXTRA_CONSTRAINT_Y): Delete.
2842         (EXTRA_CONSTRAINT_STR): Delete.
2843         (CONSTRAINT_LEN): Delete.
2844         (EXTRA_MEMORY_CONSTRAINT): Delete.
2845
2846 2006-03-09  Diego Novillo  <dnovillo@redhat.com>
2847
2848         * tree-cfg.c (move_block_to_fn): Remove the statements from the
2849         original fn's eh regions.
2850
2851 2006-03-09  Eric Botcazou  <ebotcazou@adacore.com>
2852
2853         * fold-const.c (build_range_check): Make sure to use a valid type to
2854         apply the "(c>=low) && (c<=high) into (c-low>=0) && (c-low<=high-low)"
2855         transformation.
2856
2857         (range_predecessor): New static function.
2858         (range_successor): Likewise.
2859         (merge_ranges): Use them to compute predecessors and successors of
2860         range bounds.
2861
2862 2006-03-09  Roger Sayle  <roger@eyesopen.com>
2863
2864         PR middle-end/26561
2865         * fold-const.c (fold_div_compare): When optimizing X/C1 op C2 as
2866         X op C3, consider whether C3 overflows towards +Inf or -Inf.
2867
2868 2006-03-08  DJ Delorie  <dj@redhat.com>
2869
2870         * config/m32c/addsub.md (addqi3): Disparage a0/a1.
2871         (addpsi3): Expand to include memory operands.  Remove
2872         reload-specific splits.
2873         * config/m32c/bitops.md (bset_qi, bset_hi, bclr_qi): New.
2874         (andqi3_16, andhi3_16, iorqi3_16, iorhi3_16): New.
2875         (andqi3_24, andhi3_24, iorqi3_24, iorhi3_24): New.
2876         (andqi3, andhi3, iorqi3, iorhi3): Convert to expanders.
2877         (shift1_qi, shift1_hi, insv): New.
2878         * config/m32c/cond.md (cbranchqi4, cbranchhi4): Remove.
2879         (cbranch<mode>4, stzx_16, stzx_24_<mode>, stzx_reversed,
2880         cmp<mode>, b<code>, s<code>, s<code>_24, movqicc, movhicc,
2881         cond_to_int): New.
2882         * config/m32c/m32c-protos.h: Update as needed.
2883         * config/m32c/m32c.c (m32c_reg_class_from_constraint): Don't
2884         default the Rcr, Rcl, Raw, and Ral constraints.  Add Ra0 and Ra1.
2885         Fail for unrecognized R* constraints.
2886         (m32c_cannot_change_mode_class): Be more picky about pseudos.
2887         (m32c_const_ok_for_constraint_p): Add Imb, Imw, and I00.
2888         (m32c_extra_constraint_p2): Allow (mem (plus (plus fb int) int)).
2889         Add Sp constraint.
2890         (m32c_init_libfuncs): New.
2891         (m32c_legitimate_address_p): Add debug wrapper.
2892         (m32c_rtx_costs): New.
2893         (m32c_address_cost): New.
2894         (conversions): Add 'B' prefix.
2895         (m32c_print_operand): 'h' and 'H' pick lower and upper halves of
2896         operands, or word regnames for QI operands.  'B' prints bit
2897         position.
2898         (m32c_expand_setmemhi): New.
2899         (m32c_expand_movmemhi): New.
2900         (m32c_expand_movstr): New.
2901         (m32c_expand_cmpstr): New.
2902         (m32c_prepare_shift): Shift counts are limited to 16 bits at a time.
2903         (m32c_expand_neg_mulpsi3): Handle non-ints.
2904         (m32c_cmp_flg_0): New.
2905         (m32c_expand_movcc): New.
2906         (m32c_expand_insv): New.
2907         (m32c_scc_pattern): New.
2908         * config/m32c/m32c.h (reg classes): Add AO_REGS and A1_REGS.  Take
2909         a0/a1 out of SIregs.
2910         (STORE_FLAG_VALUE): New.
2911         * config/m32c/m32c.md: Add unspecs for string moves.  Define various mode and
2912         code macros.
2913         (no_insn): New.
2914         * config/m32c/mov.md: Make constraints more liberal.
2915         (zero_extendqihi2): Optimize r0/r1 case.
2916         * config/m32c/muldiv.md (mulpsi3): Check for intvals.
2917         * config/m32c/predicates.md (m32c_any_operand): New.
2918         (m32c_nonimmediate_operand): New.
2919         (m32c_hl_operand): New.
2920         (m32c_r3_operand): New.
2921         (ap_operand): New.
2922         (ma_operand): New.
2923         (memsym_operand): New.
2924         (memimmed_operand): New.
2925         (a_qi_operand): New.
2926         (m32c_eqne_operator): New.
2927         (m32c_1bit8_operand): New.
2928         (m32c_1bit16_operand): New.
2929         (m32c_1mask8_operand): New.
2930         (m32c_1mask16_operand): New.
2931         * config/m32c/blkmov.md: New file.
2932         * config/m32c/t-m32c (MD_FILES): Add blkmov.
2933
2934 2006-03-08  Andreas Tobler  <a.tobler@schweiz.ch>
2935
2936         * dwarf2out.c (expand_builtin_dwarf_sp_column): Make dwarf_regnum
2937         unsigned to fix signed/unsigned comparison issue in
2938         DWARF2_FRAME_REG_OUT.
2939         (expand_builtin_init_dwarf_reg_sizes): Make i unsigned to fix signed/
2940         unsigned comparison issue in DWARF2_FRAME_REG_OUT.
2941
2942         * tree-ssa-operands.c (finalize_ssa_def_ops): Move the declaration
2943         of ptr into the ENABLE_CHECKING section.
2944
2945 2006-03-08  Jeff Law  <law@redhat.com>
2946
2947         * tree-vrp.c (infer_value_range): Only count pointer uses
2948         and dereferences if -fdelete-null-pointer-checks is enabled.
2949
2950         * tree-vrp.c (find_assert_locations): Infer value ranges for
2951         single use pointers, but do not create ASSERT_EXPRs for them.
2952         When a non-null range is inferred for a pointer, backwards
2953         propagate that range to other equivalent pointers through the
2954         use-def chain.
2955
2956 2006-03-08  Paolo Bonzini  <bonzini@gnu.org>
2957
2958         PR bootstrap/26500
2959         * Makefile.in (dvi, html, install-info): Invoke the corresponding
2960         language hook targets.
2961         * ada/Make-lang.in, cp/Make-lang.in, objc/Make-lang.in,
2962         objcp/Make-lang.in: Create stub rules for dvi, html, install-info
2963         if language hook targets were missing.
2964
2965 2006-03-07  Zdenek Dvorak <dvorakz@suse.cz>
2966
2967         * tree-ssa-opfinalize.h: Removed.
2968         * Makefile.in (tree-ssa-operands.o): Remove tree-ssa-opfinalize.h
2969         dependency.
2970         * tree-ssa-operands.c: Do not include tree-ssa-opfinalize.h.
2971         (ALLOC_OPTYPE, APPEND_OP_AFTER, MOVE_HEAD_AFTER, MOVE_HEAD_TO_FREELIST,
2972         INITIALIZE_USE, add_def_op, add_use_op, add_vuse_op, add_maydef_op,
2973         add_mustdef_op, finalize_ssa_def_ops, finalize_ssa_use_ops,
2974         finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
2975         finalize_ssa_v_must_def_ops): New.
2976
2977 2006-03-07  Kenneth Zadeck <zadeck@naturalbridge.com>
2978
2979         * df-scan.c: (df_bb_refs_record): Fix obvious typo with wrong
2980         block as parameter.
2981
2982 2006-03-07  Geoffrey Keating  <geoffk@apple.com>
2983
2984         * varasm.c (assemble_end_function): Say that 'fnname' is unused.
2985
2986         * config/i386/i386.c (ix86_delegitimize_address): Handle Darwin
2987         addresses with offsets; reorganize.
2988
2989         * dwarf2out.c (DWARF2_FRAME_REG_OUT): Move up in file.
2990         (expand_builtin_dwarf_sp_column): Call DWARF2_FRAME_REG_OUT.
2991         (expand_builtin_init_dwarf_reg_sizes): Likewise.
2992
2993 2006-03-08  David Billinghurst <David.Billinghurst@riotinto.com>
2994
2995         PR target/26588
2996         * config/i386/cygwin.h (GOMP_SELF_SPECS): Define.
2997
2998 2006-03-08  Ben Elliston  <bje@au.ibm.com>
2999
3000         * config/fp-bit.h (CMPtype): Typedef to a word mode integer.
3001
3002 2006-03-07  Aldy Hernandez  <aldyh@redhat.com>
3003
3004         PR gomp/26238
3005         * doc/passes.texi (Tree-SSA passes): Document omp lowering and
3006         expansion.
3007
3008 2006-03-07  Richard Guenther  <rguenther@suse.de>
3009
3010         PR tree-optimization/26587
3011         * tree-ssa-structalias.c (handle_ptr_arith): Handle MINUS_EXPR.
3012
3013 2006-03-07  Richard Sandiford  <richard@codesourcery.com>
3014
3015         * varasm.c (assemble_variable): Fix setting of DECL_IN_TEXT_SECTION.
3016
3017 2006-03-07  Richard Sandiford  <richard@codesourcery.com>
3018
3019         * hooks.c (hook_bool_mode_rtx_true): New function.
3020         * hooks.h (hook_bool_mode_rtx_true): Declare.
3021         * toplev.c (compile_file): Call output_shared_constant_pool.
3022         * varasm.c (shared_constant_pool): New variable.
3023         (assemble_start_function, assemble_end_function): Remove arguments
3024         from call to output_constant_pool.
3025         (create_constant_pool): New function, split out from...
3026         (init_varasm_status): ...here.
3027         (force_const_mem): Choose between the shared and per-function constant
3028         pools.  Set current_function_uses_const_pool when reusing old entries
3029         as well as when creating new ones.
3030         (mark_constant): Ignore data argument.
3031         (mark_constants): Remove pool argument.
3032         (mark_constant_pool): Likewise.  Use current_function_uses_const_pool
3033         to decide whether the function uses a constant pool.
3034         (output_constant_pool_contents): New function, split out from...
3035         (output_constant_pool): ...here.
3036         (output_shared_constant_pool): New function.
3037         (init_varasm_once): Initialize shared_constant_pool.
3038         * output.h (output_constant_pool): Delete.
3039         (output_shared_constant_pool): Declare.
3040         * config/s390/s390-protos.h (s390_output_constant_pool): Delete.
3041         * config/i386/i386.c (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Override.
3042
3043 2006-03-06  Nick Clifton  <nickc@redhat.com>
3044
3045         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove reference to
3046         flag_strength_reduce.
3047
3048 2006-03-06  Ben Elliston  <bje@au.ibm.com>
3049
3050         * config.gcc: Add t-dfprules to $tmake_file for i*86-*-linux* and
3051         x86_64-*-linux* configurations.
3052
3053         * config/dfp-bit.h (CMPtype): Typedef to a word mode integer.
3054         (LIBGCC2_WORDS_BIG_ENDIAN): Define.
3055
3056 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
3057
3058         * tree-ssa-threadupdate.c (rediscover_loops_after_threading):
3059         Remove.
3060         * basic-block.h: Remove the extern for
3061         rediscover_loops_after_threading.
3062
3063         * cfgloop.c (cancel_loop): Make it static.
3064         * cfgloop.h: Remove the prototype for cancel_loop.
3065
3066         * flow.c (recompute_reg_usage): Make it static.
3067         * rtl.h: Remove the prototype for recompute_reg_usage.
3068
3069         * function.c (use_return_register): Make it static.
3070         * function.h: Remove the prototype.
3071
3072 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
3073
3074         * recog.c (volatile_mem_p, validate_change_maybe_volatile):
3075         Remove.
3076         * recog.h: Remove the prototype for
3077         validate_change_maybe_volatile.
3078
3079 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
3080
3081         * rtlanal.c (replace_reg): Remove.
3082         * rtl.h: Remove the prototype for replace_reg.
3083
3084 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
3085
3086         * regclass.c (reg_scan_update): Remove.
3087         (reg_scan_mark_refs): Remove the last argument.
3088         * rtl.h: Remove the prototype for reg_scan_update.
3089
3090 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
3091
3092         * builtins.c, c-pragma.h, c-typeck.c, cgraph.c, cgraphunit.c,
3093         combine.c, common.opt, config/dfp-bit.c, config/i386/i386.c,
3094         config/m68k/m68k.c, config/m68k/m68k.md, config/mt/mt.c,
3095         config/mt/mt.h, config/s390/s390.md, df-core.c, df-problems.c,
3096         df-scan.c, df.h, diagnostic.c, expr.c, function.h, gimplify.c,
3097         loop-invariant.c, omp-low.c, opts.c, passes.c,
3098         rtl-factoring.c, rtlanal.c, struct-equiv.c, tree-cfgcleanup.c,
3099         tree-ssa-loop-niter.c, tree-ssa-loop-prefetch.c,
3100         tree-ssa-structalias.c, tree-ssa-threadedge.c,
3101         tree-ssa-threadupdate.c, tree-vect-patterns.c,
3102         tree-vect-transform.c, tree-vectorizer.h, tree-vrp.c,
3103         unwind-dw2.c: Fix comment typos.  Follow spelling conventions.
3104
3105 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
3106
3107         * dwarf2out.c (dwarf2out_add_library_unit_info): Remove.
3108         * dwarf2out.h: Remove the prototype for
3109         dwarf2out_add_library_unit_info.
3110
3111 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
3112
3113         * tree.c (add_var_to_bind_expr): Remove.
3114         * tree.h: Remove the prototype for add_var_to_bind_expr.
3115
3116 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
3117
3118         * regclass.c (n_non_fixed_regs): Remove.
3119         (init_reg_sets_1, globalize_reg): Remove all uses of
3120         n_non_fixed_regs.
3121         * hard-reg-set.h: Remove the extern for n_non_fixed_regs.
3122
3123 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
3124
3125         * rtlanal.c (insns_safe_to_move_p): Remove.
3126         * rtl.h: Remove the prototype for insns_safe_to_move_p.
3127
3128 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
3129
3130         * expmed.c (expand_mult_add): Remove.
3131         * expr.h: Remove the prototype for expand_mult_add.
3132
3133 2006-03-04  Jakub Jelinek  <jakub@redhat.com>
3134
3135         * unwind-dw2.h (_Unwind_FrameState): Add REG_SAVED_VAL_OFFSET
3136         and REG_SAVED_VAL_EXP constants.
3137         * unwind-dw2.c (struct _Unwind_Context): Add by_value array.
3138         (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
3139         Handle regs stored by value.
3140         (_Unwind_SetGRValue, _Unwind_GRByValue): New functions.
3141         (execute_cfa_program): Handle DW_CFA_val_offset,
3142         DW_CFA_val_offset_sf and DW_CFA_val_expression.
3143         (uw_update_context_1): Handle REG_SAVED_REG with regs stored by
3144         value specially.  Handle REG_SAVED_VAL_OFFSET and REG_SAVED_VAL_EXP.
3145         (uw_install_context_1): Handle target regs stored by value.
3146
3147 2006-03-03  Daniel Berlin  <dberlin@dberlin.org>
3148
3149         * tree-sra.c (tree_sra): Return todoflags;
3150         (generate_one_element): Set TODO_update_smt_usage if needed.
3151         (pass_sra): Remove TODO_update_smt_usage.
3152         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Add some
3153         parameter.
3154         (tree_ssa_forward_propagate_single_use_vars): Return
3155         TODO_update_smt_usage if we need to update SMT usage.
3156         (pass_forwprop): Remove TODO_update_smt_usage.
3157
3158 2006-03-03  Diego Novillo  <dnovillo@redhat.com>
3159
3160         * tree-ssa-operands.c: Tidy whitespace.  Fix spelling.
3161         (correct_use_link): Remove reference to get_stmt_operands.
3162         (update_stmt_operands): Likewise.
3163         (get_modify_expr_operands): New function factored out of
3164         parse_ssa_operands and get_expr_operands.
3165         Try to create V_MUST_DEFs for LHS by default.
3166         (get_expr_operands) <case MODIFY_EXPR>: Call
3167         get_modify_expr_operands.
3168         <case ARRAY_RANGE_REF>: Handle together with ARRAY_REF.
3169         <case BIT_FIELD_REF>: Clear opf_kill_def from FLAGS.
3170         (parse_ssa_operands) <case MODIFY_EXPR>: Call
3171         get_modify_expr_operands.
3172
3173 2006-03-03  Kazu Hirata  <kazu@codesourcery.com>
3174
3175         * tree-dfa.c (referenced_var_lookup_if_exists): Remove.
3176         * tree-flow.h: Remove the prototype for
3177         referenced_var_lookup_if_exists.
3178
3179 2006-03-03  Steve Ellcey  <sje@cup.hp.com>
3180
3181         PR rtl-optimization/26345
3182         PR target/19061
3183         * config/ia64/predicates.md (basereg_operand): Don't look in subregs.
3184
3185 2006-03-03  Roger Sayle  <roger@eyesopen.com>
3186
3187         PR tree-optimization/26524
3188         * tree-scalar-evolution.c (interpret_rhs_modify_expr): Use
3189         fold_convert to create a constant of the appropriate type.
3190
3191 2006-03-03  Richard Sandiford  <richard@codesourcery.com>
3192
3193         * doc/tm.texi: Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
3194         SYMBOL_REF_IN_BLOCK_P.
3195         * doc/rtl.texi: Likewise.  Refer to SYMBOL_FLAG_HAS_BLOCK_INFO instead
3196         of SYMBOL_FLAG_IN_BLOCK.
3197         * gengtype.c (adjust_field_rtx_def): Use SYMBOL_REF_HAS_BLOCK_INFO_P
3198         instead of SYMBOL_REF_IN_BLOCK_P.
3199         * explow.c (use_anchored_address): Likewise.
3200         * rtl.c (rtx_size): Likewise.
3201         * varasm.c (create_block_symbol): Set SYMBOL_FLAG_HAS_BLOCK_INFO
3202         instead of SYMBOL_FLAG_IN_BLOCK.
3203         (make_decl_rtl): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
3204         SYMBOL_REF_IN_BLOCK_P.
3205         (assemble_variable): Likewise.
3206         (output_constant_def_contents): Likewise.
3207         (output_constant_pool): Likewise.
3208         (default_encode_section_info): Preserve SYMBOL_FLAG_HAS_BLOCK_INFO
3209         instead of SYMBOL_FLAG_IN_BLOCK.
3210         * rtl.h (block_symbol): Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
3211         SYMBOL_REF_IN_BLOCK_P.
3212         (SYMBOL_REF_BLOCK): Likewise.
3213         (SYMBOL_REF_OFFSET): Likewise.
3214         (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
3215         SYMBOL_REF_IN_BLOCK_P.
3216         (SYMBOL_FLAG_IN_BLOCK): Replace with...
3217         (SYMBOL_FLAG_HAS_BLOCK_INFO): ...this.
3218         (SYMBOL_REF_IN_BLOCK_P): Replace with...
3219         (SYMBOL_REF_HAS_BLOCK_INFO_P): ...this.
3220
3221 2006-03-03  Jakub Jelinek  <jakub@redhat.com>
3222
3223         * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Fix pasto.
3224
3225 2006-03-02  Roger Sayle  <roger@eyesopen.com>
3226
3227         * simplify-rtx.c (simplify_unary_operation): When simplifying
3228         (neg (lt X 0)) into (ashiftrt X C) or (lshiftrt X C), make sure
3229         that we perform the right shift in the appropriate mode, and
3230         then extend or truncate the result to requested mode.
3231
3232 2006-03-03  Zdenek Dvorak <dvorakz@suse.cz>
3233
3234         * gengtype.c (main): Handle double_int type.
3235         * tree.h (struct tree_int_cst): Make type of int_cst double_int.
3236         * double-int.c: New file.
3237         * double-int.h: New file.
3238         * system.h: Include doubleint.h.
3239         * Makefile.in (SYSTEM_H): Include double-int.h.
3240         (double-int.o): Add.
3241
3242 2006-03-03  Joseph S. Myers  <joseph@codesourcery.com>
3243
3244         PR bootstrap/26478
3245         * Makefile.in (stmp-int-hdrs): Remove include/unwind.h before
3246         copying over it.
3247
3248 2006-03-02  Zdenek Dvorak <dvorakz@suse.cz>
3249
3250         * tree-vrp.c (remove_range_assertions): Do not update statements
3251         unnecessarily.
3252
3253 2006-03-02  Zdenek Dvorak <dvorakz@suse.cz>
3254
3255         * cse.c (rest_of_handle_cse): Do not pass CLEANUP_PRE_LOOP to cfg
3256         cleanup.
3257         * gcse.c (rest_of_handle_gcse): Ditto.
3258         * except.c (gate_handle_eh): Ditto.
3259         * cfgcleanup.c (rest_of_handle_jump2): Ditto.
3260         * basic-block.h (CLEANUP_PRE_LOOP): Remove.
3261
3262 2006-03-02  Eric Christopher  <echristo@apple.com>
3263
3264         * config/i386/i386.c (machopic_output_stub): Add indirection to
3265         jump.
3266
3267 2006-03-02  Zdenek Dvorak <dvorakz@suse.cz>
3268
3269         * loop.c: Removed.
3270
3271 2006-03-02  David S. Miller  <davem@sunset.davemloft.net>
3272
3273         Sun Niagara specific optimizations.
3274         * config.gcc: Recognize niagara as target.
3275         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Mention Niagara.
3276         (TARGET_CPU_niagara): Define.
3277         (CPP_CPU64_DEFAULT_SPEC): Define __sparc_v9__ for Niagara.
3278         (ASM_CPU64_DEFAULT_SPEC): Pass -Av9b for Niagara.
3279         (CPP_CPU_SPEC): Handle -mcpu=niagara.
3280         (ASM_CPU_SPEC): Likewise.
3281         (PROCESSOR_NIAGARA): New enum entry.
3282         (REGISTER_MOVE_COST): Handle Niagara.
3283         (BRANCH_COST, PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES): Likewise.
3284         * config/sparc/sparc.c (niagara_costs): New processor_costs entry.
3285         (sparc_override_options): Recognize "niagara", set appropriate
3286         default MASK_* values for it, and align functions to 32-bytes
3287         by default just like ULTRASPARC/ULTRASPARC3.
3288         (sparc_initialize_trampoline): Handle niagara like ultrasparc.
3289         (sparc64_initialize_trampoline): Likewise.
3290         (sparc_use_sched_lookahead): Use zero for niagara.
3291         (sparc_issue_rate): Use one for niagara.
3292         * config/sparc/niagara.md: New file.
3293         * config/sparc/sparc.md: Include it.
3294         * config/sparc/sol2-bi.h (CPP_CPU64_DEFAULT_SPEC,
3295         ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Set appropriately
3296         when default cpu is niagara.
3297         (CPP_CPU_SPEC): Handle -mcpu=niagara.
3298         (ASM_CPU_SPEC): Likewise.
3299         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Set appropriately
3300         when default cpu is niagara.
3301         (ASM_CPU_SPEC): Handle -mcpu=niagara.
3302         * config/sparc/linux64.h: Handle a default of TARGET_CPU_niagara
3303         just like v9/ultrasparc/ultrasparc3.
3304         * doc/invoke.texi: Add documentation for "niagara" and improve
3305         existing documentation for ultrasparc variants.
3306
3307 2006-03-02  Diego Novillo  <dnovillo@redhat.com>
3308
3309         * tree-ssa-operands.c (update_stmt_operands): Update documentation.
3310
3311 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
3312
3313         * doc/tm.texi (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Document.
3314         (ASM_OUTPUT_BSS): Describe the two ways of handling global BSS,
3315         and say that only one is needed.
3316         * doc/rtl.texi (SYMBOL_REF_BLOCK): Say that the block can be null.
3317         * target.h (have_switchable_bss_sections): New hook.
3318         * explow.c (use_anchored_address): Check that the symbol is in a block.
3319         * varasm.c (tls_comm_section, comm_section, lcomm_section)
3320         (bss_noswitch_section): New variables.
3321         (get_unnamed_section): Add SECTION_UNNAMED to the flags.
3322         (get_noswitch_section): New function.
3323         (get_block_for_section): Allow SECT to be null.
3324         (unlikely_text_section_p): Use SECTION_STYLE.
3325         (bss_initializer_p): New function.
3326         (get_variable_section): Move earlier in file.  Take a new argument,
3327         prefer_noswitch_p.  Move bss checks from assemble_variable to here.
3328         Return one of the new *_sections in such cases.
3329         (get_block_for_decl): New function, extracting some logic from
3330         use_blocks_for_decl_p.
3331         (change_symbol_section): Remove in favor of...
3332         (change_symbol_block): ...this new function.
3333         (use_blocks_for_decl_p): Remove checks now performed by
3334         get_block_for_decl.
3335         (make_decl_rtl): Use change_symbol_block and get_block_for_decl.
3336         (ASM_EMIT_LOCAL, ASM_EMIT_BSS, ASM_EMIT_COMMON): Delete in favor of...
3337         (emit_local, emit_bss, emit_common): ...these new functions.
3338         Return true if the alignment was honored.
3339         (emit_tls_common): New function.
3340         (asm_emit_uninitialised): Delete.
3341         (assemble_variable_noswitch): New function, split out from...
3342         (assemble_variable): ...here.  Don't make decisions about common
3343         variables here.  Globalize all public decls that go into non-common
3344         sections.  Check whether SYMBOL_REF_BLOCK is null.
3345         (output_constant_def_contents): Check whether SYMBOL_REF_BLOCK is null.
3346         (output_constant_pool): Likewise.
3347         (init_varasm_once): Initialize the new section variables.
3348         (have_global_bss_p): New function.
3349         (categorize_decl_for_section): Use bss_initializer_p.
3350         (switch_to_section): Use SECTION_STYLE.  Abort for SECTION_NOSWITCH.
3351         (place_block_symbol): Assert that the symbol must be in a block.
3352         * target-def.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): New macro.
3353         (TARGET_INITIALIZER): Include it.
3354         * rtl.h (SYMBOL_REF_BLOCK): Document the null alternative.
3355         * output.h (SECTION_STYLE_MASK, SECTION_COMMON): New macros.
3356         (SECTION_MACH_DEP): Bump by two.
3357         (SECTION_UNNAMED, SECTION_NOSWITCH): New macros.
3358         (unnamed_section): Mention SECTION_UNNAMED in comment.
3359         (named_section): Likewise SECTION_NAMED.
3360         (noswitch_section_callback): New type.
3361         (noswitch_section): New structure.
3362         (section): Add a noswitch_section alternative.
3363         (SECTION_STYLE): New macro.
3364         (tls_comm_section, comm_section, lcomm_section): Declare.
3365         (bss_noswitch_section, have_global_bss_p): Declare.
3366         * config/elfos.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
3367         * config/iq2000/iq2000.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
3368         Override.
3369         * config/v850/v850.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
3370         * config/stormy16/stormy16.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
3371         Override.
3372
3373 2006-03-02  Daniel Berlin <dberlin@dberlin.org>
3374
3375         * gcc/tree-vrp.c (execute_vrp): Return value.
3376         * gcc/regrename.c (rest_of_handle_regrename): Ditto.
3377         * gcc/tree-into-ssa.c (rewrite_into_ssa): Ditto.
3378         * gcc/tree-complex.c (tree_lower_complex): Ditto.
3379         (tree_lower_complex_O0): Ditto.
3380         * gcc/tracer.c (rest_of_handle_tracer): Ditto.
3381         * gcc/postreload-gcse.c (rest_of_handle_gcse2): Ditto.
3382         * gcc/postreload.c (rest_of_handle_postreload): Ditto.
3383         * gcc/tree-tailcall.c (execute_tail_recursion): Ditto.
3384         (execute_tail_calls): Ditto.
3385         * gcc/tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
3386         * gcc/tree.h (init_function_for_compilation): Ditto.
3387         * gcc/ipa-cp.c (ipcp_driver): Ditto.
3388         * gcc/tree-scalar-evolution.c (scev_const_prop): Ditto.
3389         * gcc/tree-scalar-evolution.h (scev_const_prop): Ditto.
3390         * gcc/final.c (compute_alignments): Ditto.
3391         (rest_of_handle_final): Ditto.
3392         (rest_of_handle_shorten_branches): Ditto.
3393         (rest_of_clean_state): Ditto.
3394         * gcc/omp-low.c (execute_expand_omp): Ditto.
3395         (execute_lower_omp): Ditto.
3396         * gcc/tree-ssa-dse.c (tree_ssa_dse): Ditto.
3397         * gcc/ipa-reference.c (static_execute): Ditto.
3398         * gcc/tree-ssa-uncprop.c (tree_ssa_uncprop): Ditto.
3399         * gcc/reorg.c (rest_of_handle_delay_slots): Ditto.
3400         (rest_of_handle_machine_reorg): Ditto.
3401         * gcc/cgraphunit.c (rebuild_cgraph_edges): Ditto.
3402         * gcc/flow.c (recompute_reg_usage): Ditto.
3403         (rest_of_handle_remove_death_notes): Ditto.
3404         (rest_of_handle_life): Ditto.
3405         (rest_of_handle_flow2): Ditto.
3406         * gcc/tree-ssa-copyrename.c (rename_ssa_copies): Ditto.
3407         * gcc/tree-ssa-ccp.c (do_ssa_ccp): Ditto.
3408         (do_ssa_store_ccp): Ditto.
3409         (execute_fold_all_builtins): Ditto.
3410         * gcc/mode-switching.c (rest_of_handle_mode_switching): Ditto.
3411         * gcc