OSDN Git Service

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