OSDN Git Service

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