OSDN Git Service

gcc/
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2006-03-24  Carlos O'Donell  <carlos@codesourcery.com>
2
3         * doc/invoke.texi: Document -femit-class-debug-always
4         * common.opt: Add -femit-class-debug-always.
5
6 2006-03-24  Andreas Krebbel  <krebbel1@de.ibm.com>
7
8         * config/s390/s390.c (s390_decompose_address): Allow SImode for
9         index and base register.
10         (s390_expand_plug_operand, legitimate_address_p, preferred_la_operand_p,
11         print_operand_address, print_operand): Replaced REG_OK_FOR_BASE_STRICT_P
12         with REGNO_OK_FOR_BASE_P and REG_OK_FOR_INDEX_STRICT_P with
13         REGNO_OK_FOR_INDEX_P.
14         * config/s390/s390.h (REGNO_OK_FOR_INDEX_P): Replaced check with
15         ADDR_REGNO_P.
16         (REG_OK_FOR_INDEX_NONSTRICT_P, REG_OK_FOR_BASE_NONSTRICT_P,
17         REG_OK_FOR_INDEX_STRICT_P, REG_OK_FOR_BASE_STRICT_P, REG_OK_FOR_INDEX_P,
18         REG_OK_FOR_BASE_P): Definitions removed.
19
20 2006-03-24  Jakub Jelinek  <jakub@redhat.com>
21
22         PR middle-end/26611
23         * gimplify.c (gimplify_bind_expr): Only call omp_add_variable on
24         non-global variables that don't have DECL_SEEN_IN_BIND_EXPR_P bit
25         set yet or weren't marked as local yet.
26
27 2006-03-24  Bernd Schmidt  <bernd.schmidt@analog.com>
28
29         * regrename.c (scan_rtx_address): Initialize a variable to shut up
30         the compiler.
31
32 2006-03-24  Eric Botcazou  <ebotcazou@adacore.com>
33
34         * config/rs6000/rs6000-protos.h (rs6000_offsettable_memref_p): Declare.
35         (rs6000_legitimate_small_data_p): Delete.
36         * config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New predicate.
37         (rs6000_legitimate_small_data_p): Rename to legitimate_small_data_p
38         and make static.  Add forward declaration.  Update uses.
39         (rs6000_split_multireg_move): Use rs6000_offsettable_memref_p instead
40         of offsettable_memref_p.
41         * config/rs6000/rs6000.md (movdf_hardfloat32): Revert 2005-08-23 fix.
42         Use rs6000_offsettable_memref_p instead of a less accurate predicate.
43
44 2006-03-24  Jeff Law  <law@redhat.com>
45
46         * tree-ssa-dom.c (propagate_rhs_into_lhs): Temporarily work
47         around bug in immediate-use iterator.
48
49 2006-03-24  Alan Modra  <amodra@bigpond.net.au>
50
51         PR target/26607
52         * config/rs6000/darwin-ldouble.c: Don't compile when __NO_FPRS__
53         or __LITTLE_ENDIAN__.
54
55 2006-03-23  J"orn Rennecke <joern.rennecke@st.com>
56
57         * config/sh/divtab-sh4.c, config/sh/divcost-analysis: New files.
58         * config/sh/lib1funcs.asm (div_table): Add !__SH5__ variant.
59         * config/sh/t-sh (LIB1ASMFUNCS): Add _div_table.
60         * config/sh/sh.opt (mdiv=): Amend description.
61         * config/sh/sh.h (TARGET_DIVIDE_CALL_DIV1): New macro.
62         (TARGET_DIVIDE_CALL_FP, TARGET_DIVIDE_CALL_TABLE): Likewise.
63         (sh_divide_strategy_e): Add new members SH_DIV_CALL_DIV1,
64         SH_DIV_CALL_FP, SH_DIV_CALL_TABLE and SH_DIV_INTRINSIC.
65         (OVERRIDE_OPTIONS): Also process sh_div_str for TARGET_SH1.
66         Calculate sh_divsi3_libfunc using TARGET_DIVIDE_* macros.
67         * config/sh/sh.md (udivsi3_i4_int, divsi3_i4_int): New patterns.
68         (udivsi3, divsi3): Use them.  Check TARGET_DIVIDE_CALL_TABLE /
69         TARGET_DIVIDE_CALL_FP.
70
71 2006-03-23  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
72
73         * haifa-sched.c (choose_ready): Fix type of the local variable.
74         Move local variables.  Add comment.
75         (check_reg_live): Change signature.  Make callable from debugger.
76         * sched-int.h (check_reg_live): Update signature.
77         * sched-ebb.c (check_reg_live): Update parameters.
78         * sched-rgn.c (check_reg_live): Ditto.
79         (region_head_or_leaf_p): Check pointer before dereferencing.
80         * config/ia64/ia64.c (ia64_set_sched_flags): Disable data speculation
81         before reload on optimization levels below 1.
82
83 2006-03-23  Richard Henderson  <rth@redhat.com>
84
85         * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject
86         tls symbols.
87
88         PR target/26347
89         * config/alpha/predicates.md (local_symbolic_operand): Reject
90         weak symbols.
91
92 2006-03-23  Andrew Pinski  <pinskia@physics.uc.edu>
93
94         PR tree-opt/26795
95         * tree-ssa-pre.c (create_value_expr_from): Don't reject
96         expressions which have overflowed constants.
97
98 2006-03-23  Zdenek Dvorak <dvorakz@suse.cz>
99
100         * cse.c (cse_end_of_basic_block): Do not check for LOOP_END note.
101
102 2006-03-23  Zdenek Dvorak <dvorakz@suse.cz>
103
104         * cfgloopmanip.c (create_loop_notes): Removed.
105         * final.c (final_scan_insn): Do not handle loop notes.
106         * jump.c (squeeze_notes): Ditto.
107         * cfglayout.c (skip_insns_after_block,
108         duplicate_insn_chain): Ditto.
109         * cfgcleanup.c (rest_of_handle_jump2): Do not call
110         create_loop_notes.
111         * cfgloop.h (create_loop_notes): Declaration removed.
112
113 2006-03-23  Richard Sandiford  <richard@codesourcery.com>
114
115         * varasm.c (output_constant_pool): Restore fnname and fndecl
116         arguments.
117         (assemble_start_function): Adjust call accordingly.
118         (assemble_end_function): Likewise.
119
120 2006-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
121
122         PR mudflap/26790
123         * tree-mudflap.c (mudflap_finish_file): Skip erroneous objects.
124
125         PR mudflap/26789
126         * tree-mudflap.c (mf_xform_derefs_1): Return early on error_mark_node.
127
128 2006-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
129
130         PR driver/22600
131         * system.h (ICE_EXIT_CODE): New macro.
132         * diagnostic.c (diagnostic_count_diagnostic): Exit with ICE_EXIT_CODE.
133         (diagnostic_action_after_output): Likewise.
134         * gcc.c (fatal_ice): New function.
135         (execute): Use it instead of fatal.
136         (fancy_abort): Likewise.
137         * doc/invoke.texi (-pass-exit-codes): Document return code for ICEs.
138
139 2006-03-22  Jeff Law  <law@redhat.com>
140
141         * loop-unroll.c (analyze_iv_to_split_insn): Handle
142         iv_analyze_result returning false.
143
144 2006-03-22  Jie Zhang  <jie.zhang@analog.com>
145
146         * config/bfin/bfin.h (ASM_FORMAT_PRIVATE_NAME): Remove.
147
148 2006-03-22  Richard Henderson  <rth@redhat.com>
149
150         PR middle-end/26084
151         * except.c (duplicate_eh_regions_0): New.
152         (duplicate_eh_region_1): Duplicate the children of the node as
153         well as the node itself.  Link them up properly.
154         (duplicate_eh_region_2): Merge into ...
155         (duplicate_eh_regions): ... here.  Take copy_region argument, and
156         copy only a sub-tree if asked.  Simplify copying and fixup.
157         (eh_region_outer_p): New.
158         * except.h (duplicate_eh_regions): Update decl.
159         (eh_region_outer_p): Declare.
160         * omp-low.c (lower_omp_single): Fix eh region placement wrt OMP_RETURN.
161         (lower_omp_master): Likewise.
162         (lower_omp_ordered): Likewise.
163         * tree-cfg.c (struct move_stmt_d): Add new_label_map.
164         (move_stmt_r): Use it to remap labels.  Handle recursion vs
165         remap_decls_p properly.
166         (move_block_to_fn): Pass in new_label_map.  Remap RESX_EXPR.
167         (find_outermost_region_in_block): New.
168         (new_label_mapper): New.
169         (move_sese_region_to_fn): Copy eh information to the new function
170         properly.
171         * tree-inline.c (copy_cfg_body): Update for new duplicate_eh_regions
172         argument.
173         * tree-pretty-print.c (dump_generic_node): Dump RESX_EXPR region
174         number.
175
176 2006-03-22  Richard Sandiford  <richard@codesourcery.com>
177
178         * doc/md.texi (-mshared): Mention that -mshared code can be linked
179         into shared libraries.
180
181 2006-03-22  Richard Sandiford  <richard@codesourcery.com>
182
183         * doc/md.texi: Refer to i386/constraints.md instead of
184         i386/predicates.md.
185         * config/i386/constraints.md: New file, extracted from...
186         * config/i386/predicates.md: ...here.
187         * config/i386/i386.md: Include constraints.md.
188
189 2006-03-21  Jason Merrill  <jason@redhat.com>
190
191         * builtins.c (expand_builtin_fork_or_exec): Fix pasto.
192
193         PR middle-end/20297
194         * expr.c (init_block_move_fn): Force default visibility.
195         (init_block_clear_fn): Likewise.
196         * builtins.c (expand_builtin_fork_or_exec): Likewise.
197         * targhooks.c (default_external_stack_protect_fail): Likewise.
198
199 2006-03-21  Richard Sandiford  <richard@codesourcery.com>
200
201         * config/mips/predicates.md (const_call_insn_operand): Allow direct
202         calls to locally-defined functions if TARGET_ABSOLUTE_ABICALLS.
203         * config/mips/mips.md (jal_macro): Test TARGET_ABSOLUTE_ABICALLS.
204         Use TARGET_OLDABI instead of !TARGET_NEWABI.
205         (loadgp): Use mips_current_loadgp_style.
206         (loadgp_noshared): New pattern.
207         (sibcall_internal): Use MIPS_CALL.
208         (sibcall_value_internal): Likewise.
209         (sibcall_value_multiple_internal): Likewise.
210         (call_internal): Likewise.
211         (call_value_internal): Likewise.
212         (call_value_multiple_internal): Likewise.
213         (call_split): Use MIPS_CALL and add an 'S' constraint.
214         (call_value_split): Likewise.
215         (call_value_multiple_split): Likewise.
216         * config/mips/mips.opt (-mabicalls): Tweak docstring.
217         (-mshared): New option.
218         * config/mips/mips-protos.h (mips_loadgp_style): New enum.
219         (mips_current_loadgp_style): Declare.
220         * config/mips/mips.c (mips_classify_symbol): Avoid using
221         SYMBOL_GOT_LOCAL if TARGET_ABSOLUTE_ABICALLS.  Use SYMBOL_GENERAL
222         rather than SYMBOL_GOT_GLOBAL for locally-binding symbols if
223         TARGET_ABSOLUTE_ABICALLS.
224         (override_options): Adjust comments.  Improve the warning that is
225         issued when -mabicalls and -G are used together.
226         (mips_file_start): Remove comment.
227         (mips_current_loadgp_style): New function.
228         (mips_gnu_local_gp): New variable.
229         (mips_emit_loadgp): Use mips_current_loadgp_style.  Handle
230         LOADGP_ABSOLUTE.
231         (mips_output_function_prologue): Use mips_current_laodgp_style.
232         (mips_expand_prologue): Call mips_emit_loadgp before emitting
233         the cprestore instruction.
234         (mips_extra_live_on_entry): Fix reversed test.  Don't make $25
235         live for TARGET_ABSOLUTE_ABICALLS.
236         * config/mips/mips.h (TARGET_ABSOLUTE_ABICALLS): New macro.
237         (ASM_SPEC): Pass down -mshared and -mno-shared.
238         (MIPS_CALL): New macro.
239         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove __ABICALLS__
240         definition.
241         * doc/invoke.texi (-mabicalls): Update documentation.
242         (-mshared): Document.
243
244 2006-03-21  Steve Ellcey  <sje@cup.hp.com>
245
246         * config/ia64/unwind-hpux.c: New file.
247         * config/ia64/t-hpux: Add unwind-hpux.c to libgcc.
248
249 2006-03-21  Steve Ellcey  <sje@cup.hp.com>
250
251         PR libgomp/26384
252         * config/pa/pa64-hpux.h (LIB_SPEC): Fix for -mt and -pthread options.
253
254 2006-03-21  Jeff Law  <law@redhat.com>
255
256         * tree-vrp.c (extract_range_from_unary_expr): Derive ranges for
257         type conversions of a VR_VARYING source to a wider type.
258
259 2006-03-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
260
261         * config.gcc (i[34567]86-*-solaris2*): Add config/sol2-10.h to
262         tm_file on Solaris 10 and later.
263         (sparc64-*-solaris2*): Likewise.
264         (sparc-*-solaris2*): Likewise.
265         * config/sol26.h: Rename to config/sol2-6.h.
266         * config/sol2-10.h: New file.
267
268 2006-03-21  Andrew Pinski  <pinskia@physics.uc.edu>
269
270         PR tree-opt/26781
271         * tree-ssa-pre.c (create_component_ref_by_pieces):
272         Handle STRING_CST.
273
274 2006-03-21  Jakub Jelinek  <jakub@redhat.com>
275
276         PR c++/26690
277         * tree.c (get_callee_fndecl): If CALL is error_mark_node,
278         return it immediately.
279
280 2006-03-21  Michael Matz  <matz@suse.de>
281
282         * genautomata.c (<struct state>, num_out_arcs, presence_signature):
283         New members.
284         (remove_arc, add_arc): Update num_out_arcs member.
285         (set_out_arc_insns_equiv_num): Returns nothing instead of number
286         of out arcs.
287         (cache_presence): New function.
288         (compare_states_for_equiv): New function.
289         (state_is_differed): Don't take number of outargs, adjust callers.
290         Use new invariant for speeding up.
291         (init_equiv_class): Create initial classes based on sorted
292         input.
293         (partition_equiv_class): Don't track out_arcs_num.
294         (evaluate_equiv_classes): Call cache_presence on all states and
295         sort them.
296
297 2006-03-21  Bernd Schmidt  <bernd.schmidt@analog.com>
298
299         * config/bfin/bfin-protos.h (bfin_dsp_memref_p): Declare.
300         * config/bfin/bfin.c (bfin_dsp_memref_p): New function.
301         (bfin_valid_reg_p): Test for pseudos explicitly and use only
302         REGNO_MODE_CODE_OK_FOR_BASE_P.  New args MODE and OUTER_CODE; all
303         callers changed.
304         * config/bfin/bfin.h (PREG_P): Use P_REGNO_P.
305         (IREG_P, P_REGNO_P, I_REGNO_P): New macros.
306         (enum reg_class, REG_CLASS_CONTENTS): Add IPREGS.
307         (BASE_REG_CLASS, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
308         REGNO_OK_FOR_BASE_STRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): Delete
309         macros.
310         (IREG_POSSIBLE_P, MODE_CODE_BASE_REG_CLASS,
311         REGNO_MODE_CODE_OK_FOR_BASE_P): New macros.
312         (REGNO_REG_CLASS): ARGP is in PREGS.
313         * config/bfin/bfin.md (movhi_insn): Allow for addresses containing
314         IREGS.
315         (zero_extendhisi2, extendhisi2): Likewise; changed to define_and_split
316         to deal with those addresses.
317         * addresses.h: New file.
318         * caller-save.c: Include "addresses.h".
319         (init_caller_save): Use new base_reg_class function.
320         * rtl-factoring.c: Include "addresses.h".
321         (recompute_gain_for_pattern_seq): Use new function ok_for_base_p_1.
322         * recog.c: Include "addresses.h".
323         (preprocess_constraints): Use new base_reg_class function.
324         * regrename.c: Include "addresses.h".
325         (scan_rtx_address): Use new regno_ok_for_base_p and base_reg_class
326         functions.  Keep track of a new var INDEX_CODE to compute valid
327         classes.
328         (replace_oldest_value_addr): Likewise.
329         (replace_oldest_value_mem): Use base_reg_class.
330         * reload.c: Include "addresses.h".
331         (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Delete macros.
332         (find_reloads): Use new base_reg_class function.
333         (find_reloads_address): Likewise; also use regno_ok_for_base_p.
334         (find_reloads_address_1): Likewise. New args OUTER_CODE and INDEX_CODE;
335         all callers and prototype changed.
336         * reload1.c: Include "addresses.h".
337         (maybe_fix_stack_asms): Use base_reg_class.
338         * regclass.c: Include "addresses.h".
339         (ok_for_index_p_nonstrict, ok_for_base_p_nonstrict): New functions.
340         (init_reg_autoinc): Use new base_reg_class function.
341         (record_reg_classes): Likewise.
342         (record_address_regs): Delete arg CLASS; add args CONTEXT, MODE,
343         OUTER_CODE and INDEX_CODE.  All callers and prototype changed.
344         Use new args to compute necessary class.
345
346         * Makefile.in (regclass.o, reload.o, reload1.o, caller-save.o, recog.o,
347         regrename.o, rtl-factoring.o): Update dependencies.
348         * doc/tm.texi (MODE_CODE_BASE_REG_CLASS): Document.
349         (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
350         (REG_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_REG_BASE_P,
351         REG_OK_FOR_INDEX_P): Delete documentation.
352
353 2006-03-21  Alexey Starovoytov  <alexey.starovoytov@sun.com>
354
355         * config.gcc (sparc-*-solaris2*): Change the default CPU setting
356         from V7 to V9 for Solaris 7 and above.
357
358 2006-03-21  Toon Moene  <toon@moene.indiv.nluug.nl>
359
360         * doc/invoke.texi: Document new flag -fargument-noalias-anything.
361         * tree-ssa-alias.c (may_alias_p): If flag_argument_noalias > 2,
362         argument pointers may not alias any other storage.
363         * common.opt: Define option -fargument-noalias-anything.
364         * tree-ssa-structalias.c (intra_create_variable_infos): Fortran
365         alias semantics is specified by flag_argument_noalias > 2.
366
367 2006-03-20  Jeff Law  <law@redhat.com>
368
369         * tree-pass.h (pass_phi_only_copy_prop): Delete.
370         (pass_phi_only_cprop): Declare.
371         * passes.c (init_optimization_passes): Replace pass_phi_only_copy_prop
372         with phi_only_cprop
373         * tree-ssa-dom.c (degenerate_phi_result): New function.
374         (remove_stmt_or_phi, get_lhs_or_phi_result): Likewise.
375         (get_rhs_or_phi_arg, propagate_rhs_into_lhs): Likewise.
376         (eliminate_const_or_copy, eliminate_degenerate_phis_1): Likewise.
377         (eliminate_degenerate_phis): Likewise.
378         (pass_phi_only_cprop): New pass descriptor.
379         * tree-ssa-copy.c (init_copy_prop): Lose PHIS_ONLY argument and
380         support code.  Callers updated.
381         (execute_copy_prop, do_copy_prop): Likewise and corresponding changes.
382         (store_copy_prop): Likewise.
383         (do_phi_only_copy_prop, pass_phi_only_copy_prop): Remove.
384
385 2006-03-20  Jason Merrill  <jason@redhat.com>
386
387         PR c++/21764
388         * c-pragma.c (visstack): Move out of handle_pragma_visibility.
389         (push_visibility, pop_visibility): Likewise.
390         * c-pragma.h: Declare them.
391
392 2006-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
393
394         * config/sh/sh.c (untangle_mova): Initialize n_addr and n_target.
395
396         * config/sh/sh.c (find_regmode_weight): Change the type of the first
397         parameter and use get_ebb_head_tail.
398         (sh_md_init_global): Adjust uses of find_regmode_weight.
399
400 2006-03-20  Steven Bosscher  <stevenb.gcc@gmail.com>
401
402         * function.h (struct function) <x_tail_recursion_reentry>:
403         Rename to x_stack_check_probe_note.
404         (tail_recursion_reentry): Rename to stack_check_probe_note.
405         * function.c: Replace tail_recursion_reentry with
406         stack_check_probe_note everywhere.
407         (expand_function_start): Only emit a note for
408         stack_check_probe_note with -fstack-protect.
409         * stmt.c (expand_case): Don't emit NOTE_INSN_DELETED notes.
410
411         * emit-rtl.c (remove_unnecessary_notes): Remove.
412         (pass_remove_unnecessary_notes): Remove.
413         * rtl.h (remove_unnecessary_notes): Remove prototype.
414         * final.c (final_start_function): Don't call remove_unnecessary_notes.
415         * tree-pass.h (pass_remove_unnecessary_notes): Remove.
416         * passes.c (pass_remove_unnecessary_notes): Don't run it.
417
418 2006-03-20  Andrew Pinski  <pinskia@physics.uc.edu>
419
420         PR tree-opt/26629
421         * tree-ssa-pre (phi_translate): Handle ARRAY_REF's operands.
422         (valid_in_set): Handle ARRAY_REF.
423         Change "if min_variant or VH" to asserts.
424         (create_component_ref_by_pieces): Handle ARRAY_REF.
425         (create_expression_by_pieces): Likewise.
426         (can_PRE_operation): ARRAY_REFs can now be PRE'd.
427
428 2006-03-20  David Edelsohn  <edelsohn@gnu.org>
429
430         * genpreds.c (write_insn_extra_address_constraint): Argument `c'
431         is operand of switch, not str[0].
432
433 2006-03-20  Alan Modra  <amodra@bigpond.net.au>
434
435         * config/rs6000/rs6000.c (rs6000_handle_option): Use
436         TARGET_NO_FP_IN_TOC inside #ifdef TARGET_USES_SYSV4_OPT too.
437
438 2006-03-19  David Edelsohn  <edelsohn@gnu.org>
439
440         * genpreds.c (write_tm_preds_h): Add semicolon and newline at
441         end of insn_extra_address_constraint declaration.
442
443 2006-03-19  David Edelsohn  <edelsohn@gnu.org>
444
445         * config/rs6000/rs6000.opt (no-fp-in-toc): Use Var not Mask.
446         (no-sum-in-toc): Same.
447         * config/rs6000/rs6000.c (rs6000_handle_option): Use new
448         variables.
449         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set
450         NO_FP_IN_TOC for -fPIC instead of mask.
451
452         * config/rs6000/t-aix43 (T_ADAFLAGS): Delete.
453         (BOOT_LDFLAGS): Delete.
454         (LDFLAGS): Delete.
455         * config/rs6000/t-aix52: Same.
456
457         * config/rs6000/rs6000.md (store_multiple_power): Delete.
458         (stmsi[345678]_power): New.
459
460 2006-03-17  Steve Ellcey  <sje@cup.hp.com>
461
462         * config/ia64/ia64.opt: Add empty line to end of file.
463
464 2006-03-17  Richard Guenther  <rguenther@suse.de>
465
466         PR middle-end/26721
467         * builtins.c (get_pointer_alignment): For component style references
468         adjust alignment to the component type alignment.  Make sure
469         to adjust alignment for component access of constants.
470
471 2006-03-17  David Edelsohn  <edelsohn@gnu.org>
472
473         * config/rs6000/rs6000.md (strlensi): Emit barrier after
474         unconditional jump.
475
476 2006-03-17  Paul Brook  <paul@codesourcery.com>
477
478         * doc/install.texi: Docuemnt --with-mode.
479         * config.gcc: Add --with-mode for arm*-*-*.
480         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "mode".
481
482 2006-03-17  J"orn Rennecke <joern.rennecke@st.com>
483
484         * sh.c (max_labelno_before_reorg): New variable.
485         (sh_reorg): Initialize it.
486         (find_barrier): Check max_labelno_before_reorg before using
487         label_to_alignment.  Take length of explicit alignment insns
488         into account.  When seeing a UNSPECV_CONST_END, return it.
489
490         * sh.c (fixup_mova): Set mode of affected label to QImode.
491         (untangle_mova): New function.
492         (find_barrier): Use it.  Check mode of label before decrementing
493         num_mova.
494         (sh_reorg): Likewise.
495         Set mode of all insns back to VOIDmode.
496
497         * sh.c (MOVA_LABELREF): New macro.
498         (mova_p, fixup_mova, sh_reorg): Use it.
499         (find_barrier, sh_reorg): Don't count num_mova back to 0 unless
500         ADDR_DIFF_VEC matches mova.
501
502 2006-03-17  Steven Bosscher  <stevenb.gcc@gmail.com>
503
504         * dwarf2asm.c (dw2_asm_output_offset): Mark 'base' argument
505         with ATTRIBUTE_UNUSED.
506
507 2006-03-17  Alexandre Oliva  <aoliva@redhat.com>
508
509         * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
510         pointer, instead of assuming it is possible to derive the
511         correct args size from a call insn.
512
513 2006-03-16  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
514
515         * rtl.h (CONST_INT_P): Define.
516         * config/vax/vax.c (print_operand_address): Use CONST_INT_P()
517         instead of GET_CODE(x) == CONST_INT.
518         (vax_rtx_costs): Likewise.
519         (vax_output_int_move): Likewise.
520         (vax_output_int_add): Likewise.
521         (legitimate_constant_address_p): Likewise.
522         (index_term_p): Likewise.
523         * config/vax/vax.h (PRINT_OPERAND): Likewise.
524         * config/vax/vax.md (and<mode>3): Likewise.
525         (ashrsi3): Likewise.
526         (extv): Likewise.
527         (movstricthi): Likewise.
528         (movstrictqi): Likewise.
529         (rotrsi3): Likewise.
530         (five unnamed insns): Likewise.
531
532 2006-03-16  Geoffrey Keating  <geoffk@apple.com>
533
534         * doc/tm.texi (SDB and DWARF): Add extra parameter to
535         ASM_OUTPUT_DWARF_OFFSET.  Use @var to indicate metavariables.
536         * dwarf2asm.h (dw2_asm_output_offset): Add section parameter.
537         * dwarf2asm.c (dw2_asm_output_offset): Add base section parameter.
538         Pass to ASM_OUTPUT_DWARF_OFFSET.
539         * dwarf2out.c (debug_frame_section): New.
540         (output_call_frame_info): Use debug_frame_section.  Pass it to
541         dw2_asm_output_offset.
542         (output_die): Pass appropriate section to dw2_asm_output_offset.
543         (output_compilation_unit_header): Likewise.
544         (output_pubnames): Likewise.
545         (output_aranges): Likewise.
546         (enum dw_val_class): Break dw_val_class_lbl_offset into
547         dw_val_class_lineptr and dw_val_class_macptr.
548         (add_AT_lbl_offset): Delete.
549         (add_AT_lineptr): New.
550         (add_AT_macptr): New.
551         (AT_lbl): Expect a lineptr or macptr.
552         (print_die): Handle dw_val_class_lineptr and dw_val_class_macptr.
553         (attr_checksum): Likewise.
554         (same_dw_val_p): Likewise.
555         (size_of_die): Likewise.
556         (value_format): Likewise.
557         (output_die): Likewise.
558         (dwarf2out_finish): Call add_AT_lineptr and add_AT_macptr instead of
559         add_AT_lbl_offset.
560         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
561         * config/i386/i386.c (x86_file_start): Call darwin_file_start.
562         * config/darwin-protos.h (darwin_file_start): New.
563         (darwin_asm_output_dwarf_offset): New.
564         * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
565         * config/rs6000/rs6000.c (rs6000_darwin_file_start): Call
566         darwin_file_start.
567         * config/darwin.c (darwin_emit_unwind_label): Don't output label
568         if not EH section; simplify.
569         (darwin_file_start): New.
570         (darwin_asm_output_dwarf_offset): New.
571         * config/darwin.h (DEBUG_FRAME_SECTION): In __DWARF segment,
572         mark as 'debug'.
573         (DEBUG_INFO_SECTION): Likewise.
574         (DEBUG_ABBREV_SECTION): Likewise.
575         (DEBUG_ARANGES_SECTION): Likewise.
576         (DEBUG_MACINFO_SECTION): Likewise.
577         (DEBUG_LINE_SECTION): Likewise.
578         (DEBUG_LOC_SECTION): Likewise.
579         (DEBUG_PUBNAMES_SECTION): Likewise.
580         (DEBUG_STR_SECTION): Likewise.
581         (DEBUG_RANGES_SECTION): Likewise.
582         (FRAME_BEGIN_LABEL): Must start with 'L' in debug section.
583         (ASM_OUTPUT_DWARF_OFFSET): New.
584
585 2006-03-16  Joseph S. Myers  <joseph@codesourcery.com>
586
587         * config.gcc (tm_defines): Always add to previous value rather
588         than replacing it.
589
590 2006-03-16  Richard Sandiford  <richard@codesourcery.com>
591
592         * config/mips/predicates.md (splittable_const_int_operand): New,
593         split from move_operand.
594         (splittable_symbolic_operand): New.
595         (move_operand): Add commentary.  Use splittable_const_int_operand.
596         Inline mips_atomic_symbolic_constant_p.
597         * config/mips/mips.md: Add combine splitters for handling moves
598         of splittable_const_int_operands and splittable_symbolic_operands.
599         * config/mips/mips-protos.h (mips_atomic_symbolic_constant_p): Delete.
600         (mips_split_symbol): Declare.
601         (mips_move_integer): Declare.
602         * config/mips/mips.c (mips_split_p): Make global.
603         (TARGET_MIN_ANCHOR_OFFSET): Override default.
604         (TARGET_MAX_ANCHOR_OFFSET): Likewise.
605         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
606         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Likewise.
607         (mips_offset_within_object_p): Handle block symbols.
608         (mips_atomic_symbolic_constant_p): Delete.
609         (mips_cannot_force_const_mem): Return false for constants that
610         mips_legitimize_move can handle.
611         (mips_use_blocks_for_constant_p): New function.
612         (mips_split_symbol): Make global.
613         (mips_move_integer): Likewise.  Add a temporary register argument.
614         (mips_legitimize_const_move): Use splittable_const_int_operand and
615         splittable_symbolic_operand.
616         (mips_use_anchors_for_symbol_p): New function.
617         * config/mips/mips.h: Protect externs with !USED_FOR_TARGET.
618         (mips_split_p): Declare.  
619
620 2006-03-16  Richard Sandiford  <richard@codesourcery.com>
621
622         * config.gcc (mips64*-*-linux*): Keep existing tm_defines.
623         (mips*-*-linux*): Likewise.
624
625 2006-03-16  Roger Sayle  <roger@eyesopen.com>
626             Daniel Speyer  <dspeyer@wam.umd.edu>
627
628         PR middle-end/18259
629         * tree-dump.c (dump_real): New function.
630         (dequeue_and_dump) <REAL_CST>: Use it to dump FP constants.
631         * Makefile.in (REAL_H): New macro for dependencies on real.h.
632         (tree-dump.o): Add $(REAL_H) to the dependencies.
633
634 2006-03-16  Roger Sayle  <roger@eyesopen.com>
635
636         PR middle-end/21781
637         * real.c (real_from_string): If the mantissa is zero, don't bother
638         parsing the exponent as the result should always be zero.
639
640 2006-03-16  Andreas Krebbel  <krebbel1@de.ibm.com>
641
642         * simplify-rtx.c (simplify_plus_minus): Simplify within CONST terms.
643
644 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
645
646         * config/ia64/ia64.c (stops_p): Added explicit initialization.
647         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
648         ia64_h_i_d_extended, ia64_set_sched_flags, ia64_speculate_insn,
649         ia64_needs_block_p, ia64_gen_check, ia64_sched_init_global,
650         ia64_sched_finish_global): New static functions to implement
651         hooks from gcc_target.sched.
652         (spec_check_no, max_uid, pending_data_specs): New static variables.
653         (ia64_mode_to_int, ia64_gen_spec_insn, ia64_spec_check_p,
654         ia64_spec_check_src_p): New static functions.
655         (ia64_adjust_cost): Renamed to ia64_adjust_cost_2.
656         (TARGET_SCHED_ADJUST_COST): Removed.
657         (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_INIT_GLOBAL,
658         TARGET_SCHED_FINISH_GLOBAL, TARGET_SCHED_H_I_D_EXTENDED,
659         TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
660         TARGET_SCHED_GEN_CHECK,
661         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
662         TARGET_SCHED_SET_SCHED_FLAGS): New macros.
663         (update_set_flags, group_barrier_needed, set_src_needs_barrier):
664         Fixed to handle speculation checks.
665         (rtx_needs_barrier): Fixed to handle speculative loads and
666         their checks.
667         (ia64_variable_issue): Added code to count speculative loads and their
668         checks.
669         (ia64_first_cycle_multipass_dfa_lookahead_guard): Fixed to handle
670         speculative loads.
671         (enum SPEC_MODES, enum SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET):
672         New enumerations.
673         (SPEC_GEN_EXTEND_OFFSET, SPEC_N, SPEC_GEN_CHECK_MUTATION_OFFSET):
674         New constants.
675         (ia64_ld_address_bypass_p): Fixed to handle speculative loads.
676         (ia64_reorg): Reset stops_p to NULL after it is freed.
677         * config/ia64/ia64.md (UNSPEC_LDA, UNSPEC_LDS, UNSPEC_LDSA,
678         UNSPEC_LDCCLR, UNSPEC_CHKACLR, UNSPEC_CHKS): New constants.
679         (itanium_class): chk_s renamed to chk_s_i.  New constants: chk_s_f,
680         chk_a.
681         (data_speculative, control_speculative, check_load): New attributes.
682         (mov<mode>_advanced, mov<mode>_speculative,
683         mov<mode>_speculative_advanced, zero_extend<mode>di2_advanced,
684         zero_extend<mode>di2_speculative,
685         zero_extend<mode>di2_speculative_advanced): New patterns for
686         data and control speculative loads.
687         (mov<mode>_clr, zero_extend<mode>di2_clr): New patterns for
688         check loads.
689         (advanced_load_check_clr_<mode>, speculation_check_<mode>):
690         New pattern for data and control speculation checks.
691         (MODE, MODE_FOR_EXTEND, output_a, output_s, output_sa, output_c_clr,
692         ld_reg_constr, ldc_reg_constr, chk_reg_constr, mem_constr,
693         reg_pred_prefix, ld_class, chka_class, chks_class, attr_yes):
694         Auxiliary definitions for the patterns.
695         * config/ia64/itanium1.md (1_fldc, 1_fldpc, 1_ldc, 1_chk_s_f, 1_chk_a,
696         1b_fldc, 1b_fldpc, 1b_ldc, 1b_chk_s_f, 1b_chk_a): New resource
697         constraints.
698         (1_fld, 1_fldp, 1_ld, 1b_fld, 1b_fldp, 1b_ld): Add a condition
699         for speculation.
700         (1_chk_s, 1b_chk_s): Renamed to 1_chk_s_i, 1b_chk_s_i.
701         * config/ia64/itanium2.md (2_flda, 2_fldc, 2_fldpc, 2_ldc, 2_chk_s_f,
702         2_chk_a, 2b_flda, 2b_fldc, 2b_fldpc, 2b_ldc, 2b_chk_s_f, 2b_chk_a):
703         New resource constraints.
704         (2_fld, 2_fldp, 2_ld, 2b_fld, 2b_fldp, 2b_ld): Add a condition
705         for speculation.
706         (2_chk_s, 2b_chk_s): Renamed to 2_chk_s_i, 2b_chk_s_i.
707         * config/ia64/ia64.opt (msched-br-data-spec, msched-ar-data-spec,
708         msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
709         msched-in-control-spec, msched-ldc, msched-control-ldc,
710         msched-spec-verbose, msched-prefer-non-data-spec-insns,
711         msched-prefer-non-control-spec-insns,
712         msched-count-spec-in-critical-path): New flags to tune speculative
713         scheduling.
714         * doc/invoke.texi (msched-br-data-spec, msched-ar-data-spec,
715         msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
716         msched-in-control-spec, msched-ldc, msched-control-ldc,
717         msched-spec-verbose, msched-prefer-non-data-spec-insns,
718         msched-prefer-non-control-spec-insns,
719         msched-count-spec-in-critical-path): Document new flags.
720
721 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
722
723         * target.h (struct spec_info_def): New opaque declaration.
724         (struct gcc_target.sched): New fields: adjust_cost_2, h_i_d_extended,
725         speculate_insn, needs_block_p, gen_check,
726         first_cycle_multipass_dfa_lookahead_guard_spec, set_sched_flags.
727         * target-def.h (TARGET_SCHED_ADJUST_COST_2,
728         TARGET_SCHED_H_I_D_EXTENDED, TARGET_SCHED_SPECULATE_INSN,
729         TARGET_SCHED_NEEDS_BLOCK_P, TARGET_SCHED_GEN_CHECK,
730         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
731         TARGET_SCHED_SET_SCHED_FLAGS): New macros to initialize fields in
732         gcc_target.sched.
733         (TARGET_SCHED): Use new macros.
734         * rtl.h (copy_DEPS_LIST_list): New prototype.
735         * sched-int.h (struct sched_info): Change signature of new_ready field,
736         adjust all initializations. New fields: add_remove_insn,
737         begin_schedule_ready, add_block, advance_target_bb, fix_recovery_cfg,
738         region_head_or_leaf_p.
739         (struct spec_info_def): New structure declaration.
740         (spec_info_t): New typedef.
741         (struct haifa_insn_data): New fields: todo_spec, done_spec, check_spec,
742         recovery_block, orig_pat.
743         (glat_start, glat_end): New variables declaraions.
744         (TODO_SPEC, DONE_SPEC, CHECK_SPEC, RECOVERY_BLOCK, ORIG_PAT):
745         New access macros.
746         (enum SCHED_FLAGS): New constants: SCHED_RGN, SCHED_EBB,
747         DETACH_LIFE_INFO, USE_GLAT.
748         (enum SPEC_SCHED_FLAGS): New enumeration.
749         (NOTE_NOTE_BB_P): New macro.
750         (extend_dependency_caches, xrecalloc, unlink_bb_notes, add_block,
751         attach_life_info, debug_spec_status, check_reg_live): New functions.
752         (get_block_head_tail): Change signature to get_ebb_head_tail, adjust
753         all uses in ddg.c, modulo-sched.c, haifa-sched.c, sched-rgn.c,
754         sched-ebb.c
755         (get_dep_weak, ds_merge): Prototype functions from sched-deps.c .
756         * ddg.c (get_block_head_tail): Adjust all uses.
757         * modulo-sched.c (get_block_head_tail): Adjust all uses.
758         (sms_sched_info): Initialize new fields.
759         (contributes_to_priority): Removed.
760         * haifa-sched.c (params.h): New include.
761         (get_block_head_tail): Adjust all uses.
762         (ISSUE_POINTS): New macro.
763         (glat_start, glat_end): New global variables.
764         (spec_info_var, spec_info, added_recovery_block_p, nr_begin_data,
765         nr_be_in_data, nr_begin_control, nr_be_in_control, bb_header,
766         old_last_basic_block, before_recovery, current_sched_info_var,
767         rgn_n_insns, luid): New static variables.
768         (insn_cost1): New function.  Move logic from insn_cost to here.
769         (find_insn_reg_weight1): New function.  Move logic from
770         find_insn_reg_weight to here.
771         (reemit_notes, move_insn, max_issue): Change signature.
772         (move_insn1): Removed.
773         (extend_h_i_d, extend_ready, extend_global, extend_all, init_h_i_d,
774         extend_bb): New static functions to support extension of scheduler's
775         data structures.
776         (generate_recovery_code, process_insn_depend_be_in_spec,
777         begin_speculative_block, add_to_speculative_block,
778         init_before_recovery, create_recovery_block, create_check_block_twin,
779         fix_recovery_deps): New static functions to support
780         generation of recovery code.
781         (fix_jump_move, find_fallthru_edge, dump_new_block_header,
782         restore_bb_notes, move_block_after_check, move_succs): New static
783         functions to support ebb scheduling.
784         (init_glat, init_glat1, attach_life_info1, free_glat): New static
785         functions to support handling of register live information.
786         (associate_line_notes_with_blocks, change_pattern, speculate_insn,
787         sched_remove_insn, clear_priorities, calc_priorities, bb_note,
788         add_jump_dependencies): New static functions.
789         (check_cfg, has_edge_p, check_sched_flags): New static functions for
790         consistancy checking.
791         (debug_spec_status): New function to call from debugger.
792         (priority): Added code to handle speculation checks.
793         (rank_for_schedule): Added code to distinguish speculative instructions.
794         (schedule_insn): Added code to handle speculation checks.
795         (unlink_other_notes, rm_line_notes, restore_line_notes, rm_other_notes):
796         Fixed to handle ebbs.
797         (move_insn): Added code to handle ebb scheduling.
798         (max_issue): Added code to use ISSUE_POINTS of instructions.
799         (choose_ready): Added code to choose between speculative and
800         non-speculative instructions.
801         (schedule_block): Added code to handle ebb scheduling and scheduling of
802         speculative instructions.
803         (sched_init): Initialize new variables.
804         (sched_finish): Free new variables.  Print statistics.
805         (try_ready): Added code to handle speculative instructions.
806         * lists.c (copy_DEPS_LIST_list): New function.
807         * sched-deps.c (extend_dependency_caches): New function.  Move logic
808         from create_dependency_caches to here.
809         (get_dep_weak, ds_merge): Make global.
810         * genattr.c (main): Code to output prototype for
811         dfa_clear_single_insn_cache.
812         * genautomata.c (DFA_CLEAR_SINGLE_INSN_CACHE_FUNC_NAME): New macros.
813         (output_dfa_clean_insn_cache_func): Code to output
814         dfa_clear_single_insn_cache function.
815         * sched-ebb.c (target_n_insns): Remove.  Adjust all users to use
816         n_insns.
817         (can_schedule_ready_p, fix_basic_block_boundaries, add_missing_bbs):
818         Removed.
819         (n_insns, dont_calc_deps, ebb_head, ebb_tail, last_bb):
820         New static variables.
821         (begin_schedule_ready, add_remove_insn, add_block1, advance_target_bb,
822         fix_recovery_cfg, ebb_head_or_leaf_p): Implement hooks from
823         struct sched_info.
824         (ebb_sched_info): Initialize new fields.
825         (get_block_head_tail): Adjust all uses.
826         (compute_jump_reg_dependencies): Fixed to use glat_start.
827         (schedule_ebb): Code to remove unreachable last block.
828         (schedule_ebbs): Added code to update register live information.
829         * sched-rgn.c (region_sched_info): Initialize new fields.
830         (get_block_head_tail): Adjust all uses.
831         (last_was_jump): Removed.  Adjust users.
832         (begin_schedule_ready, add_remove_insn, insn_points, extend_regions,
833         add_block1, fix_recovery_cfg, advance_target_bb, region_head_or_leaf_p):
834         Implement new hooks.
835         (check_dead_notes1): New static function.
836         (struct region): New fields: dont_calc_deps, has_real_ebb.
837         (RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB): New access macros.
838         (BB_TO_BLOCK): Fixed to handle EBBs.
839         (EBB_FIRST_BB, EBB_LAST_BB): New macros.
840         (ebb_head): New static variable.
841         (debug_regions, contributes_to_priority): Fixed to handle EBBs.
842         (find_single_block_regions, find_rgns, find_more_rgns): Initialize
843         new fields.
844         (compute_dom_prob_ps): New assertion.
845         (check_live_1, update_live_1): Fixed to work with glat_start instead of
846         global_live_at_start.
847         (init_ready_list): New assertions.
848         (can_schedule_ready_p): Split update code to begin_schedule_ready.
849         (new_ready): Add support for BEGIN_CONTROL speculation.
850         (schedule_insns): Fixed code that updates register live information
851         to handle EBBs.
852         (schedule_region): Fixed to handle EBBs.
853         (init_regions): Use extend_regions and check_dead_notes1.
854         * params.def (PARAM_MAX_SCHED_INSN_CONFLICT_DELAY,
855         PARAM_SCHED_SPEC_PROB_CUTOFF): New parameters.
856         * doc/tm.texi (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_H_I_D_EXTENDED,
857         TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
858         TARGET_SCHED_GEN_CHECK,
859         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
860         TARGET_SCHED_SET_SCHED_FLAGS): Document.
861         * doc/invoke.texi (max-sched-insn-conflict-delay,
862         sched-spec-prob-cutoff): Document.
863
864 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
865
866         * sched-int.h (struct haifa_insn_data): New fields: resolved_deps,
867         inter_tick, queue_index.
868         (struct sched_info): Change signature of init_ready_list field.
869         Adjust all initializations.
870         (RESOLVED_DEPS): New access macro.
871         (ready_add): Remove prototype.
872         (try_ready): Add prototype.
873         * sched-rgn.c (init_ready_list): Use try_ready.
874         (schedule_region): Initialize
875         current_sched_info->{sched_max_insns_priority, queue_must_finish_empty}.
876         * sched-ebb.c (new_ready): Remove.  Adjust ebb_sched_info.
877         (init_ready_list): Use try_ready.
878         (schedule_ebb): Initialize current_sched_info->sched_max_insns_priority.
879         * lists.c (remove_list_elem): Remove `static'.
880         (remove_free_INSN_LIST_elem): New function.
881         * rtl.h (remove_list_elem, remove_free_INSN_LIST_elem): Add prototypes.
882         * haifa-sched.c (INTER_TICK, QUEUE_INDEX): New macros.
883         (INVALID_TICK, MIN_TICK, QUEUE_SCHEDULED, QUEUE_NOWHERE, QUEUE_READY):
884         New constants.
885         (readyp): New variable.
886         (queue_remove, ready_remove_insn, fix_inter_tick, fix_tick_ready,
887         change_queue_index, resolve_dep): New static functions.
888         (try_ready): New function.  Adjust callers in sched-rgn.c and
889         sched-ebb.c to use it instead of ready_add.
890         (clock_var): Move at the begining of file.
891         (rank_for_schedule): Fix typo.
892         (queue_insn): Add assertion.  Handle QUEUE_INDEX.
893         (ready_lastpos): Enforce assertion.
894         (ready_add): Make it static.  Handle QUEUE_INDEX.  Add new argument,
895         update all callers.
896         (ready_remove_first, ready_remove): Handle QUEUE_INDEX.
897         (schedule_insn): Rewrite to use try_ready and resolve_dep.
898         (queue_to_ready): Use free_INSN_LIST_list.
899         (early_queue_to_ready): Fix typo.
900         (schedule_block): Init readyp.  Move init_ready_list call after the
901         initialization of clock_var.  Fix error in rejecting insn by
902         targetm.sched.dfa_new_cycle.  Add call to fix_inter_tick.  Remove code
903         that previously corrected INSN_TICKs.  Add code for handling
904         QUEUE_INDEX.
905         (set_priorities): Fix typo.
906         (sched_init): Initialize INSN_TICK, INTER_TICK and QUEUE_INDEX.
907         Clarify comment and code that keeps current_sched_info->next_tail
908         non-null.
909
910 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
911
912         * sched-rgn.c (extend_rgns): New static function.
913         (find_rgns): Use it.
914         (gather_region_statistics, print_region_statistics): New static
915         functions.
916         * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): New parameter.
917         * doc/invoke.texi (max-sched-extend-regions-iters): Document.
918
919 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
920             Andrey Belevantsev <abel@ispras.ru>
921
922         * ddg.c (build_intra_loop_deps): Adjust add_forward_dependence call.
923         * lists.c (unused_deps_list): New variable.
924         (free_list): Add assertions to verify the proper distinguishing 
925         between INSN_LISTs and DEPS_LISTs.
926         (find_list_elem, remove_list_elem, remove_list_node): New static
927         functions.
928         (alloc_DEPS_LIST, free_DEPS_LIST, free_DEPS_LIST_node,
929         remove_free_INSN_LIST_elem, remove_free_DEPS_LIST_elem,
930         remove_free_INSN_LIST_node, remove_free_DEPS_LIST_node): New functions.
931         (alloc_INSN_LIST): Assert that the list we're working on is indeed
932         an INSN_LIST.
933         (free_INSN_LIST_node): Likewise.
934         * modulo-sched.c (current_sched_info): Initialize flags field.
935         * reg-notes.def: Exchange DEP_ANTI and DEP_OUTPUT.
936         * rtl.def (DEPS_LIST): Define.
937         * rtl.h: Declare new functions from lists.c.
938         * sched-deps.c (spec_dependency_cache): New static variable.
939         (maybe_add_or_update_back_dep_1, add_back_dep): New static functions.
940         (add_dependence): Change return type to void.  Move the logic to ...
941         (add_or_update_back_dep_1): ... here.  Handle speculative dependencies.
942         (delete_all_dependences): Add comment about forward_dependency_cache.
943         Handle spec_dependency_cache.  Handle DEPS_LISTs.
944         (fixup_sched_groups): Clarify the change of priority of output
945         and anti dependencies.
946         (sched_analyze_2): Adjust add_dependence calls to create data
947         speculative dependence.
948         (add_forward_dependence): Renamed to add_forw_dep, change prototype.
949         Adjust all callers.  Handle DEPS_LISTS.
950         (compute_forward_dependences): Use add_forw_dep.  Sort LOG_LINKs in
951         presence of speculation.
952         (init_dependency_caches, free_dependency_caches):
953         Handle spec_dependency_cache.
954         (adjust_add_sorted_back_dep, adjust_back_add_forw_dep, delete_forw_dep,
955         estimate_dep_weak, get_dep_weak, ds_merge, check_dep_status):
956         New static functions.
957         (add_or_update_back_dep, add_or_update_back_forw_dep,
958         add_back_forw_dep, delete_back_forw_dep): New functions.
959         * sched-int.h (ds_t, dw_t): New typedefs.
960         (struct sched_info): Add new field flags.
961         (struct haifa_insn_data): Add new bitfield has_internal_dep.
962         Prototype new sched-deps.c functions.
963         (HAS_INTERNAL_DEP, DEP_STATUS): New access macros.
964         (BITS_PER_DEP_STATUS, BITS_PER_DEP_WEAK, DEP_WEAK_MASK, MAX_DEP_WEAK,
965         MIN_DEP_WEAK, NO_DEP_WEAK, UNCERTAIN_DEP_WEAK, BEGIN_DATA, BE_IN_DATA,
966         BEGIN_CONTROL, BE_IN_CONTROL, BEGIN_SPEC, DATA_SPEC, CONTROL_SPEC,
967         SPECULATIVE, BE_IN_SPEC, FIRST_SPEC_TYPE, LAST_SPEC_TYPE,
968         SPEC_TYPE_SHIFT, DEP_TRUE, DEP_OUTPUT, DEP_ANTI, DEP_TYPES, HARD_DEP):
969         New constants.
970         (enum SPEC_TYPES_OFFSETS, enum DEPS_ADJUST_RESULT, enum SCHED_FLAGS):
971         New enums.
972         * sched-rgn.c (current_sched_info): Initialize flags field.
973         (schedule_insns): Initialize current_sched_info before the sched_init
974         call.
975         * sched-ebb.c (current_sched_info): Initialize flags field.
976         (add_deps_for_risky_insns): Use control_flow_insn_p instead of JUMP_P.
977         Call add_or_update_back_dep instead of add_dependence.
978         Create control speculative dependencies.
979         (schedule_insns): Initialize current_sched_info before the sched_init
980         call.
981
982 2006-03-16  Kaz Kojima  <kkojima@gcc.gnu.org>
983
984         * config/sh/linux-unwind.h (shmedia_fallback_frame_state): Set
985         fs->signal_frame.
986         (sh_fallback_frame_state): Likewise.
987
988 2006-03-15  Geoffrey Keating  <geoffk@apple.com>
989
990         * config.gcc (*-*-darwin*): Don't build crt2.o for all Darwin ports.
991         Do switch on default_use_cxa_atexit.
992         (powerpc*-*-darwin*): Build crt2.o on powerpc.
993         * config/darwin-crt3.o: New.
994         * config/darwin.h (LINK_SPEC): If -shared-libgcc, make linker default
995         to 10.3.  Pass '-multiply_defined suppress' if crt3.o is in use.
996         (STARTFILE_SPEC): Add crt3.o when -shared-libgcc and appropriate
997         OS version.
998         * config/rs6000/t-darwin: Move crt2.o building to here.
999         * config/rs6000/darwin.h (C_COMMON_OVERRIDE_OPTIONS): Update
1000         Mac OS version for using __cxa_get_exception_ptr.  Don't test versions
1001         of __cxa_atexit.
1002
1003 2006-03-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
1004
1005         * config/vax/vax.c (nonindexed_address_p): Change logical negation
1006         from '! xxx' to '!xxx' for coding-style conformance.
1007         * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Likewise.
1008         (EXTRA_CONSTRAINT): Likewise.
1009         * config/vax/vax.md (four unnamed insns): Likewise.
1010         
1011 2006-03-15  Paul Brook  <paul@codesourcery.com>
1012
1013         * config/arm/arm.c (minipool_pad): New.
1014         (add_minipool_forward_ref): Include pool alignment padding in address
1015         calculation.
1016         (push_minipool_fix): Set minipool_pad.
1017         (minipool_pad): Ditto.
1018
1019 2006-03-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
1020
1021         * config/vax/vax.c (split_quadword_operands): Use MEM_P()
1022         instead of GET_CODE() == MEM and REG_P() instead of
1023         GET_CODE() == REG.
1024         (print_operand_address): Likewise.
1025         (vax_address_cost): Likewise.
1026         (vax_rtx_costs): Likewise.
1027         (vax_notice_update_cc): Likewise.
1028         (vax_output_int_add): Likewise.
1029         (INDEX_REGISTER_P): Likewise.
1030         (BASE_REGISTER_P): Likewise.
1031         (nonindexed_address_p): Likewise.
1032         (vax_mode_dependent_address_p): Likewise.
1033         * config/vax/vax.h (EXTRA_CONSTRAINT): Likewise.
1034         (PRINT_OPERAND): Likewise.
1035         * config/vax/vax.md (ashlsi3): Likewise.
1036         (ashlsi3): Likewise.
1037         (some more unnamed insns): Likewise.
1038
1039 2006-03-15  Kazu Hirata  <kazu@codesourcery.com>
1040
1041         * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Make it an
1042         iterator-style macro.
1043         (mark_control_dependent_edges_necessary): Update the use of
1044         EXECUTE_IF_CONTROL_DEPENDENT.
1045
1046 2006-03-15  J"orn Rennecke <joern.rennecke@st.com>
1047
1048         * config/sh/predicates.md (cache_address_operand): Special.
1049         (ua_address_operand): Likewise.
1050
1051 2006-03-15  Zdenek Dvorak <dvorakz@suse.cz>
1052
1053         * haifa-sched.c (unlink_other_notes, reemit_notes): Do not handle
1054         loop notes.
1055         * sched-deps.c (sched_analyze_insn, sched_analyze): Ditto.
1056
1057 2006-03-15  Andreas Schwab  <schwab@suse.de>
1058
1059         * gensupport.c (identify_predicable_attribute): Don't free p_false
1060         when it is still in use.
1061
1062 2006-03-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
1063
1064         * config.gcc (default with_cpu setting) <sparc*-*-*>: Do not modify
1065         the default setting here.
1066
1067 2006-03-14  Steven Bosscher  <stevenb.gcc@gmail.com>
1068
1069         * tree-pass.h (pass_cfg): Remove.
1070         * alias.c (rest_of_handle_cfg, pass_cfg): Remove.
1071         * passes.c (pass_cfg): Don't run it.
1072
1073 2006-03-14  Kazu Hirata  <kazu@codesourcery.com>
1074
1075         * Makefile.in (reg-stack.o): Don't depend on gt-reg-stack.h.
1076         * reg-stack.c (stack_regs_mentioned_data): Change the type to
1077         VEC(char,heap) *.
1078         (stack_regs_mentioned): Update the uses of
1079         stack_regs_mentioned_data.  Don't access the array beyond its
1080         end.
1081         (reg_to_stack): Update the uses of stack_regs_mentioned_data.
1082         Don't include gt-reg-stack.h.
1083
1084         * config/bfin/bfin.h (UNALIGNED_WORD_ASM_OP): Remove.
1085         * system.h (UNALIGNED_WORD_ASM_OP): Poison.
1086
1087         * combine.c (UWIDE_SHIFT_LEFT_BY_BITS_PER_WORD): Remove.
1088
1089         PR middle-end/26684
1090         * reg-stack.c (stack_regs_mentioned_data): Put it undef #ifdef
1091         STACK_REGS.
1092
1093 2006-03-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1094
1095         * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Fix typo.
1096
1097 2006-03-14  Richard Guenther  <rguenther@suse.de>
1098
1099         PR tree-optimization/26672
1100         * tree-ssa-propagate.c (set_rhs): Don't walk DEFs if not in
1101         SSA form.
1102
1103 2006-03-14  Richard Guenther  <rguenther@suse.de>
1104
1105         PR tree-optimization/26667
1106         * ipa-inline.c (cgraph_check_inline_limits): Walk the correct
1107         node for the callees.  Always allow inlining if it will shrink
1108         the function size.
1109
1110 2006-03-14  Richard Guenther  <rguenther@suse.de>
1111
1112         PR middle-end/26659
1113         * builtins.c (get_pointer_alignment): Prefer alignment
1114         information from decls over that from types.
1115
1116 2006-03-14  Andrew Pinski  <pinskia@physics.uc.edu>
1117
1118         PR target/26657
1119         * config/darwin.h (LINK_COMMAND_SPEC): Handle -fopenmp.
1120
1121 2006-03-14  Joseph S. Myers  <joseph@codesourcery.com>
1122
1123         * config/rs6000/rs6000.opt (mdlmzb): New option.
1124         (msched-prolog, msched-epilog): Use Var not Mask.
1125         * doc/invoke.texi (-mdlmzb): Document.
1126         * config/rs6000/rs6000.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
1127         MASK_SCHED_PROLOG.
1128         (rs6000_override_options): Enable -mdlmzb for 405 and 440.
1129         * config/rs6000/rs6000.md: Add dlmzb support for 405 and 440.
1130
1131 2006-03-13  Uttam Pawar  <uttamp@us.ibm.com>
1132
1133         PR rtl-optimization/25739
1134         * bt-load.c (augment_live_range): Free tos pointer.
1135
1136         * gensupport.c (identify_predicable_attribute): Free
1137         p_false pointer.
1138         * gcov.c (create_file_names): Free name pointer.
1139
1140 2006-03-13  Roger Sayle  <roger@eyesopen.com>
1141
1142         PR middle-end/26557
1143         * stmt.c (emit_case_nodes): Handle the case where the index is a
1144         CONST_INT, where the comparison mode is specified by the index type.
1145
1146 2006-03-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1147
1148         * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Define when CRTSTUFFS_O
1149         is defined.
1150
1151 2006-03-13  Richard Sandiford  <richard@codesourcery.com>
1152
1153         * config/mips/mips.md (*branch_fp): Use %Z2 for the condition.
1154         (*branch_fp_inverted): Likewise.
1155
1156 2006-03-13  Jakub Jelinek  <jakub@redhat.com>
1157
1158         PR middle-end/25989
1159         * omp-low.c (expand_omp_for_generic): Mark istart0
1160         and iend0 as addressable.
1161
1162 2006-03-13  Jie Zhang  <jie.zhang@analog.com>
1163
1164         * config/bfin/uclinux.h: Define _GNU_SOURCE in CPLUSPLUS_CPP_SPEC.
1165
1166 2006-03-13  Jeff Law  <law@redhat.com>
1167
1168         * tree-vrp.c (stmt_interesting_for_vrp): Some statements with
1169         virtual operands are interesting.
1170         (vrp_visit_stmt): Corresponding changes.
1171
1172 2006-03-13  Bernd Schmidt  <bernd.schmidt@analog.com>
1173
1174         * config/bfin/lib1funcs.asm (___umodsi3): Use stack to save contents
1175         of RETS.
1176         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If
1177         TARGET_ID_SHARED_LIBRARY, define __ID_SHARED_LIB__.
1178         * config/bfin/crti.S: Use it instead of __PIC__.
1179         * config/bfin/crtn.S: Likewise.
1180
1181         * config/bfin/bfin.md (call_value_symbol, sibcall_value_symbol,
1182         call_symbol, sibcall_symbol): Disallow if TARGET_ID_SHARED_LIBRARY,
1183         not if flag_pic.
1184         Lose 'G' modifier for call operand.
1185         * config/bfin/bfin.c (print_operand) <case SYMBOL_REF>: Don't
1186         recognize 'G' modifier.
1187
1188 2006-03-13  Eric Botcazou  <ebotcazou@adacore.com>
1189
1190         PR middle-end/18859
1191         * gimplify.c (gimplify_switch_expr): Discard empty ranges.
1192         * stmt.c (expand_case): Likewise.
1193
1194 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
1195
1196         PR rtl-optimization/26254
1197         * loop-invariant.c (seq_insns_valid_p): New function.
1198         (move_invariant_reg): Only emit new code if it is valid.
1199
1200 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
1201
1202         * cfgrtl.c (last_loop_beg_note, back_edge_of_syntactic_loop_p):
1203         Removed.
1204         (force_nonfallthru_and_redirect): Do not use last_loop_beg_note.
1205         (rtl_split_edge): Do not use back_edge_of_syntactic_loop_p.
1206         (commit_one_edge_insertion): Do not look for loop notes.
1207
1208 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
1209
1210         * jump.c (follow_jumps): Do not check for loop notes.  Move check for
1211         flag_test_coverage out of loop.
1212
1213 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
1214
1215         * final.c (shorten_branches): Remove outdated comment, and turn
1216         the if branch that guards it to continue.
1217
1218 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
1219
1220         * cfgloop.c (flow_loop_dump): Do not dump loop->invalid field.
1221         * cfgloop.h (struct loop): Remove unused fields.
1222
1223 2006-03-13  Kazu Hirata  <kazu@codesourcery.com>
1224
1225         * doc/invoke.texi (-fdump-rtl-loop): Remove.
1226         (-dL, -fdump-rtl-loop2): Update the dump file names 
1227
1228         * doc/invoke.texi: Update dump file names.
1229
1230 2006-03-12  Steven Bosscher  <stevenb.gcc@gmail.com>
1231
1232         * predict.c (estimate_probability): Remove.
1233         * profile.c (rest_of_handle_branch_prob, pass_branch_prob): Remove.
1234         * basic-block.h (estimate_probability): Remove prototype.
1235         * passes.c (finish_optimization_passes): Dump branch prediction or
1236         profiling heuristics to the .profile tree dump.
1237         (init_optimization_passes): Unqueue pass_branch_prob.
1238
1239         * doc/invoke.texi (-fdump-rtl-bp): Remove.
1240
1241 2006-03-11  Steven Bosscher  <stevenb.gcc@gmail.com>
1242
1243         * rtl.def (LABEL_REF): Remove the field for LABEL_NEXTREF.
1244         * rtl.h (LABEL_NEXTREF): Remove field accessor.
1245
1246 2006-03-11  Eric Botcazou  <ebotcazou@adacore.com>
1247
1248         * function.h (frame_offset_overflow): Declare.
1249         * function.c (frame_offset_overflow): New function.
1250         (assign_stack_local_1): Call it to detect that the offset overflows.
1251         * cfgexpand.c (alloc_stack_frame_space): Likewise.
1252
1253 2006-03-11  Steven Bosscher  <stevenb.gcc@gmail.com>
1254
1255         * config/sh/sh.c: Include alloc-pool.h.
1256         (label_ref_list_pool): New alloc pool.
1257         (label_ref_list_t): New type for lists of labels.
1258         (struct pool_node): Make wend a label_ref_list_t.
1259         (add_constant): Use the new type, eradicate LABEL_NEXTREF
1260         references.
1261         (dump_table): Likewise.
1262         (sh_reorg): Set up the alloc pool before using add_constant and
1263         dump_table, and destroy it when finishing.
1264
1265 2006-03-11  Richard Sandiford  <richard@codesourcery.com>
1266
1267         * config/mips/mips.c: Remove redundant comment.
1268
1269 2006-03-10  Jason Merrill  <jason@redhat.com>
1270
1271         PR c/26004
1272         * gimplify.c (gimplify_modify_expr_rhs): Don't do return slot opt if 
1273         the target was declared 'register'.
1274
1275 2006-03-10  Adam Nemet  <anemet@caviumnetworks.com>
1276
1277         * genpreds.c (write_insn_constraint_len): Change definition of
1278         insn_constraint_len to return size_t to match the declaration.
1279
1280 2006-03-10  DJ Delorie  <dj@redhat.com>
1281
1282         * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Bit numbers
1283         start at zero.
1284         (m32c_expand_insv): Fix test for an AND mask.
1285
1286 2006-03-10  Richard Guenther  <rguenther@suse.de>
1287
1288         PR middle-end/26565
1289         * builtins.c (get_pointer_alignment): Handle component
1290         references for field alignment.
1291
1292 2006-03-10  J"orn Rennecke <joern.rennecke@st.com>
1293
1294         * config.gcc (sh*-superh-elf, sh*elf (newlib)): Use newlib.h
1295         when building with libgloss.
1296         (sh*elf): Implement --without-fp option.
1297         (sh64-superh-linux*): Don't multilib. 
1298
1299 2006-03-10  J"orn Rennecke <joern.rennecke@st.com>
1300
1301         * struct-equiv.c (rtx_equiv_p): Fix POST_MODIFY case.
1302
1303 2006-03-09  Andrew Pinski  <pinskia@physics.uc.edu>
1304
1305         * tree-ssa-phiopt.c (tree_ssa_phiopt): Add cfgchanged variable.
1306         Set it when one of the replacement functions returned true.
1307         Return TODO_cleanup_cfg if cfgchanged is true.
1308         (pass_phiopt) <todo_flags_finish>: Remove TODO_cleanup_cfg.
1309
1310 2006-03-09  Adam Nemet  <anemet@caviumnetworks.com>
1311
1312         * combine.c (simplify_shift_const_1): Use gen_lowpart_or_truncate
1313         instead of gen_lowpart.
1314
1315 2006-03-09  Richard Sandiford  <richard@codesourcery.com>
1316
1317         * config/mips/mips-protos.h (mips_output_conditional_branch): Change
1318         interface.
1319         (mips_output_order_conditional_branch): Declare.
1320         * config/mips/mips.h (MIPS_BRANCH): New macro.
1321         * config/mips/mips.c (gen_conditional_branch): Use VOIDmode
1322         for the comparison.  Use gen_condjump.
1323         (mips_output_conditional_branch): Rework interface to take the
1324         asm templates for a direct branch and the inverse of a direct branch.
1325         (mips_output_order_conditional_branch): New function.
1326         (mips_builtin_branch_and_move): New function.
1327         (mips_expand_builtin_compare): Use it.  Use VOIDmode for the
1328         branch condition.  Use gen_single_cc as the condition for
1329         __builtin_mips_upper_* or __builtin_mips_lower_*.
1330         (mips_expand_builtin_bposge): Use mips_builtin_branch_and_move.
1331         Use VOIDmode for the branch condition.
1332         * config/mips/predicates.md (order_operator): New predicate.
1333         * config/mips/mips.md (UNSPEC_SINGLE_CC): New constant.
1334         (branch_fp): Rename to...
1335         (*branch_fp): ...this.  Remove mode from comparison operator.
1336         Use new mips_output_conditional_branch interface.
1337         (branch_fp_inverted): Rename to...
1338         (*branch_fp_inverted): ...this and update as for *branch_fp.
1339         (*branch_zero<mode>): Rename to...
1340         (*branch_order<mode>): ...this.  Remove mode from comparison operator.
1341         Use mips_output_order_conditional_branch.  Only accept ordered
1342         comparisons.  
1343         (*branch_zero<mode>_inverted): Rename to...
1344         (*branch_order<mode>_inverted): ...this and update as for
1345         *branch_order<mode>.
1346         (*branch_equality<mode>): Accept zero as the second operand to
1347         the equality operator.  Use the new mips_output_conditional_branch
1348         interface.
1349         (*branch_equality<mode>_inverted): Likewise.
1350         (condjump): New expander.
1351         * config/mips/mips-dsp.md (mips_bposge): Remove mode from comparison
1352         operator.
1353         * config/mips/mips-ps-3d.md (bc1any4t, bc1any4f): Likewise.
1354         (bc1any2t, bc1any2f): Likewise.
1355         (single_cc): New expander.
1356         (*branch_upper_lower, *branch_upper_lower_inverted): New patterns.
1357
1358 2006-03-09  Richard Sandiford  <richard@codesourcery.com>
1359
1360         * doc/md.texi: Update documentation of MIPS constraints.
1361         * config/mips/constraints.md: New file.
1362         * config/mips/mips.md: Include it.
1363         * config/mips/mips.c (mips_char_to_class): Delete.
1364         (override_options): Don't initialize mips_char_to_class.
1365         * config/mips/mips.h (mips_char_to_class): Delete.
1366         (REG_CLASS_FROM_LETTER): Delete.
1367         (CONST_OK_FOR_LETTER_P): Delete.
1368         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
1369         (EXTRA_CONSTRAINT_Y): Delete.
1370         (EXTRA_CONSTRAINT_STR): Delete.
1371         (CONSTRAINT_LEN): Delete.
1372         (EXTRA_MEMORY_CONSTRAINT): Delete.
1373
1374 2006-03-09  Diego Novillo  <dnovillo@redhat.com>
1375
1376         * tree-cfg.c (move_block_to_fn): Remove the statements from the
1377         original fn's eh regions.
1378
1379 2006-03-09  Eric Botcazou  <ebotcazou@adacore.com>
1380
1381         * fold-const.c (build_range_check): Make sure to use a valid type to
1382         apply the "(c>=low) && (c<=high) into (c-low>=0) && (c-low<=high-low)"
1383         transformation.
1384
1385         (range_predecessor): New static function.
1386         (range_successor): Likewise.
1387         (merge_ranges): Use them to compute predecessors and successors of
1388         range bounds.
1389
1390 2006-03-09  Roger Sayle  <roger@eyesopen.com>
1391
1392         PR middle-end/26561
1393         * fold-const.c (fold_div_compare): When optimizing X/C1 op C2 as
1394         X op C3, consider whether C3 overflows towards +Inf or -Inf.
1395
1396 2006-03-08  DJ Delorie  <dj@redhat.com>
1397
1398         * config/m32c/addsub.md (addqi3): Disparage a0/a1.
1399         (addpsi3): Expand to include memory operands.  Remove
1400         reload-specific splits.
1401         * config/m32c/bitops.md (bset_qi, bset_hi, bclr_qi): New.
1402         (andqi3_16, andhi3_16, iorqi3_16, iorhi3_16): New.
1403         (andqi3_24, andhi3_24, iorqi3_24, iorhi3_24): New.
1404         (andqi3, andhi3, iorqi3, iorhi3): Convert to expanders.
1405         (shift1_qi, shift1_hi, insv): New.
1406         * config/m32c/cond.md (cbranchqi4, cbranchhi4): Remove.
1407         (cbranch<mode>4, stzx_16, stzx_24_<mode>, stzx_reversed,
1408         cmp<mode>, b<code>, s<code>, s<code>_24, movqicc, movhicc,
1409         cond_to_int): New.
1410         * config/m32c/m32c-protos.h: Update as needed.
1411         * config/m32c/m32c.c (m32c_reg_class_from_constraint): Don't
1412         default the Rcr, Rcl, Raw, and Ral constraints.  Add Ra0 and Ra1.
1413         Fail for unrecognized R* constraints.
1414         (m32c_cannot_change_mode_class): Be more picky about pseudos.
1415         (m32c_const_ok_for_constraint_p): Add Imb, Imw, and I00.
1416         (m32c_extra_constraint_p2): Allow (mem (plus (plus fb int) int)).
1417         Add Sp constraint.
1418         (m32c_init_libfuncs): New.
1419         (m32c_legitimate_address_p): Add debug wrapper.
1420         (m32c_rtx_costs): New.
1421         (m32c_address_cost): New.
1422         (conversions): Add 'B' prefix.
1423         (m32c_print_operand): 'h' and 'H' pick lower and upper halves of
1424         operands, or word regnames for QI operands.  'B' prints bit
1425         position.
1426         (m32c_expand_setmemhi): New.
1427         (m32c_expand_movmemhi): New.
1428         (m32c_expand_movstr): New.
1429         (m32c_expand_cmpstr): New.
1430         (m32c_prepare_shift): Shift counts are limited to 16 bits at a time.
1431         (m32c_expand_neg_mulpsi3): Handle non-ints.
1432         (m32c_cmp_flg_0): New.
1433         (m32c_expand_movcc): New.
1434         (m32c_expand_insv): New.
1435         (m32c_scc_pattern): New.
1436         * config/m32c/m32c.h (reg classes): Add AO_REGS and A1_REGS.  Take
1437         a0/a1 out of SIregs.
1438         (STORE_FLAG_VALUE): New.
1439         * config/m32c/m32c.md: Add unspecs for string moves.  Define various mode and
1440         code macros.
1441         (no_insn): New.
1442         * config/m32c/mov.md: Make constraints more liberal.
1443         (zero_extendqihi2): Optimize r0/r1 case.
1444         * config/m32c/muldiv.md (mulpsi3): Check for intvals.
1445         * config/m32c/predicates.md (m32c_any_operand): New.
1446         (m32c_nonimmediate_operand): New.
1447         (m32c_hl_operand): New.
1448         (m32c_r3_operand): New.
1449         (ap_operand): New.
1450         (ma_operand): New.
1451         (memsym_operand): New.
1452         (memimmed_operand): New.
1453         (a_qi_operand): New.
1454         (m32c_eqne_operator): New.
1455         (m32c_1bit8_operand): New.
1456         (m32c_1bit16_operand): New.
1457         (m32c_1mask8_operand): New.
1458         (m32c_1mask16_operand): New.
1459         * config/m32c/blkmov.md: New file.
1460         * config/m32c/t-m32c (MD_FILES): Add blkmov.
1461
1462 2006-03-08  Andreas Tobler  <a.tobler@schweiz.ch>
1463
1464         * dwarf2out.c (expand_builtin_dwarf_sp_column): Make dwarf_regnum
1465         unsigned to fix signed/unsigned comparison issue in
1466         DWARF2_FRAME_REG_OUT.
1467         (expand_builtin_init_dwarf_reg_sizes): Make i unsigned to fix signed/
1468         unsigned comparison issue in DWARF2_FRAME_REG_OUT.
1469
1470         * tree-ssa-operands.c (finalize_ssa_def_ops): Move the declaration
1471         of ptr into the ENABLE_CHECKING section.
1472
1473 2006-03-08  Jeff Law  <law@redhat.com>
1474
1475         * tree-vrp.c (infer_value_range): Only count pointer uses
1476         and dereferences if -fdelete-null-pointer-checks is enabled.
1477
1478         * tree-vrp.c (find_assert_locations): Infer value ranges for
1479         single use pointers, but do not create ASSERT_EXPRs for them.
1480         When a non-null range is inferred for a pointer, backwards
1481         propagate that range to other equivalent pointers through the
1482         use-def chain.
1483
1484 2006-03-08  Paolo Bonzini  <bonzini@gnu.org>
1485
1486         PR bootstrap/26500
1487         * Makefile.in (dvi, html, install-info): Invoke the corresponding
1488         language hook targets.
1489         * ada/Make-lang.in, cp/Make-lang.in, objc/Make-lang.in,
1490         objcp/Make-lang.in: Create stub rules for dvi, html, install-info
1491         if language hook targets were missing.
1492
1493 2006-03-07  Zdenek Dvorak <dvorakz@suse.cz>
1494
1495         * tree-ssa-opfinalize.h: Removed.
1496         * Makefile.in (tree-ssa-operands.o): Remove tree-ssa-opfinalize.h
1497         dependency.
1498         * tree-ssa-operands.c: Do not include tree-ssa-opfinalize.h.
1499         (ALLOC_OPTYPE, APPEND_OP_AFTER, MOVE_HEAD_AFTER, MOVE_HEAD_TO_FREELIST,
1500         INITIALIZE_USE, add_def_op, add_use_op, add_vuse_op, add_maydef_op,
1501         add_mustdef_op, finalize_ssa_def_ops, finalize_ssa_use_ops,
1502         finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
1503         finalize_ssa_v_must_def_ops): New.
1504
1505 2006-03-07  Kenneth Zadeck <zadeck@naturalbridge.com>
1506
1507         * df-scan.c: (df_bb_refs_record): Fix obvious typo with wrong
1508         block as parameter.
1509
1510 2006-03-07  Geoffrey Keating  <geoffk@apple.com>
1511
1512         * varasm.c (assemble_end_function): Say that 'fnname' is unused.
1513
1514         * config/i386/i386.c (ix86_delegitimize_address): Handle Darwin
1515         addresses with offsets; reorganize.
1516
1517         * dwarf2out.c (DWARF2_FRAME_REG_OUT): Move up in file.
1518         (expand_builtin_dwarf_sp_column): Call DWARF2_FRAME_REG_OUT.
1519         (expand_builtin_init_dwarf_reg_sizes): Likewise.
1520
1521 2006-03-08  David Billinghurst <David.Billinghurst@riotinto.com>
1522
1523         PR target/26588
1524         * config/i386/cygwin.h (GOMP_SELF_SPECS): Define.
1525
1526 2006-03-08  Ben Elliston  <bje@au.ibm.com>
1527
1528         * config/fp-bit.h (CMPtype): Typedef to a word mode integer.
1529
1530 2006-03-07  Aldy Hernandez  <aldyh@redhat.com>
1531
1532         PR gomp/26238
1533         * doc/passes.texi (Tree-SSA passes): Document omp lowering and
1534         expansion.
1535
1536 2006-03-07  Richard Guenther  <rguenther@suse.de>
1537
1538         PR tree-optimization/26587
1539         * tree-ssa-structalias.c (handle_ptr_arith): Handle MINUS_EXPR.
1540
1541 2006-03-07  Richard Sandiford  <richard@codesourcery.com>
1542
1543         * varasm.c (assemble_variable): Fix setting of DECL_IN_TEXT_SECTION.
1544
1545 2006-03-07  Richard Sandiford  <richard@codesourcery.com>
1546
1547         * hooks.c (hook_bool_mode_rtx_true): New function.
1548         * hooks.h (hook_bool_mode_rtx_true): Declare.
1549         * toplev.c (compile_file): Call output_shared_constant_pool.
1550         * varasm.c (shared_constant_pool): New variable.
1551         (assemble_start_function, assemble_end_function): Remove arguments
1552         from call to output_constant_pool.
1553         (create_constant_pool): New function, split out from...
1554         (init_varasm_status): ...here.
1555         (force_const_mem): Choose between the shared and per-function constant
1556         pools.  Set current_function_uses_const_pool when reusing old entries
1557         as well as when creating new ones.
1558         (mark_constant): Ignore data argument.
1559         (mark_constants): Remove pool argument.
1560         (mark_constant_pool): Likewise.  Use current_function_uses_const_pool
1561         to decide whether the function uses a constant pool.
1562         (output_constant_pool_contents): New function, split out from...
1563         (output_constant_pool): ...here.
1564         (output_shared_constant_pool): New function.
1565         (init_varasm_once): Initialize shared_constant_pool.
1566         * output.h (output_constant_pool): Delete.
1567         (output_shared_constant_pool): Declare.
1568         * config/s390/s390-protos.h (s390_output_constant_pool): Delete.
1569         * config/i386/i386.c (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Override.
1570
1571 2006-03-06  Nick Clifton  <nickc@redhat.com>
1572
1573         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove reference to
1574         flag_strength_reduce.
1575
1576 2006-03-06  Ben Elliston  <bje@au.ibm.com>
1577
1578         * config.gcc: Add t-dfprules to $tmake_file for i*86-*-linux* and
1579         x86_64-*-linux* configurations.
1580
1581         * config/dfp-bit.h (CMPtype): Typedef to a word mode integer.
1582         (LIBGCC2_WORDS_BIG_ENDIAN): Define.
1583
1584 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
1585
1586         * tree-ssa-threadupdate.c (rediscover_loops_after_threading):
1587         Remove.
1588         * basic-block.h: Remove the extern for
1589         rediscover_loops_after_threading.
1590
1591         * cfgloop.c (cancel_loop): Make it static.
1592         * cfgloop.h: Remove the prototype for cancel_loop.
1593
1594         * flow.c (recompute_reg_usage): Make it static.
1595         * rtl.h: Remove the prototype for recompute_reg_usage.
1596
1597         * function.c (use_return_register): Make it static.
1598         * function.h: Remove the prototype.
1599
1600 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
1601
1602         * recog.c (volatile_mem_p, validate_change_maybe_volatile):
1603         Remove.
1604         * recog.h: Remove the prototype for
1605         validate_change_maybe_volatile.
1606
1607 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
1608
1609         * rtlanal.c (replace_reg): Remove.
1610         * rtl.h: Remove the prototype for replace_reg.
1611
1612 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
1613
1614         * regclass.c (reg_scan_update): Remove.
1615         (reg_scan_mark_refs): Remove the last argument.
1616         * rtl.h: Remove the prototype for reg_scan_update.
1617
1618 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
1619
1620         * builtins.c, c-pragma.h, c-typeck.c, cgraph.c, cgraphunit.c,
1621         combine.c, common.opt, config/dfp-bit.c, config/i386/i386.c,
1622         config/m68k/m68k.c, config/m68k/m68k.md, config/mt/mt.c,
1623         config/mt/mt.h, config/s390/s390.md, df-core.c, df-problems.c,
1624         df-scan.c, df.h, diagnostic.c, expr.c, function.h, gimplify.c,
1625         loop-invariant.c, omp-low.c, opts.c, passes.c,
1626         rtl-factoring.c, rtlanal.c, struct-equiv.c, tree-cfgcleanup.c,
1627         tree-ssa-loop-niter.c, tree-ssa-loop-prefetch.c,
1628         tree-ssa-structalias.c, tree-ssa-threadedge.c,
1629         tree-ssa-threadupdate.c, tree-vect-patterns.c,
1630         tree-vect-transform.c, tree-vectorizer.h, tree-vrp.c,
1631         unwind-dw2.c: Fix comment typos.  Follow spelling conventions.
1632
1633 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
1634
1635         * dwarf2out.c (dwarf2out_add_library_unit_info): Remove.
1636         * dwarf2out.h: Remove the prototype for
1637         dwarf2out_add_library_unit_info.
1638
1639 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
1640
1641         * tree.c (add_var_to_bind_expr): Remove.
1642         * tree.h: Remove the prototype for add_var_to_bind_expr.
1643
1644 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
1645
1646         * regclass.c (n_non_fixed_regs): Remove.
1647         (init_reg_sets_1, globalize_reg): Remove all uses of
1648         n_non_fixed_regs.
1649         * hard-reg-set.h: Remove the extern for n_non_fixed_regs.
1650
1651 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
1652
1653         * rtlanal.c (insns_safe_to_move_p): Remove.
1654         * rtl.h: Remove the prototype for insns_safe_to_move_p.
1655
1656 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
1657
1658         * expmed.c (expand_mult_add): Remove.
1659         * expr.h: Remove the prototype for expand_mult_add.
1660
1661 2006-03-04  Jakub Jelinek  <jakub@redhat.com>
1662
1663         * unwind-dw2.h (_Unwind_FrameState): Add REG_SAVED_VAL_OFFSET
1664         and REG_SAVED_VAL_EXP constants.
1665         * unwind-dw2.c (struct _Unwind_Context): Add by_value array.
1666         (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
1667         Handle regs stored by value.
1668         (_Unwind_SetGRValue, _Unwind_GRByValue): New functions.
1669         (execute_cfa_program): Handle DW_CFA_val_offset,
1670         DW_CFA_val_offset_sf and DW_CFA_val_expression.
1671         (uw_update_context_1): Handle REG_SAVED_REG with regs stored by
1672         value specially.  Handle REG_SAVED_VAL_OFFSET and REG_SAVED_VAL_EXP.
1673         (uw_install_context_1): Handle target regs stored by value.
1674
1675 2006-03-03  Daniel Berlin  <dberlin@dberlin.org>
1676
1677         * tree-sra.c (tree_sra): Return todoflags;
1678         (generate_one_element): Set TODO_update_smt_usage if needed.
1679         (pass_sra): Remove TODO_update_smt_usage.
1680         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Add some
1681         parameter.
1682         (tree_ssa_forward_propagate_single_use_vars): Return
1683         TODO_update_smt_usage if we need to update SMT usage.
1684         (pass_forwprop): Remove TODO_update_smt_usage.
1685         
1686 2006-03-03  Diego Novillo  <dnovillo@redhat.com>
1687
1688         * tree-ssa-operands.c: Tidy whitespace.  Fix spelling.
1689         (correct_use_link): Remove reference to get_stmt_operands.
1690         (update_stmt_operands): Likewise.
1691         (get_modify_expr_operands): New function factored out of
1692         parse_ssa_operands and get_expr_operands.
1693         Try to create V_MUST_DEFs for LHS by default.
1694         (get_expr_operands) <case MODIFY_EXPR>: Call
1695         get_modify_expr_operands.
1696         <case ARRAY_RANGE_REF>: Handle together with ARRAY_REF.
1697         <case BIT_FIELD_REF>: Clear opf_kill_def from FLAGS.
1698         (parse_ssa_operands) <case MODIFY_EXPR>: Call
1699         get_modify_expr_operands.
1700
1701 2006-03-03  Kazu Hirata  <kazu@codesourcery.com>
1702
1703         * tree-dfa.c (referenced_var_lookup_if_exists): Remove.
1704         * tree-flow.h: Remove the prototype for
1705         referenced_var_lookup_if_exists.
1706
1707 2006-03-03  Steve Ellcey  <sje@cup.hp.com>
1708
1709         PR rtl-optimization/26345
1710         PR target/19061
1711         * config/ia64/predicates.md (basereg_operand): Don't look in subregs.
1712
1713 2006-03-03  Roger Sayle  <roger@eyesopen.com>
1714
1715         PR tree-optimization/26524
1716         * tree-scalar-evolution.c (interpret_rhs_modify_expr): Use
1717         fold_convert to create a constant of the appropriate type.
1718
1719 2006-03-03  Richard Sandiford  <richard@codesourcery.com>
1720
1721         * doc/tm.texi: Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
1722         SYMBOL_REF_IN_BLOCK_P.
1723         * doc/rtl.texi: Likewise.  Refer to SYMBOL_FLAG_HAS_BLOCK_INFO instead
1724         of SYMBOL_FLAG_IN_BLOCK.
1725         * gengtype.c (adjust_field_rtx_def): Use SYMBOL_REF_HAS_BLOCK_INFO_P
1726         instead of SYMBOL_REF_IN_BLOCK_P.
1727         * explow.c (use_anchored_address): Likewise.
1728         * rtl.c (rtx_size): Likewise.
1729         * varasm.c (create_block_symbol): Set SYMBOL_FLAG_HAS_BLOCK_INFO
1730         instead of SYMBOL_FLAG_IN_BLOCK.
1731         (make_decl_rtl): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
1732         SYMBOL_REF_IN_BLOCK_P.
1733         (assemble_variable): Likewise.
1734         (output_constant_def_contents): Likewise.
1735         (output_constant_pool): Likewise.
1736         (default_encode_section_info): Preserve SYMBOL_FLAG_HAS_BLOCK_INFO
1737         instead of SYMBOL_FLAG_IN_BLOCK.
1738         * rtl.h (block_symbol): Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
1739         SYMBOL_REF_IN_BLOCK_P.
1740         (SYMBOL_REF_BLOCK): Likewise.
1741         (SYMBOL_REF_OFFSET): Likewise.
1742         (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
1743         SYMBOL_REF_IN_BLOCK_P.
1744         (SYMBOL_FLAG_IN_BLOCK): Replace with...
1745         (SYMBOL_FLAG_HAS_BLOCK_INFO): ...this.
1746         (SYMBOL_REF_IN_BLOCK_P): Replace with...
1747         (SYMBOL_REF_HAS_BLOCK_INFO_P): ...this.
1748
1749 2006-03-03  Jakub Jelinek  <jakub@redhat.com>
1750
1751         * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Fix pasto.
1752
1753 2006-03-02  Roger Sayle  <roger@eyesopen.com>
1754
1755         * simplify-rtx.c (simplify_unary_operation): When simplifying
1756         (neg (lt X 0)) into (ashiftrt X C) or (lshiftrt X C), make sure
1757         that we perform the right shift in the appropriate mode, and
1758         then extend or truncate the result to requested mode.
1759
1760 2006-03-03  Zdenek Dvorak <dvorakz@suse.cz>
1761
1762         * gengtype.c (main): Handle double_int type.
1763         * tree.h (struct tree_int_cst): Make type of int_cst double_int.
1764         * double-int.c: New file.
1765         * double-int.h: New file.
1766         * system.h: Include doubleint.h.
1767         * Makefile.in (SYSTEM_H): Include double-int.h.
1768         (double-int.o): Add.
1769
1770 2006-03-03  Joseph S. Myers  <joseph@codesourcery.com>
1771
1772         PR bootstrap/26478
1773         * Makefile.in (stmp-int-hdrs): Remove include/unwind.h before
1774         copying over it.
1775
1776 2006-03-02  Zdenek Dvorak <dvorakz@suse.cz>
1777
1778         * tree-vrp.c (remove_range_assertions): Do not update statements
1779         unnecessarily.
1780
1781 2006-03-02  Zdenek Dvorak <dvorakz@suse.cz>
1782
1783         * cse.c (rest_of_handle_cse): Do not pass CLEANUP_PRE_LOOP to cfg
1784         cleanup.
1785         * gcse.c (rest_of_handle_gcse): Ditto.
1786         * except.c (gate_handle_eh): Ditto.
1787         * cfgcleanup.c (rest_of_handle_jump2): Ditto.
1788         * basic-block.h (CLEANUP_PRE_LOOP): Remove.
1789
1790 2006-03-02  Eric Christopher  <echristo@apple.com>
1791
1792         * config/i386/i386.c (machopic_output_stub): Add indirection to
1793         jump.
1794
1795 2006-03-02  Zdenek Dvorak <dvorakz@suse.cz>
1796
1797         * loop.c: Removed.
1798
1799 2006-03-02  David S. Miller  <davem@sunset.davemloft.net>
1800
1801         Sun Niagara specific optimizations.
1802         * config.gcc: Recognize niagara as target.
1803         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Mention Niagara.
1804         (TARGET_CPU_niagara): Define.
1805         (CPP_CPU64_DEFAULT_SPEC): Define __sparc_v9__ for Niagara.
1806         (ASM_CPU64_DEFAULT_SPEC): Pass -Av9b for Niagara.
1807         (CPP_CPU_SPEC): Handle -mcpu=niagara.
1808         (ASM_CPU_SPEC): Likewise.
1809         (PROCESSOR_NIAGARA): New enum entry.
1810         (REGISTER_MOVE_COST): Handle Niagara.
1811         (BRANCH_COST, PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES): Likewise.
1812         * config/sparc/sparc.c (niagara_costs): New processor_costs entry.
1813         (sparc_override_options): Recognize "niagara", set appropriate
1814         default MASK_* values for it, and align functions to 32-bytes
1815         by default just like ULTRASPARC/ULTRASPARC3.
1816         (sparc_initialize_trampoline): Handle niagara like ultrasparc.
1817         (sparc64_initialize_trampoline): Likewise.
1818         (sparc_use_sched_lookahead): Use zero for niagara.
1819         (sparc_issue_rate): Use one for niagara.
1820         * config/sparc/niagara.md: New file.
1821         * config/sparc/sparc.md: Include it.
1822         * config/sparc/sol2-bi.h (CPP_CPU64_DEFAULT_SPEC,
1823         ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Set appropriately
1824         when default cpu is niagara.
1825         (CPP_CPU_SPEC): Handle -mcpu=niagara.
1826         (ASM_CPU_SPEC): Likewise.
1827         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Set appropriately
1828         when default cpu is niagara.
1829         (ASM_CPU_SPEC): Handle -mcpu=niagara.
1830         * config/sparc/linux64.h: Handle a default of TARGET_CPU_niagara
1831         just like v9/ultrasparc/ultrasparc3.
1832         * doc/invoke.texi: Add documentation for "niagara" and improve
1833         existing documentation for ultrasparc variants.
1834
1835 2006-03-02  Diego Novillo  <dnovillo@redhat.com>
1836
1837         * tree-ssa-operands.c (update_stmt_operands): Update documentation.
1838
1839 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
1840
1841         * doc/tm.texi (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Document.
1842         (ASM_OUTPUT_BSS): Describe the two ways of handling global BSS,
1843         and say that only one is needed.
1844         * doc/rtl.texi (SYMBOL_REF_BLOCK): Say that the block can be null.
1845         * target.h (have_switchable_bss_sections): New hook.
1846         * explow.c (use_anchored_address): Check that the symbol is in a block.
1847         * varasm.c (tls_comm_section, comm_section, lcomm_section)
1848         (bss_noswitch_section): New variables.
1849         (get_unnamed_section): Add SECTION_UNNAMED to the flags.
1850         (get_noswitch_section): New function.
1851         (get_block_for_section): Allow SECT to be null.
1852         (unlikely_text_section_p): Use SECTION_STYLE.
1853         (bss_initializer_p): New function.
1854         (get_variable_section): Move earlier in file.  Take a new argument,
1855         prefer_noswitch_p.  Move bss checks from assemble_variable to here.
1856         Return one of the new *_sections in such cases.
1857         (get_block_for_decl): New function, extracting some logic from
1858         use_blocks_for_decl_p.
1859         (change_symbol_section): Remove in favor of...
1860         (change_symbol_block): ...this new function.
1861         (use_blocks_for_decl_p): Remove checks now performed by
1862         get_block_for_decl.
1863         (make_decl_rtl): Use change_symbol_block and get_block_for_decl.
1864         (ASM_EMIT_LOCAL, ASM_EMIT_BSS, ASM_EMIT_COMMON): Delete in favor of...
1865         (emit_local, emit_bss, emit_common): ...these new functions.
1866         Return true if the alignment was honored.
1867         (emit_tls_common): New function.
1868         (asm_emit_uninitialised): Delete.
1869         (assemble_variable_noswitch): New function, split out from...
1870         (assemble_variable): ...here.  Don't make decisions about common
1871         variables here.  Globalize all public decls that go into non-common
1872         sections.  Check whether SYMBOL_REF_BLOCK is null.
1873         (output_constant_def_contents): Check whether SYMBOL_REF_BLOCK is null.
1874         (output_constant_pool): Likewise.
1875         (init_varasm_once): Initialize the new section variables.
1876         (have_global_bss_p): New function.
1877         (categorize_decl_for_section): Use bss_initializer_p.
1878         (switch_to_section): Use SECTION_STYLE.  Abort for SECTION_NOSWITCH.
1879         (place_block_symbol): Assert that the symbol must be in a block.
1880         * target-def.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): New macro.
1881         (TARGET_INITIALIZER): Include it.
1882         * rtl.h (SYMBOL_REF_BLOCK): Document the null alternative.
1883         * output.h (SECTION_STYLE_MASK, SECTION_COMMON): New macros.
1884         (SECTION_MACH_DEP): Bump by two.
1885         (SECTION_UNNAMED, SECTION_NOSWITCH): New macros.
1886         (unnamed_section): Mention SECTION_UNNAMED in comment.
1887         (named_section): Likewise SECTION_NAMED.
1888         (noswitch_section_callback): New type.
1889         (noswitch_section): New structure.
1890         (section): Add a noswitch_section alternative.
1891         (SECTION_STYLE): New macro.
1892         (tls_comm_section, comm_section, lcomm_section): Declare.
1893         (bss_noswitch_section, have_global_bss_p): Declare.
1894         * config/elfos.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
1895         * config/iq2000/iq2000.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
1896         Override.
1897         * config/v850/v850.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
1898         * config/stormy16/stormy16.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
1899         Override.
1900
1901 2006-03-02  Daniel Berlin <dberlin@dberlin.org>
1902
1903         * gcc/tree-vrp.c (execute_vrp): Return value.
1904         * gcc/regrename.c (rest_of_handle_regrename): Ditto.
1905         * gcc/tree-into-ssa.c (rewrite_into_ssa): Ditto.
1906         * gcc/tree-complex.c (tree_lower_complex): Ditto.
1907         (tree_lower_complex_O0): Ditto.
1908         * gcc/tracer.c (rest_of_handle_tracer): Ditto.
1909         * gcc/postreload-gcse.c (rest_of_handle_gcse2): Ditto.
1910         * gcc/postreload.c (rest_of_handle_postreload): Ditto.
1911         * gcc/tree-tailcall.c (execute_tail_recursion): Ditto.
1912         (execute_tail_calls): Ditto.
1913         * gcc/tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
1914         * gcc/tree.h (init_function_for_compilation): Ditto.
1915         * gcc/ipa-cp.c (ipcp_driver): Ditto.
1916         * gcc/tree-scalar-evolution.c (scev_const_prop): Ditto.
1917         * gcc/tree-scalar-evolution.h (scev_const_prop): Ditto.
1918         * gcc/final.c (compute_alignments): Ditto.
1919         (rest_of_handle_final): Ditto.
1920         (rest_of_handle_shorten_branches): Ditto.
1921         (rest_of_clean_state): Ditto.
1922         * gcc/omp-low.c (execute_expand_omp): Ditto.
1923         (execute_lower_omp): Ditto.
1924         * gcc/tree-ssa-dse.c (tree_ssa_dse): Ditto.
1925         * gcc/ipa-reference.c (static_execute): Ditto.
1926         * gcc/tree-ssa-uncprop.c (tree_ssa_uncprop): Ditto.
1927         * gcc/reorg.c (rest_of_handle_delay_slots): Ditto.
1928         (rest_of_handle_machine_reorg): Ditto.
1929         * gcc/cgraphunit.c (rebuild_cgraph_edges): Ditto.
1930         * gcc/flow.c (recompute_reg_usage): Ditto.
1931         (rest_of_handle_remove_death_notes): Ditto.
1932         (rest_of_handle_life): Ditto.
1933         (rest_of_handle_flow2): Ditto.
1934         * gcc/tree-ssa-copyrename.c (rename_ssa_copies): Ditto.
1935         * gcc/tree-ssa-ccp.c (do_ssa_ccp): Ditto.
1936         (do_ssa_store_ccp): Ditto.
1937         (execute_fold_all_builtins): Ditto.
1938         * gcc/mode-switching.c (rest_of_handle_mode_switching): Ditto.
1939         * gcc/modulo-sched.c (rest_of_handle_sms): Ditto.
1940         * gcc/ipa-pure-const.c (static_execute): Ditto.
1941         * gcc/cse.c (rest_of_handle_cse): Ditto.
1942         (rest_of_handle_cse2): Ditto.
1943         * gcc/web.c (rest_of_handle_web): Ditto.
1944         * gcc/tree-stdarg.c (execute_optimize_stdarg): Ditto.
1945         * gcc/tree-ssa-math-opts.c (execute_cse_reciprocals): Ditto.
1946         * gcc/tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto.
1947         * gcc/tree-nrv.c (tree_nrv): Ditto.
1948         (execute_return_slot_opt): Ditto.
1949         * gcc/tree-ssa-alias.c (compute_may_aliases): Ditto.
1950         (create_structure_vars): Ditto.
1951         * gcc/loop-init.c (rtl_loop_init): Ditto.
1952         (rtl_loop_done): Ditto.
1953         (rtl_move_loop_invariants): Ditto.
1954         (rtl_unswitch): Ditto.
1955         (rtl_unroll_and_peel_loops): Ditto.
1956         (rtl_doloop): Ditto.
1957         * gcc/gimple-low.c (lower_function_body): Ditto.
1958         (mark_used_blocks): Ditto.
1959         * gcc/tree-ssa-sink.c (execute_sink_code): Ditto.
1960         * gcc/ipa-inline.c (cgraph_decide_inlining): Ditto.
1961         (cgraph_early_inlining): Ditto.
1962         * gcc/global.c (rest_of_handle_global_alloc): Ditto.
1963         * gcc/jump.c (cleanup_barriers): Ditto.
1964         (purge_line_number_notes): Ditto.
1965         * gcc/ifcvt.c (rest_of_handle_if_conversion): Ditto.
1966         (rest_of_handle_if_after_reload): Ditto.
1967         * gcc/tree-ssa-loop.c (tree_ssa_loop_init): Ditto.
1968         (tree_ssa_loop_im): Ditto.
1969         (tree_ssa_loop_unswitch): Ditto.
1970         (tree_vectorize): Ditto.
1971         (tree_linear_transform): Ditto.
1972         (tree_ssa_loop_ivcanon): Ditto.
1973         (tree_ssa_empty_loop): Ditto.
1974         (tree_ssa_loop_bounds): Ditto.
1975         (tree_complete_unroll): Ditto.
1976         (tree_ssa_loop_prefetch): Ditto.
1977         (tree_ssa_loop_ivopts): Ditto.
1978         (tree_ssa_loop_done): Ditto.
1979         * gcc/predict.c (tree_estimate_probability): Ditto.
1980         * gcc/recog.c (split_all_insns_noflow): Ditto.
1981         (rest_of_handle_peephole2): Ditto.
1982         (rest_of_handle_split_all_insns): Ditto.
1983         * gcc/tree-eh.c (lower_eh_constructs): Ditto.
1984         * gcc/regmove.c (rest_of_handle_regmove): Ditto.
1985         (rest_of_handle_stack_adjustments): Ditto.
1986         * gcc/local-alloc.c (rest_of_handle_local_alloc): Ditto.
1987         * gcc/function.c (instantiate_virtual_regs): Ditto.
1988         (init_function_for_compilation): Ditto.
1989         (rest_of_handle_check_leaf_regs): Ditto.
1990         * gcc/gcse.c (rest_of_handle_jump_bypass): Ditto.
1991         (rest_of_handle_gcse): Ditto.
1992         * gcc/ipa-type-escape.c (type_escape_execute): Ditto.
1993         * gcc/alias.c (rest_of_handle_cfg): Ditto.
1994         * gcc/tree-if-conv.c (main_tree_if_conversion): Ditto.
1995         * gcc/profile.c (rest_of_handle_branch_prob): Ditto.
1996         * gcc/tree-ssa-phiopt.c (tree_ssa_phiopt): Ditto.
1997         * gcc/rtl-factoring.c (rest_of_rtl_seqabstr): Ditto.
1998         * gcc/bt-load.c (rest_of_handle_branch_target_load_optimize): Ditto
1999         * gcc/tree-dfa.c (find_referenced_vars): Ditto.
2000         * gcc/except.c (set_nothrow_function_flags): Ditto.
2001         (convert_to_eh_region_ranges): Ditto.
2002         (rest_of_handle_eh): Ditto.
2003         * gcc/emit-rtl.c (unshare_all_rtl): Ditto.
2004         (remove_unnecessary_notes): Ditto.
2005         * gcc/except.h (set_nothrow_function_flags): Ditto.
2006         (convert_to_eh_region_ranges): Ditto.
2007         * gcc/cfgexpand.c (tree_expand_cfg): Ditto.
2008         * gcc/tree-cfgcleanup.c (merge_phi_nodes): Ditto.
2009         * gcc/tree-ssa-pre.c (do_pre): Ditto.
2010         (execute_fre): Ditto.
2011         * gcc/cfgcleanup.c (rest_of_handle_jump): Ditto.
2012         (rest_of_handle_jump2): Ditto.
2013         * gcc/tree-sra.c (tree_sra): Ditto.
2014         * gcc/tree-mudflap.c (execute_mudflap_function_ops): Ditto.
2015         (execute_mudflap_function_decls): Ditto.
2016         * gcc/tree-ssa-copy.c (do_copy_prop): Ditto.
2017         (do_store_copy_prop): Ditto.
2018         * gcc/ipa-prop.h (ipcp_driver): Ditto.
2019         * gcc/cfglayout.c (insn_locators_initialize): Ditto.
2020         * gcc/tree-ssa-forwprop.c
2021         (tree_ssa_forward_propagate_single_use_vars): Ditto.
2022         * gcc/cfglayout.h (insn_locators_initialize): Ditto.
2023         * gcc/tree-ssa-dce.c (tree_ssa_dce): Ditto.
2024         * gcc/tree-ssa.c (execute_early_warn_uninitialized): Ditto.
2025         (execute_late_warn_uninitialized): Ditto.
2026         * gcc/rtl.h (cleanup_barriers): Ditto.
2027         (split_all_insns_noflow): Ditto.
2028         (purge_line_number_notes): Ditto.
2029         (unshare_all_rtl): Ditto.
2030         (remove_unnecessary_notes): Ditto.
2031         (recompute_reg_usage): Ditto.
2032         (variable_tracking_main): Ditto.
2033         * gcc/integrate.c (emit_initial_value_sets): Ditto.
2034         * gcc/integrate.h (emit_initial_value_sets): Ditto.
2035         * gcc/tree-optimize.c (execute_free_datastructures): Ditto
2036         (execute_free_cfg_annotations): Ditto.
2037         (execute_fixup_cfg): Ditto.
2038         (execute_cleanup_cfg_pre_ipa): Ditto.
2039         (execute_cleanup_cfg_post_optimizing): Ditto.
2040         (execute_init_datastructures): Ditto.
2041         * gcc/tree-object-size.c (compute_object_sizes): Ditto.
2042         * gcc/combine.c (rest_of_handle_combine): Ditto.
2043         * gcc/tree-outof-ssa.c (rewrite_out_of_ssa): Ditto.
2044         * gcc/bb-reorder.c (duplicate_computed_gotos): Ditto.
2045         (rest_of_handle_reorder_blocks): Ditto.
2046         (rest_of_handle_partition_blocks): Ditto.
2047         * gcc/var-tracking.c (variable_tracking_main): Ditto.
2048         * gcc/tree-profile.c (tree_profiling): Ditto.
2049         * gcc/tree-vect-generic.c (expand_vector_operations): Ditto.
2050         * gcc/reg-stack.c (rest_of_handle_stack_regs): Ditto.
2051         * gcc/sched-rgn.c (rest_of_handle_sched): Ditto.
2052         (rest_of_handle_sched2): Ditto.
2053         * gcc/basic-block.h (free_bb_insn): Ditto.
2054         * gcc/tree-ssa-structalias.c (ipa_pta_execute): Ditto.
2055         * gcc/tree-cfg.c (execute_build_cfg): Ditto.
2056         (remove_useless_stmts): Ditto.
2057         (split_critical_edges): Ditto.
2058         (execute_warn_function_return): Ditto.
2059         (execute_warn_function_noreturn): Ditto.
2060         * gcc/tree-ssa-reassoc.c (execute_reassoc): Ditto.
2061         * gcc/cfgrtl.c (free_bb_for_insn): Ditto.
2062         * gcc/passes.c (execute_one_pass): Run additional
2063         todos returned by execute function.
2064         * gcc/tree-pass.h (struct tree_opt_pass): Make execute
2065         return a value.
2066
2067 2006-03-02  Richard Guenther  <rguenther@suse.de>
2068
2069         * tree-ssa-alias.c (find_used_portions): Consider taking
2070         the address as making the variable not write-only.
2071
2072 2006-03-02  Nick Clifton  <nickc@redhat.com>
2073
2074         * config.gcc (default_use_cxa_atexit): Extend the description of
2075         this configure variable.  Set its default value to "yes" for
2076         Linux, NetBSD and ELF targets on the assumption that they will
2077         use C libraries with the __cxa_atexit function.
2078
2079 2006-03-02  Ben Elliston  <bje@au.ibm.com>
2080
2081         * config/rs6000/linux-unwind.h (frob_update_context): Mark `fs'
2082         parameter as unused to suppress a build warning.
2083
2084 2006-03-02  Ben Elliston  <bje@au.ibm.com>
2085
2086         * mklibgcc.in: Depend on config/dfp-bit.h in rules that compile
2087         config/dfp-bit.c.
2088
2089 2006-03-01  Roger Sayle  <roger@eyesopen.com>
2090
2091         PR other/26489
2092         * gthr-posix.h (__gthrw2): Define to take three parameters, the
2093         declared name, the weak reference name, and the typeof name.
2094         (__gthrw): Avoid expanding the declared name suffix.
2095         (__gthrw3): New Tru64 specific macro to simplify the OSF/1 decls.
2096
2097 2006-03-01  Jakub Jelinek  <jakub@redhat.com>
2098
2099         * dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants
2100         from DWARF 3.
2101         (DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale,
2102         DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count,
2103         DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled,
2104         DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity,
2105         DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New.
2106         (DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New.
2107         (DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited,
2108         DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New.
2109         (DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch,
2110         DW_DS_leading_separate, DW_DS_trailing_separate): New.
2111         (DW_END_default, DW_END_big, DW_END_little): New.
2112         (DW_END_lo_user, DW_END_hi_user): Define.
2113         (DW_LNE_lo_user, DW_LNE_hi_user): Define.
2114         (DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New.
2115         (DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC,
2116         DW_LANG_D): New.
2117
2118 2006-03-01  Diego Novillo  <dnovillo@redhat.com>
2119
2120         * tree.def (SYMBOL_MEMORY_TAG): Rename from TYPE_MEMORY_TAG.
2121         Update all users.
2122         * tree-pass.h (PROP_smt_usage): Rename from PROP_tmt_usage.
2123         Update all users.
2124         (TODO_update_smt_usage): Rename from TODO_update_tmt_usage.
2125         Update all users.
2126         * tree.h (SMT_USED_ALONE): Rename from TMT_USED_ALONE.
2127         Update all users.
2128         * tree-flow.h (struct var_ann_d): Rename field 'type_mem_tag'
2129         to 'symbol_mem_tag'.
2130         Update all users.
2131         * doc/tree-ssa.texi: Update documentation to reflect TMT->SMT
2132         rename.
2133
2134 2006-03-01  Roger Sayle  <roger@eyesopen.com>
2135
2136         * builtins.c (fold_builtin_copysign): Delete unreachable code.
2137
2138 2006-03-01  Andrew Pinski  <pinskia@physics.uc.edu>
2139
2140         PR target/25761
2141         * config/darwin.h (MACHOPIC_JUST_INDIRECT): Check just
2142         MACHO_DYNAMIC_NO_PIC_P.
2143         (MACHOPIC_PURE): Check flag_pic and not MACHO_DYNAMIC_NO_PIC_P.
2144
2145 2006-03-01  Andrew Pinski  <pinskia@physics.uc.edu>
2146
2147         PR target/26389
2148         * config/darwin-protos.h (darwin_asm_output_anchor):
2149         Declare.
2150         * config/darwin-sections.def (cstring_section):
2151         Add SECTION_MERGE to the flags.
2152         (literal4_section): Likewise.
2153         (literal8_section): Likewise.
2154         (objc_selector_refs_section): Likewise.
2155         (objc_cls_refs_section): Likewise.
2156         * config/darwin.c (darwin_asm_output_anchor): New
2157         function.
2158         * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
2159
2160 2006-03-01  Daniel Berlin  <dberlin@dberlin.org>
2161
2162         Fix PR tree-optimization/26443
2163         * tree-vrp.c (pass_vrp): Add TODO_update_tmt_usage
2164         to todo and PROP_tmt_usage to properties_destroyed.
2165         * tree-ssa-ccp.c (pass_ccp): Ditto.
2166         (pass_store_ccp): Ditto.
2167         * tree-ssa-dom.c (pass_dominator): Ditto.
2168
2169 2006-03-01  Diego Novillo  <dnovillo@redhat.com>
2170
2171         * tree-ssa-operands.c: Cleanup whitespace.
2172         (get_asm_expr_operands): Move before first invocation.
2173         (get_indirect_ref_operands): Likewise.
2174         (get_tmr_operands): Likewise.
2175         (get_call_expr_operands): Likewise.
2176         (append_def): Likewise.
2177         (append_use): Likewise.
2178         (append_v_may_def): Likewise.
2179         (append_v_must_def): Likewise.
2180         (add_call_clobber_ops): Likewise.
2181         (add_call_read_ops): Likewise.
2182         (add_stmt_operand): Likewise.
2183         (add_virtual_operand): Likewise.
2184         (build_ssa_operands): Likewise.
2185
2186 2006-03-01  Andrew Pinski  <pinskia@physics.uc.edu>
2187
2188         PR middle-end/26022
2189         Revert:
2190         PR middle-end/24437
2191         * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
2192         with a call expr to ...
2193         * fold-const.c (fold_ternary) <case CALL_EXPR>: Here.
2194
2195 2006-03-01  Diego Novillo  <dnovillo@redhat.com>
2196
2197         * tree-vrp.c (extract_range_from_assert): Remove special
2198         handling for types with super-types.
2199
2200 2006-03-01  Ben Elliston  <bje@au.ibm.com>
2201
2202         * config.gcc: Add t-dfprules to $tmake_file for powerpc-*-linux*
2203         and powerpc64-*-linux* configurations.
2204         * config/t-dfprules: New file.
2205
2206         * mklibgcc.in: Add logic to handle $DFP_ENABLE and $DFP_CFLAGS.
2207         Compile dfp-bit.c from the source directory using -DWIDTH and
2208         $DFP_CFLAGS to control the compilation of that file, rather than
2209         generating width-specific versions in the build directory.
2210         * Makefile.in (libgcc.mk): Pass down DFP_ENABLE and DFP_CFLAGS.
2211         (LIBGCC_DEPS): Replace $(D32PBIT) et al with config/dfp-bit.[hc].
2212
2213 2006-02-28  Zack Weinberg  <zackw@panix.com>
2214
2215         * doc/md.texi: Avoid use of @headitem so that makeinfo <4.7
2216         continues to work.
2217
2218 2006-02-28  Eric Christopher  <echristo@apple.com>
2219
2220         * config/rs6000/darwin.h (ENABLE_STACK_EXECUTE): Define.
2221         Set up IN_LIBGCC definition of TARGET_64BIT.
2222         * config/i386/darwin.h (ENABLE_STACK_EXECUTE): Define.
2223
2224 2006-02-28  Roger Sayle  <roger@eyesopen.com>
2225
2226         PR middle-end/14752
2227         * c-common.c (c_common_truthvalue_conversion) <MINUS_EXPR,
2228         BIT_XOR_EXPR, BIT_AND_EXPR>: Delete.  Let fold optimize these
2229         cases via the construction of "expr != 0".
2230
2231 2006-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
2232
2233         * alias.c (alias_invariant, alias_invariant_size): Remove.
2234         (record_base_value): Remove.
2235         (memrefs_conflict_p): Don't look at alias_invariant.
2236         (end_alias_analysis): Don't free it.
2237         * alias.h (record_base_value): Remove prototype.
2238
2239 2006-02-28  Paolo Bonzini  <bonzini@gnu.org>
2240             Adam Nemet  <anemet@caviumnetworks.com>
2241
2242         * rtl.h (truncated_to_mode): Declare it.
2243         (struct rtl_hooks): Add reg_truncated_to_mode hook.
2244         * rtlhooks-def.h (RTL_HOOKS_REG_TRUNCATED_TO_MODE): New macro.
2245         (RTL_HOOKS_INITIALIZER): Include it.
2246         * rtlhooks.c (reg_truncated_to_mode_general): New function.
2247         * combine.c (RTL_HOOKS_REG_TRUNCATED_TO_MODE): Override to
2248         reg_truncated_to_mode.
2249         * rtlanal.c (truncated_to_mode): Define it.
2250         * simplify-rtx.c (simplify_unary_operation_1): Use it.
2251
2252 2006-02-28  Jeff Law  <law@redhat.com>
2253
2254         * tree-chrec.c (chrec_convert_aggressive): Do not eliminate
2255         conversions where TYPE_MIN_VALUE/TYPE_MAX_VALUE do not cover
2256         the range allowed by TYPE_PRECISION.
2257
2258         * tree.h (strct phi_arg_d): Remove unused NONZERO field.
2259
2260 2006-02-28  Dorit Nuzman  <dorit@il.ibm.com>
2261
2262         PR tree-optimization/26419
2263         * doc/invoke.texi (ftree-vectorizer-verbose): Add information on
2264         values of n.
2265
2266 2006-02-27  Zack Weinberg  <zackw@panix.com>
2267
2268         * doc/md.texi: Fix typo in previous change.
2269
2270 2006-02-27  Kenneth Zadeck <zadeck@naturalbridge.com>
2271
2272         * df.c: Remove.
2273
2274 2006-02-27  Zack Weinberg  <zackw@panix.com>
2275
2276         * rtl.def (define_constraint, define_register_constraint)
2277         (define_memory_constraint, define_address_constraint): New MD forms.
2278         * gensupport.c (process_rtx): Put define_constraint etc on the
2279         predicate queue.
2280         * genpreds.c (process_define_predicate): Adjust comment.  Validate
2281         the name, and call validate_exp to validate the expression.
2282         (mark_mode_tests, write_extract_subexp): Can assume correct input.
2283         (write_predicate_expr): Likewise.  NAME argument no longer necessary;
2284         all callers changed.
2285         (validate_exp, needs_variable, struct constraint_data)
2286         (constraints_by_letter_table, first_constraint, last_constraint_ptr)
2287         (FOR_ALL_CONSTRAINTS, generic_constraint_letters, const_int_constraints)
2288         (const_dbl_constraints, constraint_max_namelen)
2289         (have_register_constraints, have_memory_constraints)
2290         (have_address_constraints, have_address_constraints)
2291         (have_extra_constraints, have_const_int_constraints)
2292         (have_const_dbl_constraints, mangle, add_constraint)
2293         (process_define_constraint, process_define_register_constraint)
2294         (write_enum_constraint_num, write_lookup_constraint)
2295         (write_insn_constraint_len, write_regclass_for_constraint)
2296         (write_constraint_satisfied_p, write_insn_const_int_ok_for_constraint)
2297         (write_insn_extra_memory_constraint)
2298         (write_insn_extra_address_constraint)
2299         (write_satisfies_constraint_fns): New.
2300         (write_tm_preds_h): If we have new-style constraint definitions,
2301         prototype the functions generated from them, and define the
2302         old constraint interface (still used by generic code) in terms of
2303         those functions.
2304         (write_insn_preds_c): If we have new-style constraint definitions,
2305         generate all relevant functions from those definitions.
2306         (main): Handle define_constraint etc.
2307         * genoutput.c (struct constraint_data, indep_constraints)
2308         (mdep_constraint_letters, constraints_by_letter_table, note_constraint)
2309         (mdep_constraint_len): New data structures and functions, defined
2310         #ifdef USE_MD_CONSTRAINTS.
2311         (check_constraint_len): Don't define #ifdef USE_MD_CONSTRAINTS.
2312         (validate_insn_alternatives): If USE_MD_CONSTRAINTS is defined,
2313         use new logic to validate operand constraints against constraint
2314         definitions.
2315         (main): Process define_constraint etc. if USE_MD_CONSTRAINTS is
2316         defined.
2317         * defaults.h: If none of the old-style constraint macros are
2318         defined, define USE_MD_CONSTRAINTS; do not provide defaults for any
2319         old-style macros; and poison REG_CLASS_FROM_LETTER,
2320         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P, and
2321         EXTRA_CONSTRAINT.
2322         * recog.c (reg_fits_class_p): If cl is NO_REGS, return 0 immediately.
2323         * doc/md.texi: Document new constraint-definition mechanism and the
2324         C interface it provides.  Remove references to old mechanism
2325         elsewhere in the document.
2326         (Machine Constraints): Use pathnames relative to gcc directory,
2327         i.e. config/ARCH/FILE.  Change i386 section to refer to
2328         config/i386/predicates.md; update that section to match docstrings.
2329         * doc/tm.texi: Move all documentation of the old constraint-
2330         definition macros to their own section, clearly mark as obsolete.
2331
2332         * config/i386/predicates.md (R, q, Q, l, a, b, c, d, S, D, A, f, t)
2333         (u, y, x, Y, I, J, K, L, M, N, O, G, C, e, Z): New constraint
2334         definitions.
2335         * config/i386/i386.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
2336         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
2337         * config/i386/i386.md (*movdf_nointeger): Remove stray 'H' from
2338         constraint strings.
2339         (splits and peepholes): Use satisfies_constraint_*.
2340         * config/i386/i386.c (memory_address_length)
2341         (ix86_attr_length_immediate_default): Use satisfies_constraint_*.
2342
2343 2006-02-27  Daniel Berlin  <dberlin@dberlin.org>
2344
2345         * lambda-code.c (can_convert_to_perfect_nest): Allow any type of
2346         scalar operation to be put back into the loop.
2347
2348 2006-02-27  Jakub Jelinek  <jakub@redhat.com>
2349
2350         PR other/26208
2351         * unwind-dw2.c (struct _Unwind_Context): Add signal_frame field.
2352         (extract_cie_info): Handle S flag in augmentation string.
2353         (execute_cfa_program): If context->signal_frame, execute also
2354         fs->pc == context->ra instructions.
2355         (uw_frame_state_for): If context->signal_frame, don't subtract one
2356         from context->ra to find FDE.
2357         (uw_update_context_1): Set context->signal_frame to
2358         fs->signal_frame.
2359         (_Unwind_GetIPInfo): New function.
2360         * unwind-dw2.h (_Unwind_FrameState): Add signal_frame field.
2361         * unwind-c.c (PERSONALITY_FUNCTION): Use _Unwind_GetIPInfo instead
2362         of _Unwind_GetIP.
2363         * unwind-sjlj.c (_Unwind_GetIPInfo): New function.
2364         * unwind-generic.h (_Unwind_GetIPInfo): New prototype.
2365         * unwind-compat.c (_Unwind_GetIPInfo): New function.
2366         * libgcc-std.ver (_Unwind_GetIPInfo): Export @@GCC_4.2.0.
2367         * config/ia64/unwind-ia64.c (_Unwind_GetIPInfo): New function.
2368         * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Define.
2369         * config/i386/linux-unwind.h (x86_fallback_frame_state,
2370         x86_64_fallback_frame_state): Set fs->signal_frame.
2371         * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Likewise.
2372         (MD_FROB_UPDATE_CONTEXT): Define unconditionally.
2373         (frob_update_context): Likewise.  Workaround missing S flag in
2374         Linux 2.6.12 - 2.6.16 kernel vDSOs.
2375         * config/s390/linux-unwind.h (s390_fallback_frame_state): Likewise.
2376         Remove the psw_addr + 1 hack.
2377
2378 2006-02-27  Daniel Berlin  <dberlin@dberlin.org>
2379
2380         * tree-ssa-structalias.c (get_constraint_for): Move code to deal
2381         with aggregates here.
2382         (find_func_aliases): Remove code for &<aggregate> from here.
2383
2384 2006-02-26  Roger Sayle  <roger@eyesopen.com>
2385
2386         * fold-const.c (fold_binary) <EQ_EXPR>:  Fold (~X & C) eq/ne 0 as
2387         (X & C) ne/eq 0, where C is a single bit, i.e. a power of two.
2388         Fold both "((X & C) ^ C) eq/ne 0" and "((X ^ C) & C) eq/ne 0"
2389         as (X & C) ne/eq 0.
2390
2391 2006-02-26  Roger Sayle  <roger@eyesopen.com>
2392
2393         PR middle-end/19983
2394         * real.c (real_nan): Allow both 0x and 0X as hexadecimal prefixes.
2395
2396 2006-02-26  Zdenek Dvorak <dvorakz@suse.cz>
2397
2398         * opts.c (decode_options): Do not handle flag_strength_reduce.
2399         (common_handle_option): Handle OPT_floop_optimize, OPT_frerun_loop_opt
2400         and OPT_fstrength_reduce.
2401         * tree-ssa-loop.c (tree_ssa_loop_prefetch): Only test
2402         flag_prefetch_loop_arrays for being nonzero.
2403         * common.opt (floop-optimize, frerun-loop-opt): Resurrected as
2404         no-ops.
2405         (fprefetch-loop-arrays-rtl): Removed.
2406         (flag_prefetch_loop_arrays): Do not specify the value.
2407
2408         * doc/passes.texi: Update documentation of loop optimizer
2409         passes.
2410         * doc/invoke.texi (-fstrength-reduce, -fprefetch-loop-arrays-rtl,
2411         -frerun-loop-opt): Remove.
2412
2413 2006-02-26  Richard Guenther  <rguenther@suse.de>
2414
2415         PR tree-optimization/26421
2416         * tree-ssa-alias.c (find_used_portions): Don't treat parameters
2417         in function calls that are ADDR_EXPRs as using the whole structure.
2418
2419 2006-02-26  Steven Bosscher  <stevenb.gcc@gmail.com>
2420
2421         * common.opt (-floop-optimize, -frerun-loop-opt): Remove.
2422         * tree-pass.h (pass_loop_optimize): Remove.
2423         * passes.c (pass_loop_optimize): Never run it.
2424         * toplev.c (backend_init): Don't call init_loop.
2425         * opts.c (flag_loop_optimize_set): Remove.
2426         (decode_options): Never set flag_loop_optimize or flag_rerun_loop_opt.
2427         (common_handle_option) <OPT_floop_optimize>: Remove.  Don't disable
2428         the old RTL loop optimizer when profiling enabled.
2429         * predict.c (tree_estimate_probability): Always strip builtin_expect.
2430         * cfgcleanup.c (try_forward_edges): Don't avoid killing loop
2431         pre-headers for the sake of the old RTL loop optimizer.
2432         * Makefile.in: Remove all references to loop.o.
2433
2434         * doc/invoke.texi: Remove all references to -floop-optimize
2435         and -frerun-loop-opt.
2436
2437 2006-02-26  Zack Weinberg  <zackw@panix.com>
2438
2439         * doc/md.texi (Machine Constraints): Refer to all files with paths
2440         relative to gcc directory (i.e. config/CPU/file).  Add missing
2441         @table @code ... @end table to M32C subsection.
2442
2443 2006-02-26  Roger Sayle  <roger@eyesopen.com>
2444
2445         * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & 1) ^ 1 as
2446         (X & 1) == 0.
2447         <BIT_AND_EXPR>: Fold (X ^ 1) & 1 and ~X & 1 as (X & 1) == 0.
2448
2449 2006-02-26  Roger Sayle  <roger@eyesopen.com>
2450             James A. Morrison  <phython@gcc.gnu.org>
2451
2452         PR middle-end/21137
2453         * fold-const.c (fold_binary) <EQ_EXPR>:  Fold ((X>>C1)&C2) eq/ne 0,
2454         when C2 is a power of two, as either (X&(C2<<C1)) eq/ne 0 if the
2455         new constant C2<<C1, or as (X<0) or (X,false) depending upon the
2456         signedness of the shift operation.
2457
2458 2006-02-26  Dorit Nuzman  <dorit@il.ibm.com>
2459
2460         PR tree-optimization/26359
2461         * tree-ssa-alias.c (new_type_alias): Set fields for new tag.
2462
2463 2006-02-25  Roger Sayle  <roger@eyesopen.com>
2464
2465         * simplify-rtx.c (simplify_relational_operation_1):  Simplify
2466         (X^Y) == 0 as X == Y and (X^Y) != 0 as X != Y.  Simplify (X^Y) == Y
2467         as X == 0, and some symmetry related transformations.
2468         Simplify (X^C1) == C2 as X == (C1^C2).  Split long comment line.
2469
2470 2006-02-25  Roger Sayle  <roger@eyesopen.com>
2471
2472         PR middle-end/23673
2473         * fold-const.c (fold_binary) <EQ_EXPR>:  Fold (X^Y) == 0 as X == Y
2474         and (X^Y) != 0 as X != Y.  Fold (X^Y) == Y as X == 0, and some
2475         symmetry related transformations.  Fold (X^C1) == C2 as
2476         X == (C1^C2).
2477
2478 2006-02-25  Juergen Weigert  <jw@suse.de>
2479         Richard Guenther  <rguenther@suse.de>
2480
2481         * scan-decls.c (scan_decls): Don't fetch new statement after CPP_EOF.
2482
2483 2006-02-24  Adam Nemet  <anemet@caviumnetworks.com>
2484
2485         * combine.c (gen_lowpart_or_truncate): Call
2486         simplify_gen_unary(TRUNCATE, ...) instead of gen_rtx_TRUNCATE.
2487
2488 2006-02-24  Diego Novillo  <dnovillo@redhat.com>
2489
2490         * doc/invoke.texi: Move -fopenmp description to "Options for
2491         Code Generation".
2492         Remove reference to -lgomp.
2493
2494 2006-02-24  David Edelsohn  <edelsohn@gnu.org>
2495
2496         * doc/install.texi: Require GNU tar version 1.14.
2497
2498 2006-02-24  Geoffrey Keating  <geoffk@apple.com>
2499
2500         * doc/tm.texi (Run-time Target): Document C_COMMON_OVERRIDE_OPTIONS.
2501         * doc/invoke.texi (C++ Dialect Options): Document
2502         -fno-use-cxa-get-exception-ptr.
2503         * configure.ac: Define DEFAULT_USE_CXA_ATEXIT to 2 not 1.
2504         * configure: Regenerate.
2505         * c.opt (fuse-cxa-get-exception-ptr): New.
2506         * c-opts.c (c_common_handle_option): Handle
2507         OPT_fuse_cxa_get_exception_ptr.
2508         * c-common.c (flag_use_cxa_atexit): Update documentation.
2509         (flag_use_cxa_get_exception_ptr): New.
2510         * c-common.h (flag_use_cxa_get_exception_ptr): New.
2511         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Improve
2512         documentation.
2513         (C_COMMON_OVERRIDE_OPTIONS): New.
2514
2515 2006-02-24  Roger Sayle  <roger@eyesopen.com>
2516
2517         PR middle-end/24952
2518         * combine.c (try_combine): Explicitly check whether GET_CODE is
2519         a SET or a CLOBBER, instead on checking that it isn't a USE.
2520
2521 2006-02-24  Roger Sayle  <roger@eyesopen.com>
2522
2523         * fold-const.c (fold_comparison): New subroutine of fold_binary
2524         containing transformations common to both the equality and
2525         ordering relational operators, factored out of fold_binary.
2526         (fold_binary): Separate out the equality operators (EQ_EXPR
2527         and NE_EXPR) from the ordering operators (LT_EXPR, GT_EXPR,
2528         LE_EXPR and GE_EXPR), calling fold_comparison to perform the
2529         transformations common to both.
2530         (fold_div_compare): Fix latent bugs in the previously unreachable
2531         LT_EXPR and GE_EXPR cases.
2532
2533 2006-02-24  David Edelsohn  <edelsohn@gnu.org>
2534
2535         * config/rs6000/rs6000.c (rs6000_init_builtins): Change
2536         decl libname for clog to __clog on AIX.
2537
2538         * config/rs6000/xcoff.h (MAX_OFILE_ALIGNMENT): Define.
2539
2540 2006-02-24  Alan Modra  <amodra@bigpond.net.au>
2541
2542         PR target/26453
2543         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't
2544         output traceback table for thunks.  Localise rs6000_stack_info call.
2545
2546 2006-02-23  Roger Sayle  <roger@eyesopen.com>
2547             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2548
2549         * gthr-posix.h (__gthrw): Fix typo in comment.
2550
2551 2006-02-23  Geoffrey Keating  <geoffk@apple.com>
2552
2553         * doc/cpp.texi (Character sets): Document that we do support
2554         input files to be in any character set.
2555
2556 2006-02-23  Jeff Law  <law@redhat.com>
2557
2558         * tree.h (PHI_ARG_NONZERO): Remove.
2559         * tree-phinodes.c (add_phi_arg): No longer initialize PHI_ARG_NONZERO.
2560         (remove_phi_arg_num): No longer copy PHI_ARG_NONZERO from the old
2561         node to the new node.
2562
2563         PR tree-optimization/26425
2564         * tree-vrp.c (vrp_visit_assignment): If the LHS's type has a NULL
2565         min/max, then assume its varying.
2566
2567 2006-02-23  Zdenek Dvorak <dvorakz@suse.cz>
2568
2569         PR rtl-optimization/26316
2570         * rtlanal.c (enum may_trap_p_flags): New.
2571         (may_trap_p_1): Take flags instead of unaligned_mems argument.  Ignore
2572         MEM_NOTRAP_P if flags & MTP_AFTER_MOVE.
2573         (may_trap_p, may_trap_or_fault_p): Pass flags to may_trap_p_1.
2574         (may_trap_after_code_motion_p): New function.
2575         * loop-invariant.c (find_identical_invariants): Fix dump formating.
2576         (find_invariant_insn): Use may_trap_after_code_motion_p.
2577         * rtl.h (may_trap_after_code_motion_p): Declare.
2578
2579 2006-02-23  Zdenek Dvorak <dvorakz@suse.cz>
2580
2581         * emit-rtl.c (immed_double_const): Cleanup.
2582
2583 2006-02-23  Daniel Berlin  <dberlin@dberlin.org>
2584
2585         Fix PR tree-optimization/26376
2586         * tree-ssa-structalias.c (find_func_aliases):  Use get_id_for_tree,
2587         remove assert.
2588
2589 2006-02-23  Jakub Jelinek  <jakub@redhat.com>
2590
2591         PR middle-end/26412
2592         * gimplify.c (omp_add_variable): Guard variable size decl test with
2593         DECL_SIZE (decl) check.
2594
2595 2006-02-23  Richard Guenther  <rguenther@suse.de>
2596
2597         PR middle-end/26439
2598         * tree-ssa-structalias.c (find_func_aliases): Handle complex types
2599         like aggregate types.
2600
2601 2006-02-23  Jakub Jelinek  <jakub@redhat.com>
2602
2603         * configure.ac: Add --with{,out}-long-double-128 configure option.
2604         (TARGET_DEFAULT_LONG_DOUBLE_128): New test.
2605         * configure: Rebuilt.
2606         * config.in: Rebuilt.
2607         * doc/install.texi (Options specification): Document
2608         --with-long-double-128.
2609
2610         * config/rs6000/linux.h [TARGET_DEFAULT_LONG_DOUBLE_128]
2611         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
2612         * config/rs6000/linux64.h [TARGET_DEFAULT_LONG_DOUBLE_128]
2613         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
2614
2615 2006-02-23  Aldy Hernandez  <aldyh@redhat.com>
2616
2617         * config/s390/s390.c (override_options): Handle
2618         TARGET_DEFAULT_LONG_DOUBLE_128.
2619
2620         * config/alpha/alpha.c (override_options): Handle
2621         TARGET_DEFAULT_LONG_DOUBLE_128.
2622
2623         * config/sparc/sparc.c (sparc_override_options): Handle
2624         TARGET_DEFAULT_LONG_DOUBLE_128.
2625
2626 2006-02-22  Daniel Jacobowitz  <dan@codesourcery.com>
2627
2628         * Makefile.in (stmp-fixinc): Use real-$(INSTALL_HEADERS_DIR).
2629         (real-install-headers-tar, real-install-headers-cpio)
2630         (real-install-headers-cp): New targets.
2631
2632 2006-02-22  Richard Sandiford  <richard@codesourcery.com>
2633
2634         * tree.h (variable_section): Delete.
2635         * varasm.c (variable_section): Delete.
2636
2637 2006-02-22  Paolo Bonzini  <bonzini@gnu.org>
2638
2639         * install.texi: Add notes on install.texi2html.
2640         (Building in parallel): Do not use footnotes.
2641
2642 2006-02-21  Aldy Hernandez  <aldyh@redhat.com>
2643
2644         PR libgomp/26234
2645         * doc/install.texi (Configuration): Document --disable-libgomp.
2646
2647 2006-02-21  Geoffrey Keating  <geoffk@apple.com>
2648
2649         * config/i386/darwin.h (DWARF2_FRAME_REG_OUT): New.
2650
2651 2006-02-21  Alexandre Oliva  <aoliva@redhat.com>
2652
2653         * config/i386/sse.md (vec_extractv2df_1_sse): New.
2654         (vec_extractv2df_0_sse): New.
2655
2656 2006-02-21  Alexandre Oliva  <aoliva@redhat.com>
2657
2658         * defaults.h (CFA_FRAME_BASE_OFFSET): Define.
2659         * config/ia64/ia64.h (CFA_FRAME_BASE_OFFSET): Override.
2660         * doc/tm.texi (CFA_FRAME_BASE_OFFSET): Document.
2661         * dwarf2out.c (build_cfa_loc): New offset parameter.  Add it
2662         to the result of the expression.
2663         (def_cfa_1): Adjust.
2664         (frame_pointer_cfa_offset): Rename to...
2665         (frame_pointer_fb_offset): ... this.  Adjust all uses.
2666         (convert_cfa_to_loc_list): Rename to...
2667         (convert_cfa_to_fb_loc_list): ... this.  New offset parameter.
2668         Pass it on to build_cfa_loc.
2669         (compute_frame_pointer_to_cfa_displacement): Rename to...
2670         (compute_frame_pointer_to_fb_displacement): ... this.  New
2671         offset parameter.  Use it in computation.
2672         (gen_subprogram_die): Compute cfa_fb_offset with the new
2673         macro, and use it to compute the fb loc list and the
2674         displacement.
2675
2676 2006-02-21  Bernd Schmidt  <bernd.schmidt@analog.com>
2677
2678         * config/bfin/predicates.md (cc_operand): Delete predicate.  All uses
2679         replaced with register_operand.
2680         * config/bfin/bfin.c (bfin_register_move_cost): Moving CC to any
2681         non-DREG is expensive.
2682         * config/bfin/bfin.h (FIXED_REGISTERS): CC isn't fixed.
2683         * config/bfin/bfin.md (movbi): Fix constraints and template for moves
2684         involving memory.
2685
2686 2006-02-21  Joseph S. Myers  <joseph@codesourcery.com>
2687
2688         * doc/install.texi2html: Use set -e.
2689
2690 2006-02-21  Richard Sandiford  <richard@codesourcery.com>
2691
2692         * doc/tm.texi (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
2693         (ASM_OUTPUT_SHARED_LOCAL): Delete.
2694         * doc/invoke.texi (-fshared-data): Delete.
2695         * common.opt (fshared-data): Delete.
2696         * varasm.c (asm_emit_uninitialised): Remove flag_shared_data handling.
2697         (assemble_static_space): Remove #if 0 code.
2698         * system.h (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
2699         (ASM_OUTPUT_SHARED_LOCAL): Poison.
2700         * config/cris/cris.h: Remove FIXME.
2701
2702 2006-02-21  Paolo Bonzini  <bonzini@gnu.org>
2703
2704         * doc/sourcebuild.texi (Front End Directory): No more double-colon
2705         hooks.
2706
2707 2006-02-21  Jakub Jelinek  <jakub@redhat.com>
2708
2709         PR middle-end/26379
2710         * combine.c (simplify_shift_const_1): Disable nested shifts
2711         optimization for vector shifts.
2712
2713 2006-02-20  Roger Sayle  <roger@eyesopen.com>
2714
2715         PR tree-optimization/26361
2716         * tree-vrp.c (extract_range_from_unary_expr): Handle NEGATE_EXPR
2717         of unsigned integer types.
2718
2719 2006-02-20  Sebastian Pop  <pop@cri.ensmp.fr>
2720
2721         * tree-chrec.c (eq_evolutions_p): New.
2722         * tree-chrec.h (eq_evolutions_p): Declared.
2723         * tree-data-ref.c: Fix formatting.
2724         (datadep_stats, dependence_stats): New.
2725         (gcd): Moved...
2726         (print_direction_vector): New.
2727         (dump_data_dependence_relation): Use print_direction_vector.
2728         (object_analysis, create_data_ref): Handle COMPONENT_REF.
2729         (compute_subscript_distance): Static.
2730         (initialize_data_dependence_relation): Static.  Get the number
2731         of loops surrounding the references from the callers, and initialize
2732         DDR_SIZE_VECT to nb_loops.  Use both base_addr_differ_p and
2733         base_object_differ_p analyzers.
2734         (analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
2735         compute_overlap_steps_for_affine_1_2,
2736         analyze_subscript_affine_affine): Count the classified dependences.
2737         Print a message when a test failed.
2738         (can_use_analyze_subscript_affine_affine): New.
2739         (analyze_siv_subscript): Compute the data dependences on symbolic
2740         scevs that verify can_use_analyze_subscript_affine_affine.
2741         (chrec_steps_divide_constant_p): Returns true, false, or unknown.
2742         (analyze_miv_subscript): Update use of chrec_steps_divide_constant_p.
2743         Handle symbolic scevs.
2744         (analyze_overlapping_iterations): Let symbolic affine scevs to be
2745         analyzed.
2746         (subscript_dependence_tester): Moved...
2747         (build_classic_dist_vector, build_classic_dir_vector): Don't use
2748         lambda_vector_clear on newly allocated vectors.  Get nb_loops from
2749         DDR_SIZE_VECT instead of getting it in parameter.
2750         (subscript_dependence_tester): ... here.  Take as a parameter
2751         loop_nest_depth.  Call build_classic_dist_vector and
2752         build_classic_dir_vector.
2753         (compute_affine_dependence): Update subscript_dependence_tester
2754         parameters.  Update datadep_stats counters.  Call
2755         compute_subscript_distance.
2756         (compute_self_dependence): Save the dist and dir vectors.  Call
2757         compute_subscript_distance.
2758         (ddr_p, DEF_VEC_P(ddr_p), DEF_VEC_ALLOC_P(ddr_p,heap)): Moved...
2759         (compute_all_dependences): Reorder parameters as they were before
2760         conversion to VEC.  Pass nb_loops and loop_nest_depth.  Don't call
2761         compute_subscript_distance.  Update the use of
2762         compute_affine_dependence and initialize_data_dependence_relation.
2763         (find_data_references_in_loop): Handle COMPONENT_REF.
2764         (compute_data_dependences_for_loop): Initialize dependence_stats.
2765         Don't call build_classic_dist_vector and build_classic_dir_vector.
2766         Update the parameters of initialize_data_dependence_relation and
2767         compute_all_dependences.  Print the statistics from datadep_stats.
2768         (analyze_all_data_dependences): Static.  Not used until the pass for
2769         checking the data dependences is contributed.
2770         * tree-data-ref.h (ddr_p, DEF_VEC_P(ddr_p),
2771         DEF_VEC_ALLOC_P(ddr_p,heap)): ... here.
2772         (initialize_data_dependence_relation, compute_affine_dependence,
2773         analyze_all_data_dependences, compute_subscript_distance): Removed.
2774         (print_direction_vector): New.
2775         * lambda.h (gcd): ... here.
2776         (lambda_vector_gcd): Moved here from gcd_vector.
2777         * lambda-code.c (gcd, gcd_vector): Removed.
2778         (lambda_compute_target_space): Use lambda_vector_gcd.  Fix formatting.
2779         * Makefile.in (tree-vect-patterns.o): Depends on TREE_DATA_REF_H.
2780
2781 2006-02-20  Diego Novillo  <dnovillo@redhat.com>
2782
2783         * ipa-type-escape.c: Tidy some comments and white space.
2784         * tree-ssa-operands.c: Likewise.
2785
2786 2006-02-20  Andrew Pinski  <pinskia@physics.uc.edu>
2787
2788         PR tree-opt/25879
2789         * tree-pretty-print.c (debug_tree_chain): Walk the chains.
2790         (dump_decl_name): Do not walk the decl tree chains.
2791         * tree-pass.h (TDF_CHAIN): Remove.
2792
2793 2006-02-20  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
2794
2795         * Makefile.in (C): Remove
2796         (PROTO): Remove
2797         (.PHONY): Remove C and PROTO
2798
2799 2006-02-20  Roger Sayle  <roger@eyesopen.com>
2800
2801         PR middle-end/26236
2802         * doc/c-tree.texi (INTEGER_TYPE): Remove reference to the now
2803         deprecated CHAR_TYPE tree code.
2804
2805 2006-02-20  Paolo Bonzini  <bonzini@gnu.org>
2806
2807         * configure.ac (target_list): Add install-info, dvi, html.
2808         * configure: Regenerate.
2809
2810         * ada/Make-lang.in, cp/Make-lang.in, fortran/Make-lang.in,
2811         java/Make-lang.in, objc/Make-lang.in, objcp/Make-lang.in,
2812         treelang/Make-lang.in: Do not use double-colon rules.
2813
2814 2006-02-20  Daniel Berlin  <dberlin@dberlin.org>
2815
2816         * tree.h (struct tree_memory_tag): Add is_used_alone member.
2817         (TMT_USED_ALONE): New macro.
2818         * tree-pass.h (PROP_tmt_usage): New property.
2819         (TODO_update_tmt_usage): New todo.
2820         * tree-ssa-alias.c (updating_used_alone): New variable.
2821         (recalculate_used_alone): New function.
2822         (compute_may_aliases): Set updating_used_alone, call
2823         recalculate_used_alone.
2824         * tree-sra.c (pass_sra): Note that this pass destroys
2825         PROP_tmt_usage, and add TODO_update_tmt_usage.
2826         * tree-ssa-forwprop.c (pass_forwprop): Ditto.
2827         * tree-flow.h (updating_used_alone): Prototype.
2828         (recalculate_used_alone): Ditto.
2829         * passes.c (execute_todo): Add code to set updating_used_alone,
2830         and call recalculate.
2831         * tree-ssa-operands.c (add_virtual_operand): Only append bare def
2832         for clobber if used alone, and add assert to verify used_alone
2833         status.
2834
2835 2006-02-20  Angel Nunez Mencias  <anunez@de.ibm.com>
2836
2837         * config/s390/s390.c (legitimize_pic_address): Assertions checking
2838         for non tls symbols added.
2839         (legitimize_address): Do nothing for PLUS expressions if one of the
2840         addends is a tls symbol reference.
2841
2842 2006-02-20  Paolo Bonzini  <bonzini@gnu.org>
2843
2844         PR bootstrap/25476
2845
2846         * Makefile.in (LDFLAGS): Define from autoconf substitution.
2847
2848         * Makefile.in (BOOTSTRAPPING): New.
2849         (quickstrap): New definition if BOOTSTRAPPING=yes.
2850
2851         * Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages.
2852         * configure.ac: Substitute all_selected_languages with the languages
2853         that were configured.  For all the other variables except
2854         lang_specs_files, include all the languages in the tree.
2855         * configure: Regenerate.
2856
2857         * Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory,
2858         if there is one.  Run the commands to run fixincludes in the same
2859         subshell.
2860
2861         * doc/makefile.texi: Document new makefile targets from toplevel bootstrap.
2862         * doc/install.texi: Document exact conventions for searching target tools.
2863         Document --with-build-time-tools.  Document toplevel bootstrap.  Document
2864         something more about building an Ada cross-compiler.  Don't list GNU Make
2865         requirements which affect all platforms.
2866
2867 2006-02-19  Roger Sayle  <roger@eyesopen.com>
2868
2869         PR middle-end/19543
2870         * varasm.c (compare_constant) <INTEGER_CST>: Integer constants are
2871         only equivalent if the have both the same mode and precision.
2872
2873 2006-02-20  Ben Elliston  <bje@au.ibm.com>
2874
2875         * doc/tree-ssa.texi (Interfaces): Describe low vs. high GIMPLE.
2876
2877 2006-02-19  Roger Sayle  <roger@eyesopen.com>
2878             Steven Bosscher  <stevenb.gcc@gmail.com>
2879
2880         * gcse.c (want_to_gcse_p): On STACK_REGS targets, look through
2881         constant pool references to identify stack mode constants.
2882         * rtlanal.c (constant_pool_constant_p): New predicate to check
2883         whether operand is a floating point constant in the pool.
2884         * rtl.h (constant_pool_constant_p): Prototype here.
2885         * loop.c (scan_loop): Avoid hoisting constants from the constant
2886         pool on STACK_REGS targets.
2887         (load_mems): Likewise.
2888         * loop-invariant.c (get_inv_cost): Make hoisting constant pool
2889         loads into x87 registers expensive in terms of register pressure.
2890
2891 2006-02-19  Roger Sayle  <roger@eyesopen.com>
2892
2893         * gthr-posix.h: On Tru64, map __gthr_foo as a weak reference to
2894         __foo and not foo when _PTHREAD_USE_MANGLED_NAMES_ is defined.
2895
2896 2006-02-19  David Edelsohn  <edelsohn@gnu.org>
2897
2898         * config/rs6000/xcoff.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
2899         * config/rs6000/rs6000.c (rs6000_xcoff_asm_output_anchor): Define.
2900
2901 2006-02-19  Daniel Berlin  <dberlin@dberlin.org>
2902
2903         * doc/invoke.texi: Document -fipa-pta.
2904         * common.opt: Add ipa-pta option.
2905         * tree-ssa-structalias.c (DONT_PROPAGATE_WITH_ANYTHING): Removed.
2906         (do_sd_constraint): Enable DONT_PROPAGATE_WITH_ANYTHING code.
2907         (do_ds_constraint): Ditto.
2908         (get_constraint_for): Only add to referenced_vars if
2909         referenced_vars exists.
2910         (insert_into_field_list): Rewrite to do this unsorted.
2911         (insert_into_field_list_sorted): Rename old insert_into_field_list
2912         to this.
2913         (create_function_info_for): Use insert_into_field_list_sorted.
2914         (create_variable_info_for): Rewrite so it uses unsorted version,
2915         since the field list is sorted.
2916         (intra_create_variable_infos): Only add to referenced_vars if
2917         referenced_vars exists.
2918         (ipa_pta_execute): Init heapvars, and delete when done.
2919         * passes.c (init_optimization_passes): Add call to pass_ipa_pta.
2920
2921 2006-02-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2922
2923         * doc/install.texi: Add missing `@samp'.
2924
2925 2006-02-18  Andrew Pinski <pinskia@physics.uc.edu>
2926
2927         * config/rs6000/darwin.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P):
2928         Use the arguments.
2929
2930 2006-02-18  Mark Wielaard  <mark@klomp.org>
2931
2932         * doc/contrib.texi (Contributors): Add classpath/libgcj hackers
2933         who added new 4.1 features, bug fixes and integration support.
2934
2935 2006-02-18  David Edelsohn  <edelsohn@gnu.org>
2936
2937         PR target/26350
2938         * config/rs6000/rs6000.md (extenddftf2): Force 0.0 to validized
2939         MEM for ABI_V4 pic.
2940
2941 2006-02-18  Richard Sandiford  <richard@codesourcery.com>
2942
2943         * cselib.c (cselib_init): Change RTX_SIZE to RTX_CODE_SIZE.
2944         * emit-rtl.c (copy_rtx_if_shared_1): Use shallow_copy_rtx.
2945         (copy_insn_1): Likewise.  Don't copy each field individually.
2946         Reindent.
2947         * read-rtl.c (apply_macro_to_rtx): Use RTX_CODE_SIZE instead
2948         of RTX_SIZE.
2949         * reload1.c (eliminate_regs): Use shallow_copy_rtx.
2950         * rtl.c (rtx_size): Rename variable to...
2951         (rtx_code_size): ...this.
2952         (rtx_size): New function.
2953         (rtx_alloc_stat): Use RTX_CODE_SIZE instead of RTX_SIZE.
2954         (copy_rtx): Use shallow_copy_rtx.  Don't copy each field individually.
2955         Reindent.
2956         (shallow_copy_rtx_stat): Use rtx_size instead of RTX_SIZE.
2957         * rtl.h (rtx_code_size): New variable.
2958         (rtx_size): Change from a variable to a function.
2959         (RTX_SIZE): Rename to...
2960         (RTX_CODE_SIZE): ...this.
2961
2962         PR target/9703
2963         PR tree-optimization/17106
2964         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Document.
2965         (Anchored Addresses): New section.
2966         * doc/invoke.texi (-fsection-anchors): Document.
2967         * doc/rtl.texi (SYMBOL_REF_IN_BLOCK_P, SYMBOL_FLAG_IN_BLOCK): Likewise.
2968         (SYMBOL_REF_ANCHOR_P, SYMBOL_FLAG_ANCHOR): Likewise.
2969         (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): Likewise.
2970         * hooks.c (hook_bool_mode_rtx_false): New function.
2971         * hooks.h (hook_bool_mode_rtx_false): Declare.
2972         * gengtype.c (create_optional_field): New function.
2973         (adjust_field_rtx_def): Add the "block_sym" field for SYMBOL_REFs when
2974         SYMBOL_REF_IN_BLOCK_P is true.
2975         * target.h (output_anchor, use_blocks_for_constant_p): New hooks.
2976         (min_anchor_offset, max_anchor_offset): Likewise.
2977         (use_anchors_for_symbol_p): New hook.
2978         * toplev.c (compile_file): Call output_object_blocks.
2979         (target_supports_section_anchors_p): New function.
2980         (process_options): Check that -fsection-anchors is only used on
2981         targets that support it and when -funit-at-a-time is in effect.
2982         * tree-ssa-loop-ivopts.c (prepare_decl_rtl): Only create DECL_RTL
2983         if the decl doesn't have one.
2984         * dwarf2out.c: Remove instantiations of VEC(rtx,gc).
2985         * expr.c (emit_move_multi_word, emit_move_insn): Pass the result
2986         of force_const_mem through use_anchored_address.
2987         (expand_expr_constant): New function.
2988         (expand_expr_addr_expr_1): Call it.  Use the same modifier when
2989         calling expand_expr for INDIRECT_REF.
2990         (expand_expr_real_1): Pass DECL_RTL through use_anchored_address
2991         for all modifiers except EXPAND_INITIALIZER.  Use expand_expr_constant.
2992         * expr.h (use_anchored_address): Declare.
2993         * loop-unroll.c: Don't declare rtx vectors here.
2994         * explow.c: Include output.h.
2995         (validize_mem): Call use_anchored_address.
2996         (use_anchored_address): New function.
2997         * common.opt (-fsection-anchors): New switch.
2998         * varasm.c (object_block_htab, anchor_labelno): New variables.
2999         (hash_section, object_block_entry_eq, object_block_entry_hash)
3000         (use_object_blocks_p, get_block_for_section, create_block_symbol)
3001         (use_blocks_for_decl_p, change_symbol_section): New functions.
3002         (get_variable_section): New function, split out from assemble_variable.
3003         (make_decl_rtl): Create a block symbol if use_object_blocks_p and
3004         use_blocks_for_decl_p say so.  Use change_symbol_section if the
3005         symbol has already been created.
3006         (assemble_variable_contents): New function, split out from...
3007         (assemble_variable): ...here.  Don't output any code for
3008         block symbols; just pass them to place_block_symbol.
3009         Use get_variable_section and assemble_variable_contents.
3010         (get_constant_alignment, get_constant_section, get_constant_size): New
3011         functions, split from output_constant_def_contents.
3012         (build_constant_desc): Create a block symbol if use_object_blocks_p
3013         says so.  Or into SYMBOL_REF_FLAGS.
3014         (assemble_constant_contents): New function, split from...
3015         (output_constant_def_contents): ...here.  Don't output any code
3016         for block symbols; just pass them to place_section_symbol.
3017         Use get_constant_section and get_constant_alignment.
3018         (force_const_mem): Create a block symbol if use_object_blocks_p and
3019         use_blocks_for_constant_p say so.  Or into SYMBOL_REF_FLAGS.
3020         (output_constant_pool_1): Add an explicit alignment argument.
3021         Don't switch sections here.
3022         (output_constant_pool): Adjust call to output_constant_pool_1.
3023         Switch sections here instead.  Don't output anything for block symbols;
3024         just pass them to place_block_symbol.
3025         (init_varasm_once): Initialize object_block_htab.
3026         (default_encode_section_info): Keep the old SYMBOL_FLAG_IN_BLOCK.
3027         (default_asm_output_anchor, default_use_aenchors_for_symbol_p)
3028         (place_block_symbol, get_section_anchor, output_object_block)
3029         (output_object_block_htab, output_object_blocks): New functions.
3030         * target-def.h (TARGET_ASM_OUTPUT_ANCHOR): New macro.
3031         (TARGET_ASM_OUT): Include it.
3032         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): New macro.
3033         (TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET): New macros.
3034         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): New macro.
3035         (TARGET_INITIALIZER): Include them.
3036         * rtl.c (rtl_check_failed_block_symbol): New function.
3037         * rtl.h: Include vec.h.  Declare heap and gc rtx vectors.
3038         (block_symbol, object_block): New structures.
3039         (rtx_def): Add a block_symbol field to the union.
3040         (BLOCK_SYMBOL_CHECK): New macro.
3041         (rtl_check_failed_block_symbol): Declare.
3042         (SYMBOL_FLAG_IN_BLOCK, SYMBOL_FLAG_ANCHOR): New SYMBOL_REF flags.
3043         (SYMBOL_REF_IN_BLOCK_P, SYMBOL_REF_ANCHOR_P): New predicates.
3044         (SYMBOL_FLAG_MACH_DEP_SHIFT): Bump by 2.
3045         (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): New accessors.
3046         * output.h (output_section_symbols): Declare.
3047         (object_block): Name structure.
3048         (place_section_symbol, get_section_anchor, default_asm_output_anchor)
3049         (default_use_anchors_for_symbol_p): Declare.
3050         * Makefile.in (RTL_BASE_H): Add vec.h.
3051         (explow.o): Depend on output.h.
3052         * config/rs6000/rs6000.c (TARGET_MIN_ANCHOR_OFFSET): Override default.
3053         (TARGET_MAX_ANCHOR_OFFSET): Likewise.
3054         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
3055         (rs6000_use_blocks_for_constant_p): New function.
3056
3057 2006-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3058
3059         * doc/install.texi (hppa*-hp-hpux*): Update for 4.1.0.
3060
3061 2006-02-18  Andrew Pinski  <pinskia@physics.uc.edu>
3062
3063         PR tree-opt/25680
3064         * tree-ssa-ccp.c (ccp_fold): Handle store CCP of REALPART_EXPR and
3065         IMAGPART_EXPR.
3066
3067 2006-02-18  Diego Novillo  <dnovillo@redhat.com>
3068
3069         * tree-flow.h (struct var_ann_d): Rename field is_alias_tag to
3070         is_aliased.
3071         Update all users.
3072
3073 2006-02-18  Jakub Jelinek  <jakub@redhat.com>
3074
3075         PR middle-end/26334
3076         * stmt.c (decl_overlaps_hard_reg_set_p): Use DECL_HARD_REGISTER
3077         instead of DECL_REGISTER.
3078
3079 2006-02-18  Olivier Hainque  <hainque@adacore.com>
3080
3081         PR ada/13408
3082         * pa.h (WIDEST_HARDWARE_FP_SIZE): Define.
3083
3084 2006-02-18  Joseph S. Myers  <joseph@codesourcery.com>
3085
3086         PR target/24837
3087         * config.gcc: Define UCLIBC_DEFAULT to 0 or 1.
3088         * opth-gen.awk: Handle Var and InverseMask together.
3089         * config/linux.opt (muclibc, mglibc): Use Var(linux_uclibc).
3090         * config/linux.h: Use #if not #ifdef for testing UCLIBC_DEFAULT.
3091         (TARGET_C99_FUNCTIONS): Test OPTION_GLIBC not TARGET_GLIBC.
3092         (CHOOSE_DYNAMIC_LINKER): Give an error for -mglibc and -muclibc
3093         used together.
3094         (UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
3095         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
3096         * config/alpha/linux-elf.h (GLIBC_DYNAMIC_LINKER,
3097         UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
3098         LINUX_DYNAMIC_LINKER): Define.
3099         (ELF_DYNAMIC_LINKER): Define to LINUX_DYNAMIC_LINKER.
3100         * config/alpha/linux.h (TARGET_C99_FUNCTIONS): Define to
3101         TARGET_GLIBC.
3102         * config/cris/linux.h (GLIBC_DYNAMIC_LINKER): Define.
3103         (CRIS_LINK_SUBTARGET_SPEC): Pass a -dynamic-linker option.
3104         * config/frv/linux.h (GLIBC_DYNAMIC_LINKER): Define.
3105         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
3106         (TARGET_C99_FUNCTIONS): Don't define.
3107         * config/i386/linux.h (DYNAMIC_LINKER): Rename to
3108         GLIBC_DYNAMIC_LINKER.
3109         (SUBTARGET_EXTRA_SPECS): Use LINUX_DYNAMIC_LINKER.
3110         * config/i386/linux64.h (GLIBC_DYNAMIC_LINKER32,
3111         GLIBC_DYNAMIC_LINKER64): Define.
3112         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
3113         LINUX_DYNAMIC_LINKER64.
3114         * config/ia64/linux.h (GLIBC_DYNAMIC_LINKER): Define.
3115         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
3116         * config/m32r/linux.h (GLIBC_DYNAMIC_LINKE): Define.
3117         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
3118         * config/m68k/linux.h (GLIBC_DYNAMIC_LINKER): Define.
3119         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
3120         * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32,
3121         GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32,
3122         UCLIBC_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKERN32): Define.
3123         (LINK_SPEC): Use LINUX_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKER64
3124         and LINUX_DYNAMIC_LINKER32.
3125         * config/mn10300/linux.h (GLIBC_DYNAMIC_LINKER): Define.
3126         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
3127         * config/pa/pa-linux.h (GLIBC_DYNAMIC_LINKER): Define.
3128         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
3129         * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define to
3130         TARGET_GLIBC.
3131         * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
3132         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64,
3133         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
3134         CHOOSE_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
3135         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
3136         (LINK_OS_LINUX_SPEC32): Use LINUX_DYNAMIC_LINKER32.
3137         (LINK_OS_LINUX_SPEC64): Use LINUX_DYNAMIC_LINKER64.
3138         * config/rs6000/sysv4.h (GLIBC_DYNAMIC_LINKER,
3139         UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
3140         LINUX_DYNAMIC_LINKER): Define.
3141         (LINK_OS_LINUX_SPEC): Use LINUX_DYNAMIC_LINKE.
3142         * config/s390/linux.h (GLIBC_DYNAMIC_LINKER32,
3143         GLIBC_DYNAMIC_LINKER64): Define.
3144         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
3145         LINUX_DYNAMIC_LINKER64.
3146         * config/sh/linux.h (GLIBC_DYNAMIC_LINKER): Define.
3147         (SUBTARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
3148         * config/sparc/linux.h (GLIBC_DYNAMIC_LINKER,
3149         UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
3150         LINUX_DYNAMIC_LINKER): Define.
3151         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
3152         (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
3153         * config/sparc/linux64.h (GLIBC_DYNAMIC_LINKER32,
3154         GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER32,
3155         UCLIBC_DYNAMIC_LINKER64, CHOOSE_DYNAMIC_LINKER,
3156         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
3157         (LINK_ARCH32_SPEC): Use LINUX_DYNAMIC_LINKER32.
3158         (LINK_ARCH64_SPEC, LINK_SPEC): Use LINUX_DYNAMIC_LINKER64.
3159         (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
3160         * config/xtensa/linux.h (GLIBC_DYNAMIC_LINKER): Define.
3161         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
3162         * doc/invoke.texi (-muclibc): Remove caveat about supported
3163         targets.
3164
3165 2006-02-17  Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
3166
3167         * doc/cpp.texi (__TIMESTAMP__): Document.
3168
3169 2006-02-17  Roger Sayle  <roger@eyesopen.com>
3170
3171         PR middle-end/25600
3172         * fold-const.c (fold_binary): Fold (X >> C) != 0 into X < 0 when
3173         C is one less than the width of X (and related transformations).
3174         * simplify-rtx.c (simplify_unary_operation_1): Transform
3175         (neg (lt x 0)) into either (ashiftrt X C) or (lshiftrt X C)
3176         depending on STORE_FLAG_VALUE, were C is one less then the
3177         width of X.
3178
3179 2006-02-17  Daniel Berlin  <dberlin@dberlin.org>
3180
3181         Fix PR tree-optimization/26341
3182         * tree-ssa-operands.c (add_virtual_operand): Remove assert
3183         about NAME_MEMORY_TAG's.
3184
3185 2006-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3186
3187         PR target/26255
3188         * pa.md: Create separate HI and QI move patterns for 32-bit and 64-bit
3189         with hardware float support, and software float support.  Add fcpy
3190         alternative to hardware patterns.  Add alternatives to copy between
3191         general and floating-point registers to the 32-bit pattern.
3192         * pa.c (pa_secondary_reload): Don't abort if reload tries to find a
3193         secondary reload to load a QI or HI mode constant into a floating
3194         point register.
3195         * pa32-regs.h (VALID_FP_MODE_P): Allow QImode and HImode.
3196         * pa64-regs.h (VALID_FP_MODE_P): Likewise.
3197
3198 2006-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
3199
3200         PR target/26272
3201         * config/rs6000/darwin.md (load_macho_picbase_si): Add
3202         pc to the pattern.
3203         (load_macho_picbase_di): Likewise.
3204
3205 2006-02-16  Jeff Law  <law@redhat.com>
3206
3207         * tree-vrp.c (set_value_range_to_nonnegative): New function.
3208         (vrp_expr_computes_nonnegative, ssa_name_nonnegative_p): Likewise.
3209         (ssa_name_nonzero_p): Likewise.
3210         (get_value_range): Return NULL if VRP is not running.
3211         (extract_range_from_expr): Fallback to tree_expr_XXX_p if
3212         VRP routines do not discover a range.
3213         (vrp_finalize): Clear VR_VALUE to indicate VRP is not running.
3214         * tree.h (ssa_name_nonzero_p, ssa_name_nonnegative_p): Prototype.
3215         * fold-const.c (tree_expr_nonzero_p): For SSA_NAMEs, query VRP.
3216         (tree_expr_nonnegative_p): Similarly.
3217         * tree-ssa-dom.c (nonzero_vars, nonzero_vars_stack): Remove.
3218         (restore_nonzero_vars_to_original_value): Remove.
3219         (unsafe_associative_fp_binop): Remove.
3220         (tree_ssa_dominator_optimize): Remove initialization and
3221         finalization of nonzero_vars and nonzero_vars_stack.
3222         (dom_opt_initialize_block): No longer push marker on
3223         nonzero_vars_stack.
3224         (dom_opt_finalize_block): No longer call
3225         restore_nonzero_vars_to_original_value.
3226         (record_equivalences_from_phis): No longer look for
3227         nonzero PHI arguments.
3228         (cprop_into_successor_phis): No longer propagate nonzero
3229         property into PHI arguments.  Lose unused argument.  Caller
3230         updated.
3231         (record_equivalences_from_stmt): No longer record nonzero
3232         values for SSA_NAMEs.
3233         (lookup_avail_expr): No longer use nonzero_vars.
3234
3235         * stor-layout.c (set_sizetype): Set TYPE_MAX_VALUE properly
3236         for sizetype when sizetype is unsigned.
3237
3238 2006-02-16  Denis Nagorny <denis_nagorny@linux.intel.com>
3239
3240         PR rtl-optimization/25603
3241         * reload.c (reg_inc_found_and_valid_p): New. Check REG_INC note.
3242         (regno_clobbered_p): Use it. Reusing SETS argument for REG_INC case.
3243         * reload1.c (choose_reload_regs): Added call of regno_clobbered_p
3244         with new meaning of SETS.
3245
3246 2006-02-16  Joseph S. Myers  <joseph@codesourcery.com>
3247
3248         PR target/20353
3249         PR target/24578
3250         PR target/24837
3251         * config/linux.opt: New file.
3252         * config/linux.h (CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
3253         LINUX_DYNAMIC_LINKER): Define.
3254         (TARGET_C99_FUNCTIONS): Define depending on TARGET_GLIBC.
3255         * config.gcc (*-*-linux*): Define extra_options.
3256         (*-*-*uclibc*): Define UCLIBC_DEFAULT.
3257         (arm*-*-linux-gnueabi): Change to arm*-*-linux-*eabi.
3258         * config/arm/linux-eabi.h (LINUX_TARGET_INTERPRETER): Change to
3259         GLIBC_DYNAMIC_LINKER.
3260         * config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): Likewise.
3261         (LINUX_TARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
3262         * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Define.
3263         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
3264         * doc/invoke.texi (GNU/Linux Options): New section.
3265
3266 2006-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
3267
3268         * config/sparc/sparc.md (setjmp): Rewrite.
3269         (setjmp_32): Delete.
3270         (setjmp_64): Likewise.
3271
3272 2006-02-16  Daniel Berlin <dberlin@dberlin.org>
3273
3274         * tree-ssa-operands.c (access_can_touch_variable): Fix typo in
3275          previous change.
3276
3277 2006-02-16  Zdenek Dvorak <dvorakz@suse.cz>
3278
3279         * loop-invariant.c (invariant_for_use, check_dependencies): Fail for
3280         read-write uses.
3281
3282 2006-02-16  Zdenek Dvorak <dvorakz@suse.cz>
3283
3284         PR rtl-optimization/26296
3285         * Makefile.in (loop-invariant.c): Add except.h dependency.
3286         * loop-invariant.c: Include except.h.
3287         (find_invariant_insn): Ignore insns satisfying can_throw_internal.
3288
3289 2005-02-16  Paul Brook  <paul@codesourcery.com>
3290
3291         * reload1.c (emit_reload_insns): Invalidate dead input registers used
3292         for reloads.
3293
3294 2006-02-16  Bernd Schmidt  <bernd.schmidt@analog.com>
3295
3296         PR rtl-optimization/25636
3297         * local-alloc.c (update_equiv_regs): Lose a bogus rtx_equal_p test
3298         when deciding whether an insn is an initializing insn.
3299
3300 2006-02-15 Daniel Berlin  <dberlin@dberlin.org>
3301
3302         * tree.c (init_ttree): Add STRUCT_FIELD_TAG handling.
3303         (tree_code_size): Ditto.
3304         * tree.h (struct tree_memory_tag): Remove parent_var.
3305         (struct tree_struct_field_tag): New.
3306         (SFT_OFFSET): New.
3307         (SFT_SIZE): New.
3308         (union tree_node): Add sft member.
3309         * tree-ssa-alias.c (get_tmt_for): Don't handle TYPE_READONLY
3310         specially here.
3311         (create_sft): Add size and offset argument, set SFT_OFFSET and
3312         SFT_SIZE.
3313         (create_overlap_variables_for): Update for SFT_OFFSET/SFT_SIZE.
3314         * treestruct.def: Add TS_STRUCT_FIELD_TAG.
3315         * tree-flow-inline.h (get_subvar_at): Update for
3316         SFT_OFFSET/SFT_SIZE.
3317         (var_can_have_subvars): Ditto.
3318         (overlap_subvar): Ditto.
3319         * print-tree.c (print_node): Print out interesting things for
3320         SFT's.
3321         * tree-flow.h (struct subvar): Remove offset and size members.
3322         * tree-ssa-operands.c (get_expr_operands): Update for
3323         get_indirect_ref_operands changes.
3324         (get_indirect_ref_operands): Call add_virtual_operand instead of
3325         add_stmt_operand.  Only recurse on base var if requested.
3326         (access_can_touch_variable): New function.
3327         (add_stmt_operand): Split virtual operand handling into ...
3328         (add_virtual_operand): Here.  Add offset, size, and for_clobber
3329         arguments.  Prune alias sets.
3330         (add_call_clobber_ops): Call add_virtual_operand.
3331
3332 2006-02-15  Jakub Jelinek  <jakub@redhat.com>
3333
3334         PR middle-end/26300
3335         * combine.c (make_extraction): Bail out if ORIG_POS is negative.
3336
3337         * tree.h (struct tree_omp_clause): Use OMP_CLAUSE_CODE rather
3338         than TREE_CODE as index into omp_clause_num_ops array.
3339
3340 2006-02-15  Uttam Pawar  <uttamp@us.ibm.com>
3341
3342         PR rtl-optimization/26184
3343         * modulo-sched.c (generate_reg_moves): Free bitmap vector
3344         uses_of_defs.
3345         * modulo-sched.c (sms_schedule): Free g_arr pointer.
3346         * modulo-sched.c (sms_schedule_by_order): Free bitmap pointers
3347         must_precede, must_follow and tobe_scheduled.
3348
3349         PR other/26147
3350         * opts.c (common_handle_option): Free new_option pointer.
3351         * df-core.c (df_analyze): Free postorder pointer.
3352
3353 2006-02-15  Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
3354
3355         * Makefile.in: Fix the examples about the use of stamps
3356
3357 2006-02-15  Michael Matz  <matz@suse.de>
3358
3359         PR middle-end/22275
3360
3361         * stor-layout.c (layout_decl): Zero-width bitfields aren't
3362         influenced by maximum_field_alignment or DECL_PACKED.
3363         (update_alignment_for_field): Ditto.
3364         (place_field): Ditto.
3365         * doc/extend.texi (<#pragma pack>, <Type Attributes>): Document
3366         this behaviour.
3367
3368 2006-02-15  Paolo Bonzini  <bonzini@gnu.org>
3369
3370         * cfg.c (dump_flow_info): Get dump flags as an additional parameter.
3371         (debug_flow_info): Pass it.
3372         * alias.c (rest_of_handle_cfg): Adjust calls to dump_flow_info.
3373         * bb-reorder.c (reorder_basic_blocks): Likewise.
3374         * cfgcleanup.c (rest_of_handle_jump2): Likewise.
3375         * cse.c (rest_of_handle_cse, rest_of_handle_cse2): Likewise.
3376         * flow.c (life_analysis, recompute_reg_usage): Likewise.
3377         * gcse.c (gcse_main, bypass_jumps): Likewise.
3378         * ifcvt.c (rest_of_handle_if_conversion): Likewise.
3379         * local-alloc.c (rest_of_handle_local_alloc): Likewise.
3380         * loop-init.c (rtl_loop_init, rtl_loop_done): Likewise.
3381         * profile.c (compute_branch_probabilities, branch_prob): Likewise.
3382         * rtl.h (dump_flow_info): Adjust prototype.
3383         * tracer.c (rest_of_handle_tracer, tracer): Likewise.
3384         * var-tracking.c (variable_tracking_main): Likewise.
3385         * passes.c (execute_todo): Obey TDF_BLOCKS for RTL.
3386         * tree-dump.c (enable_rtl_dump_file): Enable the details and blocks
3387         options.
3388
3389 2006-02-15  Marcin Dalecki <martin@dalecki.de>