OSDN Git Service

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