OSDN Git Service

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