OSDN Git Service

* config/i386/i386.c (ix86_delegitimize_address): Handle Darwin
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2006-03-07  Geoffrey Keating  <geoffk@apple.com>
2
3         * config/i386/i386.c (ix86_delegitimize_address): Handle Darwin
4         addresses with offsets; reorganize.
5
6         * dwarf2out.c (DWARF2_FRAME_REG_OUT): Move up in file.
7         (expand_builtin_dwarf_sp_column): Call DWARF2_FRAME_REG_OUT.
8         (expand_builtin_init_dwarf_reg_sizes): Likewise.
9
10 2006-03-08  David Billinghurst <David.Billinghurst@riotinto.com>
11
12         PR target/26588
13         * config/i386/cygwin.h (GOMP_SELF_SPECS): Define.
14
15 2006-03-08  Ben Elliston  <bje@au.ibm.com>
16
17         * config/fp-bit.h (CMPtype): Typedef to a word mode integer.
18
19 2006-03-07  Aldy Hernandez  <aldyh@redhat.com>
20
21         PR gomp/26238
22         * doc/passes.texi (Tree-SSA passes): Document omp lowering and
23         expansion.
24
25 2006-03-07  Richard Guenther  <rguenther@suse.de>
26
27         PR tree-optimization/26587
28         * tree-ssa-structalias.c (handle_ptr_arith): Handle MINUS_EXPR.
29
30 2006-03-07  Richard Sandiford  <richard@codesourcery.com>
31
32         * varasm.c (assemble_variable): Fix setting of DECL_IN_TEXT_SECTION.
33
34 2006-03-07  Richard Sandiford  <richard@codesourcery.com>
35
36         * hooks.c (hook_bool_mode_rtx_true): New function.
37         * hooks.h (hook_bool_mode_rtx_true): Declare.
38         * toplev.c (compile_file): Call output_shared_constant_pool.
39         * varasm.c (shared_constant_pool): New variable.
40         (assemble_start_function, assemble_end_function): Remove arguments
41         from call to output_constant_pool.
42         (create_constant_pool): New function, split out from...
43         (init_varasm_status): ...here.
44         (force_const_mem): Choose between the shared and per-function constant
45         pools.  Set current_function_uses_const_pool when reusing old entries
46         as well as when creating new ones.
47         (mark_constant): Ignore data argument.
48         (mark_constants): Remove pool argument.
49         (mark_constant_pool): Likewise.  Use current_function_uses_const_pool
50         to decide whether the function uses a constant pool.
51         (output_constant_pool_contents): New function, split out from...
52         (output_constant_pool): ...here.
53         (output_shared_constant_pool): New function.
54         (init_varasm_once): Initialize shared_constant_pool.
55         * output.h (output_constant_pool): Delete.
56         (output_shared_constant_pool): Declare.
57         * config/s390/s390-protos.h (s390_output_constant_pool): Delete.
58         * config/i386/i386.c (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Override.
59
60 2006-03-06  Nick Clifton  <nickc@redhat.com>
61
62         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove reference to
63         flag_strength_reduce.
64
65 2006-03-06  Ben Elliston  <bje@au.ibm.com>
66
67         * config.gcc: Add t-dfprules to $tmake_file for i*86-*-linux* and
68         x86_64-*-linux* configurations.
69
70         * config/dfp-bit.h (CMPtype): Typedef to a word mode integer.
71         (LIBGCC2_WORDS_BIG_ENDIAN): Define.
72
73 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
74
75         * tree-ssa-threadupdate.c (rediscover_loops_after_threading):
76         Remove.
77         * basic-block.h: Remove the extern for
78         rediscover_loops_after_threading.
79
80         * cfgloop.c (cancel_loop): Make it static.
81         * cfgloop.h: Remove the prototype for cancel_loop.
82
83         * flow.c (recompute_reg_usage): Make it static.
84         * rtl.h: Remove the prototype for recompute_reg_usage.
85
86         * function.c (use_return_register): Make it static.
87         * function.h: Remove the prototype.
88
89 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
90
91         * recog.c (volatile_mem_p, validate_change_maybe_volatile):
92         Remove.
93         * recog.h: Remove the prototype for
94         validate_change_maybe_volatile.
95
96 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
97
98         * rtlanal.c (replace_reg): Remove.
99         * rtl.h: Remove the prototype for replace_reg.
100
101 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
102
103         * regclass.c (reg_scan_update): Remove.
104         (reg_scan_mark_refs): Remove the last argument.
105         * rtl.h: Remove the prototype for reg_scan_update.
106
107 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
108
109         * builtins.c, c-pragma.h, c-typeck.c, cgraph.c, cgraphunit.c,
110         combine.c, common.opt, config/dfp-bit.c, config/i386/i386.c,
111         config/m68k/m68k.c, config/m68k/m68k.md, config/mt/mt.c,
112         config/mt/mt.h, config/s390/s390.md, df-core.c, df-problems.c,
113         df-scan.c, df.h, diagnostic.c, expr.c, function.h, gimplify.c,
114         loop-invariant.c, omp-low.c, opts.c, passes.c,
115         rtl-factoring.c, rtlanal.c, struct-equiv.c, tree-cfgcleanup.c,
116         tree-ssa-loop-niter.c, tree-ssa-loop-prefetch.c,
117         tree-ssa-structalias.c, tree-ssa-threadedge.c,
118         tree-ssa-threadupdate.c, tree-vect-patterns.c,
119         tree-vect-transform.c, tree-vectorizer.h, tree-vrp.c,
120         unwind-dw2.c: Fix comment typos.  Follow spelling conventions.
121
122 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
123
124         * dwarf2out.c (dwarf2out_add_library_unit_info): Remove.
125         * dwarf2out.h: Remove the prototype for
126         dwarf2out_add_library_unit_info.
127
128 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
129
130         * tree.c (add_var_to_bind_expr): Remove.
131         * tree.h: Remove the prototype for add_var_to_bind_expr.
132
133 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
134
135         * regclass.c (n_non_fixed_regs): Remove.
136         (init_reg_sets_1, globalize_reg): Remove all uses of
137         n_non_fixed_regs.
138         * hard-reg-set.h: Remove the extern for n_non_fixed_regs.
139
140 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
141
142         * rtlanal.c (insns_safe_to_move_p): Remove.
143         * rtl.h: Remove the prototype for insns_safe_to_move_p.
144
145 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
146
147         * expmed.c (expand_mult_add): Remove.
148         * expr.h: Remove the prototype for expand_mult_add.
149
150 2006-03-04  Jakub Jelinek  <jakub@redhat.com>
151
152         * unwind-dw2.h (_Unwind_FrameState): Add REG_SAVED_VAL_OFFSET
153         and REG_SAVED_VAL_EXP constants.
154         * unwind-dw2.c (struct _Unwind_Context): Add by_value array.
155         (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
156         Handle regs stored by value.
157         (_Unwind_SetGRValue, _Unwind_GRByValue): New functions.
158         (execute_cfa_program): Handle DW_CFA_val_offset,
159         DW_CFA_val_offset_sf and DW_CFA_val_expression.
160         (uw_update_context_1): Handle REG_SAVED_REG with regs stored by
161         value specially.  Handle REG_SAVED_VAL_OFFSET and REG_SAVED_VAL_EXP.
162         (uw_install_context_1): Handle target regs stored by value.
163
164 2006-03-03  Daniel Berlin  <dberlin@dberlin.org>
165
166         * tree-sra.c (tree_sra): Return todoflags;
167         (generate_one_element): Set TODO_update_smt_usage if needed.
168         (pass_sra): Remove TODO_update_smt_usage.
169         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Add some
170         parameter.
171         (tree_ssa_forward_propagate_single_use_vars): Return
172         TODO_update_smt_usage if we need to update SMT usage.
173         (pass_forwprop): Remove TODO_update_smt_usage.
174         
175 2006-03-03  Diego Novillo  <dnovillo@redhat.com>
176
177         * tree-ssa-operands.c: Tidy whitespace.  Fix spelling.
178         (correct_use_link): Remove reference to get_stmt_operands.
179         (update_stmt_operands): Likewise.
180         (get_modify_expr_operands): New function factored out of
181         parse_ssa_operands and get_expr_operands.
182         Try to create V_MUST_DEFs for LHS by default.
183         (get_expr_operands) <case MODIFY_EXPR>: Call
184         get_modify_expr_operands.
185         <case ARRAY_RANGE_REF>: Handle together with ARRAY_REF.
186         <case BIT_FIELD_REF>: Clear opf_kill_def from FLAGS.
187         (parse_ssa_operands) <case MODIFY_EXPR>: Call
188         get_modify_expr_operands.
189
190 2006-03-03  Kazu Hirata  <kazu@codesourcery.com>
191
192         * tree-dfa.c (referenced_var_lookup_if_exists): Remove.
193         * tree-flow.h: Remove the prototype for
194         referenced_var_lookup_if_exists.
195
196 2006-03-03  Steve Ellcey  <sje@cup.hp.com>
197
198         PR rtl-optimization/26345
199         PR target/19061
200         * config/ia64/predicates.md (basereg_operand): Don't look in subregs.
201
202 2006-03-03  Roger Sayle  <roger@eyesopen.com>
203
204         PR tree-optimization/26524
205         * tree-scalar-evolution.c (interpret_rhs_modify_expr): Use
206         fold_convert to create a constant of the appropriate type.
207
208 2006-03-03  Richard Sandiford  <richard@codesourcery.com>
209
210         * doc/tm.texi: Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
211         SYMBOL_REF_IN_BLOCK_P.
212         * doc/rtl.texi: Likewise.  Refer to SYMBOL_FLAG_HAS_BLOCK_INFO instead
213         of SYMBOL_FLAG_IN_BLOCK.
214         * gengtype.c (adjust_field_rtx_def): Use SYMBOL_REF_HAS_BLOCK_INFO_P
215         instead of SYMBOL_REF_IN_BLOCK_P.
216         * explow.c (use_anchored_address): Likewise.
217         * rtl.c (rtx_size): Likewise.
218         * varasm.c (create_block_symbol): Set SYMBOL_FLAG_HAS_BLOCK_INFO
219         instead of SYMBOL_FLAG_IN_BLOCK.
220         (make_decl_rtl): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
221         SYMBOL_REF_IN_BLOCK_P.
222         (assemble_variable): Likewise.
223         (output_constant_def_contents): Likewise.
224         (output_constant_pool): Likewise.
225         (default_encode_section_info): Preserve SYMBOL_FLAG_HAS_BLOCK_INFO
226         instead of SYMBOL_FLAG_IN_BLOCK.
227         * rtl.h (block_symbol): Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
228         SYMBOL_REF_IN_BLOCK_P.
229         (SYMBOL_REF_BLOCK): Likewise.
230         (SYMBOL_REF_OFFSET): Likewise.
231         (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
232         SYMBOL_REF_IN_BLOCK_P.
233         (SYMBOL_FLAG_IN_BLOCK): Replace with...
234         (SYMBOL_FLAG_HAS_BLOCK_INFO): ...this.
235         (SYMBOL_REF_IN_BLOCK_P): Replace with...
236         (SYMBOL_REF_HAS_BLOCK_INFO_P): ...this.
237
238 2006-03-03  Jakub Jelinek  <jakub@redhat.com>
239
240         * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Fix pasto.
241
242 2006-03-02  Roger Sayle  <roger@eyesopen.com>
243
244         * simplify-rtx.c (simplify_unary_operation): When simplifying
245         (neg (lt X 0)) into (ashiftrt X C) or (lshiftrt X C), make sure
246         that we perform the right shift in the appropriate mode, and
247         then extend or truncate the result to requested mode.
248
249 2006-03-03  Zdenek Dvorak <dvorakz@suse.cz>
250
251         * gengtype.c (main): Handle double_int type.
252         * tree.h (struct tree_int_cst): Make type of int_cst double_int.
253         * double-int.c: New file.
254         * double-int.h: New file.
255         * system.h: Include doubleint.h.
256         * Makefile.in (SYSTEM_H): Include double-int.h.
257         (double-int.o): Add.
258
259 2006-03-03  Joseph S. Myers  <joseph@codesourcery.com>
260
261         PR bootstrap/26478
262         * Makefile.in (stmp-int-hdrs): Remove include/unwind.h before
263         copying over it.
264
265 2006-03-02  Zdenek Dvorak <dvorakz@suse.cz>
266
267         * tree-vrp.c (remove_range_assertions): Do not update statements
268         unnecessarily.
269
270 2006-03-02  Zdenek Dvorak <dvorakz@suse.cz>
271
272         * cse.c (rest_of_handle_cse): Do not pass CLEANUP_PRE_LOOP to cfg
273         cleanup.
274         * gcse.c (rest_of_handle_gcse): Ditto.
275         * except.c (gate_handle_eh): Ditto.
276         * cfgcleanup.c (rest_of_handle_jump2): Ditto.
277         * basic-block.h (CLEANUP_PRE_LOOP): Remove.
278
279 2006-03-02  Eric Christopher  <echristo@apple.com>
280
281         * config/i386/i386.c (machopic_output_stub): Add indirection to
282         jump.
283
284 2006-03-02  Zdenek Dvorak <dvorakz@suse.cz>
285
286         * loop.c: Removed.
287
288 2006-03-02  David S. Miller  <davem@sunset.davemloft.net>
289
290         Sun Niagara specific optimizations.
291         * config.gcc: Recognize niagara as target.
292         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Mention Niagara.
293         (TARGET_CPU_niagara): Define.
294         (CPP_CPU64_DEFAULT_SPEC): Define __sparc_v9__ for Niagara.
295         (ASM_CPU64_DEFAULT_SPEC): Pass -Av9b for Niagara.
296         (CPP_CPU_SPEC): Handle -mcpu=niagara.
297         (ASM_CPU_SPEC): Likewise.
298         (PROCESSOR_NIAGARA): New enum entry.
299         (REGISTER_MOVE_COST): Handle Niagara.
300         (BRANCH_COST, PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES): Likewise.
301         * config/sparc/sparc.c (niagara_costs): New processor_costs entry.
302         (sparc_override_options): Recognize "niagara", set appropriate
303         default MASK_* values for it, and align functions to 32-bytes
304         by default just like ULTRASPARC/ULTRASPARC3.
305         (sparc_initialize_trampoline): Handle niagara like ultrasparc.
306         (sparc64_initialize_trampoline): Likewise.
307         (sparc_use_sched_lookahead): Use zero for niagara.
308         (sparc_issue_rate): Use one for niagara.
309         * config/sparc/niagara.md: New file.
310         * config/sparc/sparc.md: Include it.
311         * config/sparc/sol2-bi.h (CPP_CPU64_DEFAULT_SPEC,
312         ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Set appropriately
313         when default cpu is niagara.
314         (CPP_CPU_SPEC): Handle -mcpu=niagara.
315         (ASM_CPU_SPEC): Likewise.
316         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Set appropriately
317         when default cpu is niagara.
318         (ASM_CPU_SPEC): Handle -mcpu=niagara.
319         * config/sparc/linux64.h: Handle a default of TARGET_CPU_niagara
320         just like v9/ultrasparc/ultrasparc3.
321         * doc/invoke.texi: Add documentation for "niagara" and improve
322         existing documentation for ultrasparc variants.
323
324 2006-03-02  Diego Novillo  <dnovillo@redhat.com>
325
326         * tree-ssa-operands.c (update_stmt_operands): Update documentation.
327
328 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
329
330         * doc/tm.texi (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Document.
331         (ASM_OUTPUT_BSS): Describe the two ways of handling global BSS,
332         and say that only one is needed.
333         * doc/rtl.texi (SYMBOL_REF_BLOCK): Say that the block can be null.
334         * target.h (have_switchable_bss_sections): New hook.
335         * explow.c (use_anchored_address): Check that the symbol is in a block.
336         * varasm.c (tls_comm_section, comm_section, lcomm_section)
337         (bss_noswitch_section): New variables.
338         (get_unnamed_section): Add SECTION_UNNAMED to the flags.
339         (get_noswitch_section): New function.
340         (get_block_for_section): Allow SECT to be null.
341         (unlikely_text_section_p): Use SECTION_STYLE.
342         (bss_initializer_p): New function.
343         (get_variable_section): Move earlier in file.  Take a new argument,
344         prefer_noswitch_p.  Move bss checks from assemble_variable to here.
345         Return one of the new *_sections in such cases.
346         (get_block_for_decl): New function, extracting some logic from
347         use_blocks_for_decl_p.
348         (change_symbol_section): Remove in favor of...
349         (change_symbol_block): ...this new function.
350         (use_blocks_for_decl_p): Remove checks now performed by
351         get_block_for_decl.
352         (make_decl_rtl): Use change_symbol_block and get_block_for_decl.
353         (ASM_EMIT_LOCAL, ASM_EMIT_BSS, ASM_EMIT_COMMON): Delete in favor of...
354         (emit_local, emit_bss, emit_common): ...these new functions.
355         Return true if the alignment was honored.
356         (emit_tls_common): New function.
357         (asm_emit_uninitialised): Delete.
358         (assemble_variable_noswitch): New function, split out from...
359         (assemble_variable): ...here.  Don't make decisions about common
360         variables here.  Globalize all public decls that go into non-common
361         sections.  Check whether SYMBOL_REF_BLOCK is null.
362         (output_constant_def_contents): Check whether SYMBOL_REF_BLOCK is null.
363         (output_constant_pool): Likewise.
364         (init_varasm_once): Initialize the new section variables.
365         (have_global_bss_p): New function.
366         (categorize_decl_for_section): Use bss_initializer_p.
367         (switch_to_section): Use SECTION_STYLE.  Abort for SECTION_NOSWITCH.
368         (place_block_symbol): Assert that the symbol must be in a block.
369         * target-def.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): New macro.
370         (TARGET_INITIALIZER): Include it.
371         * rtl.h (SYMBOL_REF_BLOCK): Document the null alternative.
372         * output.h (SECTION_STYLE_MASK, SECTION_COMMON): New macros.
373         (SECTION_MACH_DEP): Bump by two.
374         (SECTION_UNNAMED, SECTION_NOSWITCH): New macros.
375         (unnamed_section): Mention SECTION_UNNAMED in comment.
376         (named_section): Likewise SECTION_NAMED.
377         (noswitch_section_callback): New type.
378         (noswitch_section): New structure.
379         (section): Add a noswitch_section alternative.
380         (SECTION_STYLE): New macro.
381         (tls_comm_section, comm_section, lcomm_section): Declare.
382         (bss_noswitch_section, have_global_bss_p): Declare.
383         * config/elfos.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
384         * config/iq2000/iq2000.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
385         Override.
386         * config/v850/v850.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
387         * config/stormy16/stormy16.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
388         Override.
389
390 2006-03-02  Daniel Berlin <dberlin@dberlin.org>
391
392         * gcc/tree-vrp.c (execute_vrp): Return value.
393         * gcc/regrename.c (rest_of_handle_regrename): Ditto.
394         * gcc/tree-into-ssa.c (rewrite_into_ssa): Ditto.
395         * gcc/tree-complex.c (tree_lower_complex): Ditto.
396         (tree_lower_complex_O0): Ditto.
397         * gcc/tracer.c (rest_of_handle_tracer): Ditto.
398         * gcc/postreload-gcse.c (rest_of_handle_gcse2): Ditto.
399         * gcc/postreload.c (rest_of_handle_postreload): Ditto.
400         * gcc/tree-tailcall.c (execute_tail_recursion): Ditto.
401         (execute_tail_calls): Ditto.
402         * gcc/tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
403         * gcc/tree.h (init_function_for_compilation): Ditto.
404         * gcc/ipa-cp.c (ipcp_driver): Ditto.
405         * gcc/tree-scalar-evolution.c (scev_const_prop): Ditto.
406         * gcc/tree-scalar-evolution.h (scev_const_prop): Ditto.
407         * gcc/final.c (compute_alignments): Ditto.
408         (rest_of_handle_final): Ditto.
409         (rest_of_handle_shorten_branches): Ditto.
410         (rest_of_clean_state): Ditto.
411         * gcc/omp-low.c (execute_expand_omp): Ditto.
412         (execute_lower_omp): Ditto.
413         * gcc/tree-ssa-dse.c (tree_ssa_dse): Ditto.
414         * gcc/ipa-reference.c (static_execute): Ditto.
415         * gcc/tree-ssa-uncprop.c (tree_ssa_uncprop): Ditto.
416         * gcc/reorg.c (rest_of_handle_delay_slots): Ditto.
417         (rest_of_handle_machine_reorg): Ditto.
418         * gcc/cgraphunit.c (rebuild_cgraph_edges): Ditto.
419         * gcc/flow.c (recompute_reg_usage): Ditto.
420         (rest_of_handle_remove_death_notes): Ditto.
421         (rest_of_handle_life): Ditto.
422         (rest_of_handle_flow2): Ditto.
423         * gcc/tree-ssa-copyrename.c (rename_ssa_copies): Ditto.
424         * gcc/tree-ssa-ccp.c (do_ssa_ccp): Ditto.
425         (do_ssa_store_ccp): Ditto.
426         (execute_fold_all_builtins): Ditto.
427         * gcc/mode-switching.c (rest_of_handle_mode_switching): Ditto.
428         * gcc/modulo-sched.c (rest_of_handle_sms): Ditto.
429         * gcc/ipa-pure-const.c (static_execute): Ditto.
430         * gcc/cse.c (rest_of_handle_cse): Ditto.
431         (rest_of_handle_cse2): Ditto.
432         * gcc/web.c (rest_of_handle_web): Ditto.
433         * gcc/tree-stdarg.c (execute_optimize_stdarg): Ditto.
434         * gcc/tree-ssa-math-opts.c (execute_cse_reciprocals): Ditto.
435         * gcc/tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto.
436         * gcc/tree-nrv.c (tree_nrv): Ditto.
437         (execute_return_slot_opt): Ditto.
438         * gcc/tree-ssa-alias.c (compute_may_aliases): Ditto.
439         (create_structure_vars): Ditto.
440         * gcc/loop-init.c (rtl_loop_init): Ditto.
441         (rtl_loop_done): Ditto.
442         (rtl_move_loop_invariants): Ditto.
443         (rtl_unswitch): Ditto.
444         (rtl_unroll_and_peel_loops): Ditto.
445         (rtl_doloop): Ditto.
446         * gcc/gimple-low.c (lower_function_body): Ditto.
447         (mark_used_blocks): Ditto.
448         * gcc/tree-ssa-sink.c (execute_sink_code): Ditto.
449         * gcc/ipa-inline.c (cgraph_decide_inlining): Ditto.
450         (cgraph_early_inlining): Ditto.
451         * gcc/global.c (rest_of_handle_global_alloc): Ditto.
452         * gcc/jump.c (cleanup_barriers): Ditto.
453         (purge_line_number_notes): Ditto.
454         * gcc/ifcvt.c (rest_of_handle_if_conversion): Ditto.
455         (rest_of_handle_if_after_reload): Ditto.
456         * gcc/tree-ssa-loop.c (tree_ssa_loop_init): Ditto.
457         (tree_ssa_loop_im): Ditto.
458         (tree_ssa_loop_unswitch): Ditto.
459         (tree_vectorize): Ditto.
460         (tree_linear_transform): Ditto.
461         (tree_ssa_loop_ivcanon): Ditto.
462         (tree_ssa_empty_loop): Ditto.
463         (tree_ssa_loop_bounds): Ditto.
464         (tree_complete_unroll): Ditto.
465         (tree_ssa_loop_prefetch): Ditto.
466         (tree_ssa_loop_ivopts): Ditto.
467         (tree_ssa_loop_done): Ditto.
468         * gcc/predict.c (tree_estimate_probability): Ditto.
469         * gcc/recog.c (split_all_insns_noflow): Ditto.
470         (rest_of_handle_peephole2): Ditto.
471         (rest_of_handle_split_all_insns): Ditto.
472         * gcc/tree-eh.c (lower_eh_constructs): Ditto.
473         * gcc/regmove.c (rest_of_handle_regmove): Ditto.
474         (rest_of_handle_stack_adjustments): Ditto.
475         * gcc/local-alloc.c (rest_of_handle_local_alloc): Ditto.
476         * gcc/function.c (instantiate_virtual_regs): Ditto.
477         (init_function_for_compilation): Ditto.
478         (rest_of_handle_check_leaf_regs): Ditto.
479         * gcc/gcse.c (rest_of_handle_jump_bypass): Ditto.
480         (rest_of_handle_gcse): Ditto.
481         * gcc/ipa-type-escape.c (type_escape_execute): Ditto.
482         * gcc/alias.c (rest_of_handle_cfg): Ditto.
483         * gcc/tree-if-conv.c (main_tree_if_conversion): Ditto.
484         * gcc/profile.c (rest_of_handle_branch_prob): Ditto.
485         * gcc/tree-ssa-phiopt.c (tree_ssa_phiopt): Ditto.
486         * gcc/rtl-factoring.c (rest_of_rtl_seqabstr): Ditto.
487         * gcc/bt-load.c (rest_of_handle_branch_target_load_optimize): Ditto
488         * gcc/tree-dfa.c (find_referenced_vars): Ditto.
489         * gcc/except.c (set_nothrow_function_flags): Ditto.
490         (convert_to_eh_region_ranges): Ditto.
491         (rest_of_handle_eh): Ditto.
492         * gcc/emit-rtl.c (unshare_all_rtl): Ditto.
493         (remove_unnecessary_notes): Ditto.
494         * gcc/except.h (set_nothrow_function_flags): Ditto.
495         (convert_to_eh_region_ranges): Ditto.
496         * gcc/cfgexpand.c (tree_expand_cfg): Ditto.
497         * gcc/tree-cfgcleanup.c (merge_phi_nodes): Ditto.
498         * gcc/tree-ssa-pre.c (do_pre): Ditto.
499         (execute_fre): Ditto.
500         * gcc/cfgcleanup.c (rest_of_handle_jump): Ditto.
501         (rest_of_handle_jump2): Ditto.
502         * gcc/tree-sra.c (tree_sra): Ditto.
503         * gcc/tree-mudflap.c (execute_mudflap_function_ops): Ditto.
504         (execute_mudflap_function_decls): Ditto.
505         * gcc/tree-ssa-copy.c (do_copy_prop): Ditto.
506         (do_store_copy_prop): Ditto.
507         * gcc/ipa-prop.h (ipcp_driver): Ditto.
508         * gcc/cfglayout.c (insn_locators_initialize): Ditto.
509         * gcc/tree-ssa-forwprop.c
510         (tree_ssa_forward_propagate_single_use_vars): Ditto.
511         * gcc/cfglayout.h (insn_locators_initialize): Ditto.
512         * gcc/tree-ssa-dce.c (tree_ssa_dce): Ditto.
513         * gcc/tree-ssa.c (execute_early_warn_uninitialized): Ditto.
514         (execute_late_warn_uninitialized): Ditto.
515         * gcc/rtl.h (cleanup_barriers): Ditto.
516         (split_all_insns_noflow): Ditto.
517         (purge_line_number_notes): Ditto.
518         (unshare_all_rtl): Ditto.
519         (remove_unnecessary_notes): Ditto.
520         (recompute_reg_usage): Ditto.
521         (variable_tracking_main): Ditto.
522         * gcc/integrate.c (emit_initial_value_sets): Ditto.
523         * gcc/integrate.h (emit_initial_value_sets): Ditto.
524         * gcc/tree-optimize.c (execute_free_datastructures): Ditto
525         (execute_free_cfg_annotations): Ditto.
526         (execute_fixup_cfg): Ditto.
527         (execute_cleanup_cfg_pre_ipa): Ditto.
528         (execute_cleanup_cfg_post_optimizing): Ditto.
529         (execute_init_datastructures): Ditto.
530         * gcc/tree-object-size.c (compute_object_sizes): Ditto.
531         * gcc/combine.c (rest_of_handle_combine): Ditto.
532         * gcc/tree-outof-ssa.c (rewrite_out_of_ssa): Ditto.
533         * gcc/bb-reorder.c (duplicate_computed_gotos): Ditto.
534         (rest_of_handle_reorder_blocks): Ditto.
535         (rest_of_handle_partition_blocks): Ditto.
536         * gcc/var-tracking.c (variable_tracking_main): Ditto.
537         * gcc/tree-profile.c (tree_profiling): Ditto.
538         * gcc/tree-vect-generic.c (expand_vector_operations): Ditto.
539         * gcc/reg-stack.c (rest_of_handle_stack_regs): Ditto.
540         * gcc/sched-rgn.c (rest_of_handle_sched): Ditto.
541         (rest_of_handle_sched2): Ditto.
542         * gcc/basic-block.h (free_bb_insn): Ditto.
543         * gcc/tree-ssa-structalias.c (ipa_pta_execute): Ditto.
544         * gcc/tree-cfg.c (execute_build_cfg): Ditto.
545         (remove_useless_stmts): Ditto.
546         (split_critical_edges): Ditto.
547         (execute_warn_function_return): Ditto.
548         (execute_warn_function_noreturn): Ditto.
549         * gcc/tree-ssa-reassoc.c (execute_reassoc): Ditto.
550         * gcc/cfgrtl.c (free_bb_for_insn): Ditto.
551         * gcc/passes.c (execute_one_pass): Run additional
552         todos returned by execute function.
553         * gcc/tree-pass.h (struct tree_opt_pass): Make execute
554         return a value.
555
556 2006-03-02  Richard Guenther  <rguenther@suse.de>
557
558         * tree-ssa-alias.c (find_used_portions): Consider taking
559         the address as making the variable not write-only.
560
561 2006-03-02  Nick Clifton  <nickc@redhat.com>
562
563         * config.gcc (default_use_cxa_atexit): Extend the description of
564         this configure variable.  Set its default value to "yes" for
565         Linux, NetBSD and ELF targets on the assumption that they will
566         use C libraries with the __cxa_atexit function.
567
568 2006-03-02  Ben Elliston  <bje@au.ibm.com>
569
570         * config/rs6000/linux-unwind.h (frob_update_context): Mark `fs'
571         parameter as unused to suppress a build warning.
572
573 2006-03-02  Ben Elliston  <bje@au.ibm.com>
574
575         * mklibgcc.in: Depend on config/dfp-bit.h in rules that compile
576         config/dfp-bit.c.
577
578 2006-03-01  Roger Sayle  <roger@eyesopen.com>
579
580         PR other/26489
581         * gthr-posix.h (__gthrw2): Define to take three parameters, the
582         declared name, the weak reference name, and the typeof name.
583         (__gthrw): Avoid expanding the declared name suffix.
584         (__gthrw3): New Tru64 specific macro to simplify the OSF/1 decls.
585
586 2006-03-01  Jakub Jelinek  <jakub@redhat.com>
587
588         * dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants
589         from DWARF 3.
590         (DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale,
591         DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count,
592         DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled,
593         DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity,
594         DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New.
595         (DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New.
596         (DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited,
597         DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New.
598         (DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch,
599         DW_DS_leading_separate, DW_DS_trailing_separate): New.
600         (DW_END_default, DW_END_big, DW_END_little): New.
601         (DW_END_lo_user, DW_END_hi_user): Define.
602         (DW_LNE_lo_user, DW_LNE_hi_user): Define.
603         (DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New.
604         (DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC,
605         DW_LANG_D): New.
606
607 2006-03-01  Diego Novillo  <dnovillo@redhat.com>
608
609         * tree.def (SYMBOL_MEMORY_TAG): Rename from TYPE_MEMORY_TAG.
610         Update all users.
611         * tree-pass.h (PROP_smt_usage): Rename from PROP_tmt_usage.
612         Update all users.
613         (TODO_update_smt_usage): Rename from TODO_update_tmt_usage.
614         Update all users.
615         * tree.h (SMT_USED_ALONE): Rename from TMT_USED_ALONE.
616         Update all users.
617         * tree-flow.h (struct var_ann_d): Rename field 'type_mem_tag'
618         to 'symbol_mem_tag'.
619         Update all users.
620         * doc/tree-ssa.texi: Update documentation to reflect TMT->SMT
621         rename.
622
623 2006-03-01  Roger Sayle  <roger@eyesopen.com>
624
625         * builtins.c (fold_builtin_copysign): Delete unreachable code.
626
627 2006-03-01  Andrew Pinski  <pinskia@physics.uc.edu>
628
629         PR target/25761
630         * config/darwin.h (MACHOPIC_JUST_INDIRECT): Check just
631         MACHO_DYNAMIC_NO_PIC_P.
632         (MACHOPIC_PURE): Check flag_pic and not MACHO_DYNAMIC_NO_PIC_P.
633
634 2006-03-01  Andrew Pinski  <pinskia@physics.uc.edu>
635
636         PR target/26389
637         * config/darwin-protos.h (darwin_asm_output_anchor):
638         Declare.
639         * config/darwin-sections.def (cstring_section):
640         Add SECTION_MERGE to the flags.
641         (literal4_section): Likewise.
642         (literal8_section): Likewise.
643         (objc_selector_refs_section): Likewise.
644         (objc_cls_refs_section): Likewise.
645         * config/darwin.c (darwin_asm_output_anchor): New
646         function.
647         * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
648
649 2006-03-01  Daniel Berlin  <dberlin@dberlin.org>
650
651         Fix PR tree-optimization/26443
652         * tree-vrp.c (pass_vrp): Add TODO_update_tmt_usage
653         to todo and PROP_tmt_usage to properties_destroyed.
654         * tree-ssa-ccp.c (pass_ccp): Ditto.
655         (pass_store_ccp): Ditto.
656         * tree-ssa-dom.c (pass_dominator): Ditto.
657
658 2006-03-01  Diego Novillo  <dnovillo@redhat.com>
659
660         * tree-ssa-operands.c: Cleanup whitespace.
661         (get_asm_expr_operands): Move before first invocation.
662         (get_indirect_ref_operands): Likewise.
663         (get_tmr_operands): Likewise.
664         (get_call_expr_operands): Likewise.
665         (append_def): Likewise.
666         (append_use): Likewise.
667         (append_v_may_def): Likewise.
668         (append_v_must_def): Likewise.
669         (add_call_clobber_ops): Likewise.
670         (add_call_read_ops): Likewise.
671         (add_stmt_operand): Likewise.
672         (add_virtual_operand): Likewise.
673         (build_ssa_operands): Likewise.
674
675 2006-03-01  Andrew Pinski  <pinskia@physics.uc.edu>
676
677         PR middle-end/26022
678         Revert:
679         PR middle-end/24437
680         * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
681         with a call expr to ...
682         * fold-const.c (fold_ternary) <case CALL_EXPR>: Here.
683
684 2006-03-01  Diego Novillo  <dnovillo@redhat.com>
685
686         * tree-vrp.c (extract_range_from_assert): Remove special
687         handling for types with super-types.
688
689 2006-03-01  Ben Elliston  <bje@au.ibm.com>
690
691         * config.gcc: Add t-dfprules to $tmake_file for powerpc-*-linux*
692         and powerpc64-*-linux* configurations.
693         * config/t-dfprules: New file.
694
695         * mklibgcc.in: Add logic to handle $DFP_ENABLE and $DFP_CFLAGS.
696         Compile dfp-bit.c from the source directory using -DWIDTH and
697         $DFP_CFLAGS to control the compilation of that file, rather than
698         generating width-specific versions in the build directory.
699         * Makefile.in (libgcc.mk): Pass down DFP_ENABLE and DFP_CFLAGS.
700         (LIBGCC_DEPS): Replace $(D32PBIT) et al with config/dfp-bit.[hc].
701
702 2006-02-28  Zack Weinberg  <zackw@panix.com>
703
704         * doc/md.texi: Avoid use of @headitem so that makeinfo <4.7
705         continues to work.
706
707 2006-02-28  Eric Christopher  <echristo@apple.com>
708
709         * config/rs6000/darwin.h (ENABLE_STACK_EXECUTE): Define.
710         Set up IN_LIBGCC definition of TARGET_64BIT.
711         * config/i386/darwin.h (ENABLE_STACK_EXECUTE): Define.
712
713 2006-02-28  Roger Sayle  <roger@eyesopen.com>
714
715         PR middle-end/14752
716         * c-common.c (c_common_truthvalue_conversion) <MINUS_EXPR,
717         BIT_XOR_EXPR, BIT_AND_EXPR>: Delete.  Let fold optimize these
718         cases via the construction of "expr != 0".
719
720 2006-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
721
722         * alias.c (alias_invariant, alias_invariant_size): Remove.
723         (record_base_value): Remove.
724         (memrefs_conflict_p): Don't look at alias_invariant.
725         (end_alias_analysis): Don't free it.
726         * alias.h (record_base_value): Remove prototype.
727
728 2006-02-28  Paolo Bonzini  <bonzini@gnu.org>
729             Adam Nemet  <anemet@caviumnetworks.com>
730
731         * rtl.h (truncated_to_mode): Declare it.
732         (struct rtl_hooks): Add reg_truncated_to_mode hook.
733         * rtlhooks-def.h (RTL_HOOKS_REG_TRUNCATED_TO_MODE): New macro.
734         (RTL_HOOKS_INITIALIZER): Include it.
735         * rtlhooks.c (reg_truncated_to_mode_general): New function.
736         * combine.c (RTL_HOOKS_REG_TRUNCATED_TO_MODE): Override to
737         reg_truncated_to_mode.
738         * rtlanal.c (truncated_to_mode): Define it.
739         * simplify-rtx.c (simplify_unary_operation_1): Use it.
740
741 2006-02-28  Jeff Law  <law@redhat.com>
742
743         * tree-chrec.c (chrec_convert_aggressive): Do not eliminate
744         conversions where TYPE_MIN_VALUE/TYPE_MAX_VALUE do not cover
745         the range allowed by TYPE_PRECISION.
746
747         * tree.h (strct phi_arg_d): Remove unused NONZERO field.
748
749 2006-02-28  Dorit Nuzman  <dorit@il.ibm.com>
750
751         PR tree-optimization/26419
752         * doc/invoke.texi (ftree-vectorizer-verbose): Add information on
753         values of n.
754
755 2006-02-27  Zack Weinberg  <zackw@panix.com>
756
757         * doc/md.texi: Fix typo in previous change.
758
759 2006-02-27  Kenneth Zadeck <zadeck@naturalbridge.com>
760
761         * df.c: Remove.
762
763 2006-02-27  Zack Weinberg  <zackw@panix.com>
764
765         * rtl.def (define_constraint, define_register_constraint)
766         (define_memory_constraint, define_address_constraint): New MD forms.
767         * gensupport.c (process_rtx): Put define_constraint etc on the
768         predicate queue.
769         * genpreds.c (process_define_predicate): Adjust comment.  Validate
770         the name, and call validate_exp to validate the expression.
771         (mark_mode_tests, write_extract_subexp): Can assume correct input.
772         (write_predicate_expr): Likewise.  NAME argument no longer necessary;
773         all callers changed.
774         (validate_exp, needs_variable, struct constraint_data)
775         (constraints_by_letter_table, first_constraint, last_constraint_ptr)
776         (FOR_ALL_CONSTRAINTS, generic_constraint_letters, const_int_constraints)
777         (const_dbl_constraints, constraint_max_namelen)
778         (have_register_constraints, have_memory_constraints)
779         (have_address_constraints, have_address_constraints)
780         (have_extra_constraints, have_const_int_constraints)
781         (have_const_dbl_constraints, mangle, add_constraint)
782         (process_define_constraint, process_define_register_constraint)
783         (write_enum_constraint_num, write_lookup_constraint)
784         (write_insn_constraint_len, write_regclass_for_constraint)
785         (write_constraint_satisfied_p, write_insn_const_int_ok_for_constraint)
786         (write_insn_extra_memory_constraint)
787         (write_insn_extra_address_constraint)
788         (write_satisfies_constraint_fns): New.
789         (write_tm_preds_h): If we have new-style constraint definitions,
790         prototype the functions generated from them, and define the
791         old constraint interface (still used by generic code) in terms of
792         those functions.
793         (write_insn_preds_c): If we have new-style constraint definitions,
794         generate all relevant functions from those definitions.
795         (main): Handle define_constraint etc.
796         * genoutput.c (struct constraint_data, indep_constraints)
797         (mdep_constraint_letters, constraints_by_letter_table, note_constraint)
798         (mdep_constraint_len): New data structures and functions, defined
799         #ifdef USE_MD_CONSTRAINTS.
800         (check_constraint_len): Don't define #ifdef USE_MD_CONSTRAINTS.
801         (validate_insn_alternatives): If USE_MD_CONSTRAINTS is defined,
802         use new logic to validate operand constraints against constraint
803         definitions.
804         (main): Process define_constraint etc. if USE_MD_CONSTRAINTS is
805         defined.
806         * defaults.h: If none of the old-style constraint macros are
807         defined, define USE_MD_CONSTRAINTS; do not provide defaults for any
808         old-style macros; and poison REG_CLASS_FROM_LETTER,
809         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P, and
810         EXTRA_CONSTRAINT.
811         * recog.c (reg_fits_class_p): If cl is NO_REGS, return 0 immediately.
812         * doc/md.texi: Document new constraint-definition mechanism and the
813         C interface it provides.  Remove references to old mechanism
814         elsewhere in the document.
815         (Machine Constraints): Use pathnames relative to gcc directory,
816         i.e. config/ARCH/FILE.  Change i386 section to refer to
817         config/i386/predicates.md; update that section to match docstrings.
818         * doc/tm.texi: Move all documentation of the old constraint-
819         definition macros to their own section, clearly mark as obsolete.
820
821         * config/i386/predicates.md (R, q, Q, l, a, b, c, d, S, D, A, f, t)
822         (u, y, x, Y, I, J, K, L, M, N, O, G, C, e, Z): New constraint
823         definitions.
824         * config/i386/i386.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
825         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
826         * config/i386/i386.md (*movdf_nointeger): Remove stray 'H' from
827         constraint strings.
828         (splits and peepholes): Use satisfies_constraint_*.
829         * config/i386/i386.c (memory_address_length)
830         (ix86_attr_length_immediate_default): Use satisfies_constraint_*.
831
832 2006-02-27  Daniel Berlin  <dberlin@dberlin.org>
833
834         * lambda-code.c (can_convert_to_perfect_nest): Allow any type of
835         scalar operation to be put back into the loop.
836
837 2006-02-27  Jakub Jelinek  <jakub@redhat.com>
838
839         PR other/26208
840         * unwind-dw2.c (struct _Unwind_Context): Add signal_frame field.
841         (extract_cie_info): Handle S flag in augmentation string.
842         (execute_cfa_program): If context->signal_frame, execute also
843         fs->pc == context->ra instructions.
844         (uw_frame_state_for): If context->signal_frame, don't subtract one
845         from context->ra to find FDE.
846         (uw_update_context_1): Set context->signal_frame to
847         fs->signal_frame.
848         (_Unwind_GetIPInfo): New function.
849         * unwind-dw2.h (_Unwind_FrameState): Add signal_frame field.
850         * unwind-c.c (PERSONALITY_FUNCTION): Use _Unwind_GetIPInfo instead
851         of _Unwind_GetIP.
852         * unwind-sjlj.c (_Unwind_GetIPInfo): New function.
853         * unwind-generic.h (_Unwind_GetIPInfo): New prototype.
854         * unwind-compat.c (_Unwind_GetIPInfo): New function.
855         * libgcc-std.ver (_Unwind_GetIPInfo): Export @@GCC_4.2.0.
856         * config/ia64/unwind-ia64.c (_Unwind_GetIPInfo): New function.
857         * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Define.
858         * config/i386/linux-unwind.h (x86_fallback_frame_state,
859         x86_64_fallback_frame_state): Set fs->signal_frame.
860         * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Likewise.
861         (MD_FROB_UPDATE_CONTEXT): Define unconditionally.
862         (frob_update_context): Likewise.  Workaround missing S flag in
863         Linux 2.6.12 - 2.6.16 kernel vDSOs.
864         * config/s390/linux-unwind.h (s390_fallback_frame_state): Likewise.
865         Remove the psw_addr + 1 hack.
866
867 2006-02-27  Daniel Berlin  <dberlin@dberlin.org>
868
869         * tree-ssa-structalias.c (get_constraint_for): Move code to deal
870         with aggregates here.
871         (find_func_aliases): Remove code for &<aggregate> from here.
872
873 2006-02-26  Roger Sayle  <roger@eyesopen.com>
874
875         * fold-const.c (fold_binary) <EQ_EXPR>:  Fold (~X & C) eq/ne 0 as
876         (X & C) ne/eq 0, where C is a single bit, i.e. a power of two.
877         Fold both "((X & C) ^ C) eq/ne 0" and "((X ^ C) & C) eq/ne 0"
878         as (X & C) ne/eq 0.
879
880 2006-02-26  Roger Sayle  <roger@eyesopen.com>
881
882         PR middle-end/19983
883         * real.c (real_nan): Allow both 0x and 0X as hexadecimal prefixes.
884
885 2006-02-26  Zdenek Dvorak <dvorakz@suse.cz>
886
887         * opts.c (decode_options): Do not handle flag_strength_reduce.
888         (common_handle_option): Handle OPT_floop_optimize, OPT_frerun_loop_opt
889         and OPT_fstrength_reduce.
890         * tree-ssa-loop.c (tree_ssa_loop_prefetch): Only test
891         flag_prefetch_loop_arrays for being nonzero.
892         * common.opt (floop-optimize, frerun-loop-opt): Resurrected as
893         no-ops.
894         (fprefetch-loop-arrays-rtl): Removed.
895         (flag_prefetch_loop_arrays): Do not specify the value.
896
897         * doc/passes.texi: Update documentation of loop optimizer
898         passes.
899         * doc/invoke.texi (-fstrength-reduce, -fprefetch-loop-arrays-rtl,
900         -frerun-loop-opt): Remove.
901
902 2006-02-26  Richard Guenther  <rguenther@suse.de>
903
904         PR tree-optimization/26421
905         * tree-ssa-alias.c (find_used_portions): Don't treat parameters
906         in function calls that are ADDR_EXPRs as using the whole structure.
907
908 2006-02-26  Steven Bosscher  <stevenb.gcc@gmail.com>
909
910         * common.opt (-floop-optimize, -frerun-loop-opt): Remove.
911         * tree-pass.h (pass_loop_optimize): Remove.
912         * passes.c (pass_loop_optimize): Never run it.
913         * toplev.c (backend_init): Don't call init_loop.
914         * opts.c (flag_loop_optimize_set): Remove.
915         (decode_options): Never set flag_loop_optimize or flag_rerun_loop_opt.
916         (common_handle_option) <OPT_floop_optimize>: Remove.  Don't disable
917         the old RTL loop optimizer when profiling enabled.
918         * predict.c (tree_estimate_probability): Always strip builtin_expect.
919         * cfgcleanup.c (try_forward_edges): Don't avoid killing loop
920         pre-headers for the sake of the old RTL loop optimizer.
921         * Makefile.in: Remove all references to loop.o.
922
923         * doc/invoke.texi: Remove all references to -floop-optimize
924         and -frerun-loop-opt.
925
926 2006-02-26  Zack Weinberg  <zackw@panix.com>
927
928         * doc/md.texi (Machine Constraints): Refer to all files with paths
929         relative to gcc directory (i.e. config/CPU/file).  Add missing
930         @table @code ... @end table to M32C subsection.
931
932 2006-02-26  Roger Sayle  <roger@eyesopen.com>
933
934         * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & 1) ^ 1 as
935         (X & 1) == 0.
936         <BIT_AND_EXPR>: Fold (X ^ 1) & 1 and ~X & 1 as (X & 1) == 0.
937
938 2006-02-26  Roger Sayle  <roger@eyesopen.com>
939             James A. Morrison  <phython@gcc.gnu.org>
940
941         PR middle-end/21137
942         * fold-const.c (fold_binary) <EQ_EXPR>:  Fold ((X>>C1)&C2) eq/ne 0,
943         when C2 is a power of two, as either (X&(C2<<C1)) eq/ne 0 if the
944         new constant C2<<C1, or as (X<0) or (X,false) depending upon the
945         signedness of the shift operation.
946
947 2006-02-26  Dorit Nuzman  <dorit@il.ibm.com>
948
949         PR tree-optimization/26359
950         * tree-ssa-alias.c (new_type_alias): Set fields for new tag.
951
952 2006-02-25  Roger Sayle  <roger@eyesopen.com>
953
954         * simplify-rtx.c (simplify_relational_operation_1):  Simplify
955         (X^Y) == 0 as X == Y and (X^Y) != 0 as X != Y.  Simplify (X^Y) == Y
956         as X == 0, and some symmetry related transformations.
957         Simplify (X^C1) == C2 as X == (C1^C2).  Split long comment line.
958
959 2006-02-25  Roger Sayle  <roger@eyesopen.com>
960
961         PR middle-end/23673
962         * fold-const.c (fold_binary) <EQ_EXPR>:  Fold (X^Y) == 0 as X == Y
963         and (X^Y) != 0 as X != Y.  Fold (X^Y) == Y as X == 0, and some
964         symmetry related transformations.  Fold (X^C1) == C2 as
965         X == (C1^C2).
966
967 2006-02-25  Juergen Weigert  <jw@suse.de>
968         Richard Guenther  <rguenther@suse.de>
969
970         * scan-decls.c (scan_decls): Don't fetch new statement after CPP_EOF.
971
972 2006-02-24  Adam Nemet  <anemet@caviumnetworks.com>
973
974         * combine.c (gen_lowpart_or_truncate): Call
975         simplify_gen_unary(TRUNCATE, ...) instead of gen_rtx_TRUNCATE.
976
977 2006-02-24  Diego Novillo  <dnovillo@redhat.com>
978
979         * doc/invoke.texi: Move -fopenmp description to "Options for
980         Code Generation".
981         Remove reference to -lgomp.
982
983 2006-02-24  David Edelsohn  <edelsohn@gnu.org>
984
985         * doc/install.texi: Require GNU tar version 1.14.
986
987 2006-02-24  Geoffrey Keating  <geoffk@apple.com>
988
989         * doc/tm.texi (Run-time Target): Document C_COMMON_OVERRIDE_OPTIONS.
990         * doc/invoke.texi (C++ Dialect Options): Document
991         -fno-use-cxa-get-exception-ptr.
992         * configure.ac: Define DEFAULT_USE_CXA_ATEXIT to 2 not 1.
993         * configure: Regenerate.
994         * c.opt (fuse-cxa-get-exception-ptr): New.
995         * c-opts.c (c_common_handle_option): Handle
996         OPT_fuse_cxa_get_exception_ptr.
997         * c-common.c (flag_use_cxa_atexit): Update documentation.
998         (flag_use_cxa_get_exception_ptr): New.
999         * c-common.h (flag_use_cxa_get_exception_ptr): New.
1000         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Improve
1001         documentation.
1002         (C_COMMON_OVERRIDE_OPTIONS): New.
1003
1004 2006-02-24  Roger Sayle  <roger@eyesopen.com>
1005
1006         PR middle-end/24952
1007         * combine.c (try_combine): Explicitly check whether GET_CODE is
1008         a SET or a CLOBBER, instead on checking that it isn't a USE.
1009
1010 2006-02-24  Roger Sayle  <roger@eyesopen.com>
1011
1012         * fold-const.c (fold_comparison): New subroutine of fold_binary
1013         containing transformations common to both the equality and
1014         ordering relational operators, factored out of fold_binary.
1015         (fold_binary): Separate out the equality operators (EQ_EXPR
1016         and NE_EXPR) from the ordering operators (LT_EXPR, GT_EXPR,
1017         LE_EXPR and GE_EXPR), calling fold_comparison to perform the
1018         transformations common to both.
1019         (fold_div_compare): Fix latent bugs in the previously unreachable
1020         LT_EXPR and GE_EXPR cases.
1021
1022 2006-02-24  David Edelsohn  <edelsohn@gnu.org>
1023
1024         * config/rs6000/rs6000.c (rs6000_init_builtins): Change
1025         decl libname for clog to __clog on AIX.
1026
1027         * config/rs6000/xcoff.h (MAX_OFILE_ALIGNMENT): Define.
1028
1029 2006-02-24  Alan Modra  <amodra@bigpond.net.au>
1030
1031         PR target/26453
1032         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't
1033         output traceback table for thunks.  Localise rs6000_stack_info call.
1034
1035 2006-02-23  Roger Sayle  <roger@eyesopen.com>
1036             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1037
1038         * gthr-posix.h (__gthrw): Fix typo in comment.
1039
1040 2006-02-23  Geoffrey Keating  <geoffk@apple.com>
1041
1042         * doc/cpp.texi (Character sets): Document that we do support
1043         input files to be in any character set.
1044
1045 2006-02-23  Jeff Law  <law@redhat.com>
1046
1047         * tree.h (PHI_ARG_NONZERO): Remove.
1048         * tree-phinodes.c (add_phi_arg): No longer initialize PHI_ARG_NONZERO.
1049         (remove_phi_arg_num): No longer copy PHI_ARG_NONZERO from the old
1050         node to the new node.
1051
1052         PR tree-optimization/26425
1053         * tree-vrp.c (vrp_visit_assignment): If the LHS's type has a NULL
1054         min/max, then assume its varying.
1055
1056 2006-02-23  Zdenek Dvorak <dvorakz@suse.cz>
1057
1058         PR rtl-optimization/26316
1059         * rtlanal.c (enum may_trap_p_flags): New.
1060         (may_trap_p_1): Take flags instead of unaligned_mems argument.  Ignore
1061         MEM_NOTRAP_P if flags & MTP_AFTER_MOVE.
1062         (may_trap_p, may_trap_or_fault_p): Pass flags to may_trap_p_1.
1063         (may_trap_after_code_motion_p): New function.
1064         * loop-invariant.c (find_identical_invariants): Fix dump formating.
1065         (find_invariant_insn): Use may_trap_after_code_motion_p.
1066         * rtl.h (may_trap_after_code_motion_p): Declare.
1067
1068 2006-02-23  Zdenek Dvorak <dvorakz@suse.cz>
1069
1070         * emit-rtl.c (immed_double_const): Cleanup.
1071
1072 2006-02-23  Daniel Berlin  <dberlin@dberlin.org>
1073
1074         Fix PR tree-optimization/26376
1075         * tree-ssa-structalias.c (find_func_aliases):  Use get_id_for_tree,
1076         remove assert.
1077
1078 2006-02-23  Jakub Jelinek  <jakub@redhat.com>
1079
1080         PR middle-end/26412
1081         * gimplify.c (omp_add_variable): Guard variable size decl test with
1082         DECL_SIZE (decl) check.
1083
1084 2006-02-23  Richard Guenther  <rguenther@suse.de>
1085
1086         PR middle-end/26439
1087         * tree-ssa-structalias.c (find_func_aliases): Handle complex types
1088         like aggregate types.
1089
1090 2006-02-23  Jakub Jelinek  <jakub@redhat.com>
1091
1092         * configure.ac: Add --with{,out}-long-double-128 configure option.
1093         (TARGET_DEFAULT_LONG_DOUBLE_128): New test.
1094         * configure: Rebuilt.
1095         * config.in: Rebuilt.
1096         * doc/install.texi (Options specification): Document
1097         --with-long-double-128.
1098
1099         * config/rs6000/linux.h [TARGET_DEFAULT_LONG_DOUBLE_128]
1100         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
1101         * config/rs6000/linux64.h [TARGET_DEFAULT_LONG_DOUBLE_128]
1102         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
1103
1104 2006-02-23  Aldy Hernandez  <aldyh@redhat.com>
1105
1106         * config/s390/s390.c (override_options): Handle
1107         TARGET_DEFAULT_LONG_DOUBLE_128.
1108
1109         * config/alpha/alpha.c (override_options): Handle
1110         TARGET_DEFAULT_LONG_DOUBLE_128.
1111
1112         * config/sparc/sparc.c (sparc_override_options): Handle
1113         TARGET_DEFAULT_LONG_DOUBLE_128.
1114
1115 2006-02-22  Daniel Jacobowitz  <dan@codesourcery.com>
1116
1117         * Makefile.in (stmp-fixinc): Use real-$(INSTALL_HEADERS_DIR).
1118         (real-install-headers-tar, real-install-headers-cpio)
1119         (real-install-headers-cp): New targets.
1120
1121 2006-02-22  Richard Sandiford  <richard@codesourcery.com>
1122
1123         * tree.h (variable_section): Delete.
1124         * varasm.c (variable_section): Delete.
1125
1126 2006-02-22  Paolo Bonzini  <bonzini@gnu.org>
1127
1128         * install.texi: Add notes on install.texi2html.
1129         (Building in parallel): Do not use footnotes.
1130
1131 2006-02-21  Aldy Hernandez  <aldyh@redhat.com>
1132
1133         PR libgomp/26234
1134         * doc/install.texi (Configuration): Document --disable-libgomp.
1135
1136 2006-02-21  Geoffrey Keating  <geoffk@apple.com>
1137
1138         * config/i386/darwin.h (DWARF2_FRAME_REG_OUT): New.
1139
1140 2006-02-21  Alexandre Oliva  <aoliva@redhat.com>
1141
1142         * config/i386/sse.md (vec_extractv2df_1_sse): New.
1143         (vec_extractv2df_0_sse): New.
1144
1145 2006-02-21  Alexandre Oliva  <aoliva@redhat.com>
1146
1147         * defaults.h (CFA_FRAME_BASE_OFFSET): Define.
1148         * config/ia64/ia64.h (CFA_FRAME_BASE_OFFSET): Override.
1149         * doc/tm.texi (CFA_FRAME_BASE_OFFSET): Document.
1150         * dwarf2out.c (build_cfa_loc): New offset parameter.  Add it
1151         to the result of the expression.
1152         (def_cfa_1): Adjust.
1153         (frame_pointer_cfa_offset): Rename to...
1154         (frame_pointer_fb_offset): ... this.  Adjust all uses.
1155         (convert_cfa_to_loc_list): Rename to...
1156         (convert_cfa_to_fb_loc_list): ... this.  New offset parameter.
1157         Pass it on to build_cfa_loc.
1158         (compute_frame_pointer_to_cfa_displacement): Rename to...
1159         (compute_frame_pointer_to_fb_displacement): ... this.  New
1160         offset parameter.  Use it in computation.
1161         (gen_subprogram_die): Compute cfa_fb_offset with the new
1162         macro, and use it to compute the fb loc list and the
1163         displacement.
1164
1165 2006-02-21  Bernd Schmidt  <bernd.schmidt@analog.com>
1166
1167         * config/bfin/predicates.md (cc_operand): Delete predicate.  All uses
1168         replaced with register_operand.
1169         * config/bfin/bfin.c (bfin_register_move_cost): Moving CC to any
1170         non-DREG is expensive.
1171         * config/bfin/bfin.h (FIXED_REGISTERS): CC isn't fixed.
1172         * config/bfin/bfin.md (movbi): Fix constraints and template for moves
1173         involving memory.
1174
1175 2006-02-21  Joseph S. Myers  <joseph@codesourcery.com>
1176
1177         * doc/install.texi2html: Use set -e.
1178
1179 2006-02-21  Richard Sandiford  <richard@codesourcery.com>
1180
1181         * doc/tm.texi (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
1182         (ASM_OUTPUT_SHARED_LOCAL): Delete.
1183         * doc/invoke.texi (-fshared-data): Delete.
1184         * common.opt (fshared-data): Delete.
1185         * varasm.c (asm_emit_uninitialised): Remove flag_shared_data handling.
1186         (assemble_static_space): Remove #if 0 code.
1187         * system.h (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
1188         (ASM_OUTPUT_SHARED_LOCAL): Poison.
1189         * config/cris/cris.h: Remove FIXME.
1190
1191 2006-02-21  Paolo Bonzini  <bonzini@gnu.org>
1192
1193         * doc/sourcebuild.texi (Front End Directory): No more double-colon
1194         hooks.
1195
1196 2006-02-21  Jakub Jelinek  <jakub@redhat.com>
1197
1198         PR middle-end/26379
1199         * combine.c (simplify_shift_const_1): Disable nested shifts
1200         optimization for vector shifts.
1201
1202 2006-02-20  Roger Sayle  <roger@eyesopen.com>
1203
1204         PR tree-optimization/26361
1205         * tree-vrp.c (extract_range_from_unary_expr): Handle NEGATE_EXPR
1206         of unsigned integer types.
1207
1208 2006-02-20  Sebastian Pop  <pop@cri.ensmp.fr>
1209
1210         * tree-chrec.c (eq_evolutions_p): New.
1211         * tree-chrec.h (eq_evolutions_p): Declared.
1212         * tree-data-ref.c: Fix formatting.
1213         (datadep_stats, dependence_stats): New.
1214         (gcd): Moved...
1215         (print_direction_vector): New.
1216         (dump_data_dependence_relation): Use print_direction_vector.
1217         (object_analysis, create_data_ref): Handle COMPONENT_REF.
1218         (compute_subscript_distance): Static.
1219         (initialize_data_dependence_relation): Static.  Get the number
1220         of loops surrounding the references from the callers, and initialize
1221         DDR_SIZE_VECT to nb_loops.  Use both base_addr_differ_p and
1222         base_object_differ_p analyzers.
1223         (analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
1224         compute_overlap_steps_for_affine_1_2,
1225         analyze_subscript_affine_affine): Count the classified dependences.
1226         Print a message when a test failed.
1227         (can_use_analyze_subscript_affine_affine): New.
1228         (analyze_siv_subscript): Compute the data dependences on symbolic
1229         scevs that verify can_use_analyze_subscript_affine_affine.
1230         (chrec_steps_divide_constant_p): Returns true, false, or unknown.
1231         (analyze_miv_subscript): Update use of chrec_steps_divide_constant_p.
1232         Handle symbolic scevs.
1233         (analyze_overlapping_iterations): Let symbolic affine scevs to be
1234         analyzed.
1235         (subscript_dependence_tester): Moved...
1236         (build_classic_dist_vector, build_classic_dir_vector): Don't use
1237         lambda_vector_clear on newly allocated vectors.  Get nb_loops from
1238         DDR_SIZE_VECT instead of getting it in parameter.
1239         (subscript_dependence_tester): ... here.  Take as a parameter
1240         loop_nest_depth.  Call build_classic_dist_vector and
1241         build_classic_dir_vector.
1242         (compute_affine_dependence): Update subscript_dependence_tester
1243         parameters.  Update datadep_stats counters.  Call
1244         compute_subscript_distance.
1245         (compute_self_dependence): Save the dist and dir vectors.  Call
1246         compute_subscript_distance.
1247         (ddr_p, DEF_VEC_P(ddr_p), DEF_VEC_ALLOC_P(ddr_p,heap)): Moved...
1248         (compute_all_dependences): Reorder parameters as they were before
1249         conversion to VEC.  Pass nb_loops and loop_nest_depth.  Don't call
1250         compute_subscript_distance.  Update the use of
1251         compute_affine_dependence and initialize_data_dependence_relation.
1252         (find_data_references_in_loop): Handle COMPONENT_REF.
1253         (compute_data_dependences_for_loop): Initialize dependence_stats.
1254         Don't call build_classic_dist_vector and build_classic_dir_vector.
1255         Update the parameters of initialize_data_dependence_relation and
1256         compute_all_dependences.  Print the statistics from datadep_stats.
1257         (analyze_all_data_dependences): Static.  Not used until the pass for
1258         checking the data dependences is contributed.
1259         * tree-data-ref.h (ddr_p, DEF_VEC_P(ddr_p),
1260         DEF_VEC_ALLOC_P(ddr_p,heap)): ... here.
1261         (initialize_data_dependence_relation, compute_affine_dependence,
1262         analyze_all_data_dependences, compute_subscript_distance): Removed.
1263         (print_direction_vector): New.
1264         * lambda.h (gcd): ... here.
1265         (lambda_vector_gcd): Moved here from gcd_vector.
1266         * lambda-code.c (gcd, gcd_vector): Removed.
1267         (lambda_compute_target_space): Use lambda_vector_gcd.  Fix formatting.
1268         * Makefile.in (tree-vect-patterns.o): Depends on TREE_DATA_REF_H.
1269
1270 2006-02-20  Diego Novillo  <dnovillo@redhat.com>
1271
1272         * ipa-type-escape.c: Tidy some comments and white space.
1273         * tree-ssa-operands.c: Likewise.
1274
1275 2006-02-20  Andrew Pinski  <pinskia@physics.uc.edu>
1276
1277         PR tree-opt/25879
1278         * tree-pretty-print.c (debug_tree_chain): Walk the chains.
1279         (dump_decl_name): Do not walk the decl tree chains.
1280         * tree-pass.h (TDF_CHAIN): Remove.
1281
1282 2006-02-20  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
1283
1284         * Makefile.in (C): Remove
1285         (PROTO): Remove
1286         (.PHONY): Remove C and PROTO
1287
1288 2006-02-20  Roger Sayle  <roger@eyesopen.com>
1289
1290         PR middle-end/26236
1291         * doc/c-tree.texi (INTEGER_TYPE): Remove reference to the now
1292         deprecated CHAR_TYPE tree code.
1293
1294 2006-02-20  Paolo Bonzini  <bonzini@gnu.org>
1295
1296         * configure.ac (target_list): Add install-info, dvi, html.
1297         * configure: Regenerate.
1298
1299         * ada/Make-lang.in, cp/Make-lang.in, fortran/Make-lang.in,
1300         java/Make-lang.in, objc/Make-lang.in, objcp/Make-lang.in,
1301         treelang/Make-lang.in: Do not use double-colon rules.
1302
1303 2006-02-20  Daniel Berlin  <dberlin@dberlin.org>
1304
1305         * tree.h (struct tree_memory_tag): Add is_used_alone member.
1306         (TMT_USED_ALONE): New macro.
1307         * tree-pass.h (PROP_tmt_usage): New property.
1308         (TODO_update_tmt_usage): New todo.
1309         * tree-ssa-alias.c (updating_used_alone): New variable.
1310         (recalculate_used_alone): New function.
1311         (compute_may_aliases): Set updating_used_alone, call
1312         recalculate_used_alone.
1313         * tree-sra.c (pass_sra): Note that this pass destroys
1314         PROP_tmt_usage, and add TODO_update_tmt_usage.
1315         * tree-ssa-forwprop.c (pass_forwprop): Ditto.
1316         * tree-flow.h (updating_used_alone): Prototype.
1317         (recalculate_used_alone): Ditto.
1318         * passes.c (execute_todo): Add code to set updating_used_alone,
1319         and call recalculate.
1320         * tree-ssa-operands.c (add_virtual_operand): Only append bare def
1321         for clobber if used alone, and add assert to verify used_alone
1322         status.
1323
1324 2006-02-20  Angel Nunez Mencias  <anunez@de.ibm.com>
1325
1326         * config/s390/s390.c (legitimize_pic_address): Assertions checking
1327         for non tls symbols added.
1328         (legitimize_address): Do nothing for PLUS expressions if one of the
1329         addends is a tls symbol reference.
1330
1331 2006-02-20  Paolo Bonzini  <bonzini@gnu.org>
1332
1333         PR bootstrap/25476
1334
1335         * Makefile.in (LDFLAGS): Define from autoconf substitution.
1336
1337         * Makefile.in (BOOTSTRAPPING): New.
1338         (quickstrap): New definition if BOOTSTRAPPING=yes.
1339
1340         * Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages.
1341         * configure.ac: Substitute all_selected_languages with the languages
1342         that were configured.  For all the other variables except
1343         lang_specs_files, include all the languages in the tree.
1344         * configure: Regenerate.
1345
1346         * Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory,
1347         if there is one.  Run the commands to run fixincludes in the same
1348         subshell.
1349
1350         * doc/makefile.texi: Document new makefile targets from toplevel bootstrap.
1351         * doc/install.texi: Document exact conventions for searching target tools.
1352         Document --with-build-time-tools.  Document toplevel bootstrap.  Document
1353         something more about building an Ada cross-compiler.  Don't list GNU Make
1354         requirements which affect all platforms.
1355
1356 2006-02-19  Roger Sayle  <roger@eyesopen.com>
1357
1358         PR middle-end/19543
1359         * varasm.c (compare_constant) <INTEGER_CST>: Integer constants are
1360         only equivalent if the have both the same mode and precision.
1361
1362 2006-02-20  Ben Elliston  <bje@au.ibm.com>
1363
1364         * doc/tree-ssa.texi (Interfaces): Describe low vs. high GIMPLE.
1365
1366 2006-02-19  Roger Sayle  <roger@eyesopen.com>
1367             Steven Bosscher  <stevenb.gcc@gmail.com>
1368
1369         * gcse.c (want_to_gcse_p): On STACK_REGS targets, look through
1370         constant pool references to identify stack mode constants.
1371         * rtlanal.c (constant_pool_constant_p): New predicate to check
1372         whether operand is a floating point constant in the pool.
1373         * rtl.h (constant_pool_constant_p): Prototype here.
1374         * loop.c (scan_loop): Avoid hoisting constants from the constant
1375         pool on STACK_REGS targets.
1376         (load_mems): Likewise.
1377         * loop-invariant.c (get_inv_cost): Make hoisting constant pool
1378         loads into x87 registers expensive in terms of register pressure.
1379
1380 2006-02-19  Roger Sayle  <roger@eyesopen.com>
1381
1382         * gthr-posix.h: On Tru64, map __gthr_foo as a weak reference to
1383         __foo and not foo when _PTHREAD_USE_MANGLED_NAMES_ is defined.
1384
1385 2006-02-19  David Edelsohn  <edelsohn@gnu.org>
1386
1387         * config/rs6000/xcoff.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
1388         * config/rs6000/rs6000.c (rs6000_xcoff_asm_output_anchor): Define.
1389
1390 2006-02-19  Daniel Berlin  <dberlin@dberlin.org>
1391
1392         * doc/invoke.texi: Document -fipa-pta.
1393         * common.opt: Add ipa-pta option.
1394         * tree-ssa-structalias.c (DONT_PROPAGATE_WITH_ANYTHING): Removed.
1395         (do_sd_constraint): Enable DONT_PROPAGATE_WITH_ANYTHING code.
1396         (do_ds_constraint): Ditto.
1397         (get_constraint_for): Only add to referenced_vars if
1398         referenced_vars exists.
1399         (insert_into_field_list): Rewrite to do this unsorted.
1400         (insert_into_field_list_sorted): Rename old insert_into_field_list
1401         to this.
1402         (create_function_info_for): Use insert_into_field_list_sorted.
1403         (create_variable_info_for): Rewrite so it uses unsorted version,
1404         since the field list is sorted.
1405         (intra_create_variable_infos): Only add to referenced_vars if
1406         referenced_vars exists.
1407         (ipa_pta_execute): Init heapvars, and delete when done.
1408         * passes.c (init_optimization_passes): Add call to pass_ipa_pta.
1409
1410 2006-02-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1411
1412         * doc/install.texi: Add missing `@samp'.
1413
1414 2006-02-18  Andrew Pinski <pinskia@physics.uc.edu>
1415
1416         * config/rs6000/darwin.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P):
1417         Use the arguments.
1418
1419 2006-02-18  Mark Wielaard  <mark@klomp.org>
1420
1421         * doc/contrib.texi (Contributors): Add classpath/libgcj hackers
1422         who added new 4.1 features, bug fixes and integration support.
1423
1424 2006-02-18  David Edelsohn  <edelsohn@gnu.org>
1425
1426         PR target/26350
1427         * config/rs6000/rs6000.md (extenddftf2): Force 0.0 to validized
1428         MEM for ABI_V4 pic.
1429
1430 2006-02-18  Richard Sandiford  <richard@codesourcery.com>
1431
1432         * cselib.c (cselib_init): Change RTX_SIZE to RTX_CODE_SIZE.
1433         * emit-rtl.c (copy_rtx_if_shared_1): Use shallow_copy_rtx.
1434         (copy_insn_1): Likewise.  Don't copy each field individually.
1435         Reindent.
1436         * read-rtl.c (apply_macro_to_rtx): Use RTX_CODE_SIZE instead
1437         of RTX_SIZE.
1438         * reload1.c (eliminate_regs): Use shallow_copy_rtx.
1439         * rtl.c (rtx_size): Rename variable to...
1440         (rtx_code_size): ...this.
1441         (rtx_size): New function.
1442         (rtx_alloc_stat): Use RTX_CODE_SIZE instead of RTX_SIZE.
1443         (copy_rtx): Use shallow_copy_rtx.  Don't copy each field individually.
1444         Reindent.
1445         (shallow_copy_rtx_stat): Use rtx_size instead of RTX_SIZE.
1446         * rtl.h (rtx_code_size): New variable.
1447         (rtx_size): Change from a variable to a function.
1448         (RTX_SIZE): Rename to...
1449         (RTX_CODE_SIZE): ...this.
1450
1451         PR target/9703
1452         PR tree-optimization/17106
1453         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Document.
1454         (Anchored Addresses): New section.
1455         * doc/invoke.texi (-fsection-anchors): Document.
1456         * doc/rtl.texi (SYMBOL_REF_IN_BLOCK_P, SYMBOL_FLAG_IN_BLOCK): Likewise.
1457         (SYMBOL_REF_ANCHOR_P, SYMBOL_FLAG_ANCHOR): Likewise.
1458         (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): Likewise.
1459         * hooks.c (hook_bool_mode_rtx_false): New function.
1460         * hooks.h (hook_bool_mode_rtx_false): Declare.
1461         * gengtype.c (create_optional_field): New function.
1462         (adjust_field_rtx_def): Add the "block_sym" field for SYMBOL_REFs when
1463         SYMBOL_REF_IN_BLOCK_P is true.
1464         * target.h (output_anchor, use_blocks_for_constant_p): New hooks.
1465         (min_anchor_offset, max_anchor_offset): Likewise.
1466         (use_anchors_for_symbol_p): New hook.
1467         * toplev.c (compile_file): Call output_object_blocks.
1468         (target_supports_section_anchors_p): New function.
1469         (process_options): Check that -fsection-anchors is only used on
1470         targets that support it and when -funit-at-a-time is in effect.
1471         * tree-ssa-loop-ivopts.c (prepare_decl_rtl): Only create DECL_RTL
1472         if the decl doesn't have one.
1473         * dwarf2out.c: Remove instantiations of VEC(rtx,gc).
1474         * expr.c (emit_move_multi_word, emit_move_insn): Pass the result
1475         of force_const_mem through use_anchored_address.
1476         (expand_expr_constant): New function.
1477         (expand_expr_addr_expr_1): Call it.  Use the same modifier when
1478         calling expand_expr for INDIRECT_REF.
1479         (expand_expr_real_1): Pass DECL_RTL through use_anchored_address
1480         for all modifiers except EXPAND_INITIALIZER.  Use expand_expr_constant.
1481         * expr.h (use_anchored_address): Declare.
1482         * loop-unroll.c: Don't declare rtx vectors here.
1483         * explow.c: Include output.h.
1484         (validize_mem): Call use_anchored_address.
1485         (use_anchored_address): New function.
1486         * common.opt (-fsection-anchors): New switch.
1487         * varasm.c (object_block_htab, anchor_labelno): New variables.
1488         (hash_section, object_block_entry_eq, object_block_entry_hash)
1489         (use_object_blocks_p, get_block_for_section, create_block_symbol)
1490         (use_blocks_for_decl_p, change_symbol_section): New functions.
1491         (get_variable_section): New function, split out from assemble_variable.
1492         (make_decl_rtl): Create a block symbol if use_object_blocks_p and
1493         use_blocks_for_decl_p say so.  Use change_symbol_section if the
1494         symbol has already been created.
1495         (assemble_variable_contents): New function, split out from...
1496         (assemble_variable): ...here.  Don't output any code for
1497         block symbols; just pass them to place_block_symbol.
1498         Use get_variable_section and assemble_variable_contents.
1499         (get_constant_alignment, get_constant_section, get_constant_size): New
1500         functions, split from output_constant_def_contents.
1501         (build_constant_desc): Create a block symbol if use_object_blocks_p
1502         says so.  Or into SYMBOL_REF_FLAGS.
1503         (assemble_constant_contents): New function, split from...
1504         (output_constant_def_contents): ...here.  Don't output any code
1505         for block symbols; just pass them to place_section_symbol.
1506         Use get_constant_section and get_constant_alignment.
1507         (force_const_mem): Create a block symbol if use_object_blocks_p and
1508         use_blocks_for_constant_p say so.  Or into SYMBOL_REF_FLAGS.
1509         (output_constant_pool_1): Add an explicit alignment argument.
1510         Don't switch sections here.
1511         (output_constant_pool): Adjust call to output_constant_pool_1.
1512         Switch sections here instead.  Don't output anything for block symbols;
1513         just pass them to place_block_symbol.
1514         (init_varasm_once): Initialize object_block_htab.
1515         (default_encode_section_info): Keep the old SYMBOL_FLAG_IN_BLOCK.
1516         (default_asm_output_anchor, default_use_aenchors_for_symbol_p)
1517         (place_block_symbol, get_section_anchor, output_object_block)
1518         (output_object_block_htab, output_object_blocks): New functions.
1519         * target-def.h (TARGET_ASM_OUTPUT_ANCHOR): New macro.
1520         (TARGET_ASM_OUT): Include it.
1521         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): New macro.
1522         (TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET): New macros.
1523         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): New macro.
1524         (TARGET_INITIALIZER): Include them.
1525         * rtl.c (rtl_check_failed_block_symbol): New function.
1526         * rtl.h: Include vec.h.  Declare heap and gc rtx vectors.
1527         (block_symbol, object_block): New structures.
1528         (rtx_def): Add a block_symbol field to the union.
1529         (BLOCK_SYMBOL_CHECK): New macro.
1530         (rtl_check_failed_block_symbol): Declare.
1531         (SYMBOL_FLAG_IN_BLOCK, SYMBOL_FLAG_ANCHOR): New SYMBOL_REF flags.
1532         (SYMBOL_REF_IN_BLOCK_P, SYMBOL_REF_ANCHOR_P): New predicates.
1533         (SYMBOL_FLAG_MACH_DEP_SHIFT): Bump by 2.
1534         (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): New accessors.
1535         * output.h (output_section_symbols): Declare.
1536         (object_block): Name structure.
1537         (place_section_symbol, get_section_anchor, default_asm_output_anchor)
1538         (default_use_anchors_for_symbol_p): Declare.
1539         * Makefile.in (RTL_BASE_H): Add vec.h.
1540         (explow.o): Depend on output.h.
1541         * config/rs6000/rs6000.c (TARGET_MIN_ANCHOR_OFFSET): Override default.
1542         (TARGET_MAX_ANCHOR_OFFSET): Likewise.
1543         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
1544         (rs6000_use_blocks_for_constant_p): New function.
1545
1546 2006-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1547
1548         * doc/install.texi (hppa*-hp-hpux*): Update for 4.1.0.
1549
1550 2006-02-18  Andrew Pinski  <pinskia@physics.uc.edu>
1551
1552         PR tree-opt/25680
1553         * tree-ssa-ccp.c (ccp_fold): Handle store CCP of REALPART_EXPR and
1554         IMAGPART_EXPR.
1555
1556 2006-02-18  Diego Novillo  <dnovillo@redhat.com>
1557
1558         * tree-flow.h (struct var_ann_d): Rename field is_alias_tag to
1559         is_aliased.
1560         Update all users.
1561
1562 2006-02-18  Jakub Jelinek  <jakub@redhat.com>
1563
1564         PR middle-end/26334
1565         * stmt.c (decl_overlaps_hard_reg_set_p): Use DECL_HARD_REGISTER
1566         instead of DECL_REGISTER.
1567
1568 2006-02-18  Olivier Hainque  <hainque@adacore.com>
1569
1570         PR ada/13408
1571         * pa.h (WIDEST_HARDWARE_FP_SIZE): Define.
1572
1573 2006-02-18  Joseph S. Myers  <joseph@codesourcery.com>
1574
1575         PR target/24837
1576         * config.gcc: Define UCLIBC_DEFAULT to 0 or 1.
1577         * opth-gen.awk: Handle Var and InverseMask together.
1578         * config/linux.opt (muclibc, mglibc): Use Var(linux_uclibc).
1579         * config/linux.h: Use #if not #ifdef for testing UCLIBC_DEFAULT.
1580         (TARGET_C99_FUNCTIONS): Test OPTION_GLIBC not TARGET_GLIBC.
1581         (CHOOSE_DYNAMIC_LINKER): Give an error for -mglibc and -muclibc
1582         used together.
1583         (UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
1584         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
1585         * config/alpha/linux-elf.h (GLIBC_DYNAMIC_LINKER,
1586         UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
1587         LINUX_DYNAMIC_LINKER): Define.
1588         (ELF_DYNAMIC_LINKER): Define to LINUX_DYNAMIC_LINKER.
1589         * config/alpha/linux.h (TARGET_C99_FUNCTIONS): Define to
1590         TARGET_GLIBC.
1591         * config/cris/linux.h (GLIBC_DYNAMIC_LINKER): Define.
1592         (CRIS_LINK_SUBTARGET_SPEC): Pass a -dynamic-linker option.
1593         * config/frv/linux.h (GLIBC_DYNAMIC_LINKER): Define.
1594         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
1595         (TARGET_C99_FUNCTIONS): Don't define.
1596         * config/i386/linux.h (DYNAMIC_LINKER): Rename to
1597         GLIBC_DYNAMIC_LINKER.
1598         (SUBTARGET_EXTRA_SPECS): Use LINUX_DYNAMIC_LINKER.
1599         * config/i386/linux64.h (GLIBC_DYNAMIC_LINKER32,
1600         GLIBC_DYNAMIC_LINKER64): Define.
1601         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
1602         LINUX_DYNAMIC_LINKER64.
1603         * config/ia64/linux.h (GLIBC_DYNAMIC_LINKER): Define.
1604         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
1605         * config/m32r/linux.h (GLIBC_DYNAMIC_LINKE): Define.
1606         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
1607         * config/m68k/linux.h (GLIBC_DYNAMIC_LINKER): Define.
1608         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
1609         * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32,
1610         GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32,
1611         UCLIBC_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKERN32): Define.
1612         (LINK_SPEC): Use LINUX_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKER64
1613         and LINUX_DYNAMIC_LINKER32.
1614         * config/mn10300/linux.h (GLIBC_DYNAMIC_LINKER): Define.
1615         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
1616         * config/pa/pa-linux.h (GLIBC_DYNAMIC_LINKER): Define.
1617         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
1618         * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define to
1619         TARGET_GLIBC.
1620         * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
1621         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64,
1622         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
1623         CHOOSE_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
1624         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
1625         (LINK_OS_LINUX_SPEC32): Use LINUX_DYNAMIC_LINKER32.
1626         (LINK_OS_LINUX_SPEC64): Use LINUX_DYNAMIC_LINKER64.
1627         * config/rs6000/sysv4.h (GLIBC_DYNAMIC_LINKER,
1628         UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
1629         LINUX_DYNAMIC_LINKER): Define.
1630         (LINK_OS_LINUX_SPEC): Use LINUX_DYNAMIC_LINKE.
1631         * config/s390/linux.h (GLIBC_DYNAMIC_LINKER32,
1632         GLIBC_DYNAMIC_LINKER64): Define.
1633         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
1634         LINUX_DYNAMIC_LINKER64.
1635         * config/sh/linux.h (GLIBC_DYNAMIC_LINKER): Define.
1636         (SUBTARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
1637         * config/sparc/linux.h (GLIBC_DYNAMIC_LINKER,
1638         UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
1639         LINUX_DYNAMIC_LINKER): Define.
1640         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
1641         (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
1642         * config/sparc/linux64.h (GLIBC_DYNAMIC_LINKER32,
1643         GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER32,
1644         UCLIBC_DYNAMIC_LINKER64, CHOOSE_DYNAMIC_LINKER,
1645         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
1646         (LINK_ARCH32_SPEC): Use LINUX_DYNAMIC_LINKER32.
1647         (LINK_ARCH64_SPEC, LINK_SPEC): Use LINUX_DYNAMIC_LINKER64.
1648         (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
1649         * config/xtensa/linux.h (GLIBC_DYNAMIC_LINKER): Define.
1650         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
1651         * doc/invoke.texi (-muclibc): Remove caveat about supported
1652         targets.
1653
1654 2006-02-17  Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
1655
1656         * doc/cpp.texi (__TIMESTAMP__): Document.
1657
1658 2006-02-17  Roger Sayle  <roger@eyesopen.com>
1659
1660         PR middle-end/25600
1661         * fold-const.c (fold_binary): Fold (X >> C) != 0 into X < 0 when
1662         C is one less than the width of X (and related transformations).
1663         * simplify-rtx.c (simplify_unary_operation_1): Transform
1664         (neg (lt x 0)) into either (ashiftrt X C) or (lshiftrt X C)
1665         depending on STORE_FLAG_VALUE, were C is one less then the
1666         width of X.
1667
1668 2006-02-17  Daniel Berlin  <dberlin@dberlin.org>
1669
1670         Fix PR tree-optimization/26341
1671         * tree-ssa-operands.c (add_virtual_operand): Remove assert
1672         about NAME_MEMORY_TAG's.
1673
1674 2006-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1675
1676         PR target/26255
1677         * pa.md: Create separate HI and QI move patterns for 32-bit and 64-bit
1678         with hardware float support, and software float support.  Add fcpy
1679         alternative to hardware patterns.  Add alternatives to copy between
1680         general and floating-point registers to the 32-bit pattern.
1681         * pa.c (pa_secondary_reload): Don't abort if reload tries to find a
1682         secondary reload to load a QI or HI mode constant into a floating
1683         point register.
1684         * pa32-regs.h (VALID_FP_MODE_P): Allow QImode and HImode.
1685         * pa64-regs.h (VALID_FP_MODE_P): Likewise.
1686
1687 2006-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
1688
1689         PR target/26272
1690         * config/rs6000/darwin.md (load_macho_picbase_si): Add
1691         pc to the pattern.
1692         (load_macho_picbase_di): Likewise.
1693
1694 2006-02-16  Jeff Law  <law@redhat.com>
1695
1696         * tree-vrp.c (set_value_range_to_nonnegative): New function.
1697         (vrp_expr_computes_nonnegative, ssa_name_nonnegative_p): Likewise.
1698         (ssa_name_nonzero_p): Likewise.
1699         (get_value_range): Return NULL if VRP is not running.
1700         (extract_range_from_expr): Fallback to tree_expr_XXX_p if
1701         VRP routines do not discover a range.
1702         (vrp_finalize): Clear VR_VALUE to indicate VRP is not running.
1703         * tree.h (ssa_name_nonzero_p, ssa_name_nonnegative_p): Prototype.
1704         * fold-const.c (tree_expr_nonzero_p): For SSA_NAMEs, query VRP.
1705         (tree_expr_nonnegative_p): Similarly.
1706         * tree-ssa-dom.c (nonzero_vars, nonzero_vars_stack): Remove.
1707         (restore_nonzero_vars_to_original_value): Remove.
1708         (unsafe_associative_fp_binop): Remove.
1709         (tree_ssa_dominator_optimize): Remove initialization and
1710         finalization of nonzero_vars and nonzero_vars_stack.
1711         (dom_opt_initialize_block): No longer push marker on
1712         nonzero_vars_stack.
1713         (dom_opt_finalize_block): No longer call
1714         restore_nonzero_vars_to_original_value.
1715         (record_equivalences_from_phis): No longer look for
1716         nonzero PHI arguments.
1717         (cprop_into_successor_phis): No longer propagate nonzero
1718         property into PHI arguments.  Lose unused argument.  Caller
1719         updated.
1720         (record_equivalences_from_stmt): No longer record nonzero
1721         values for SSA_NAMEs.
1722         (lookup_avail_expr): No longer use nonzero_vars.
1723
1724         * stor-layout.c (set_sizetype): Set TYPE_MAX_VALUE properly
1725         for sizetype when sizetype is unsigned.
1726
1727 2006-02-16  Denis Nagorny <denis_nagorny@linux.intel.com>
1728
1729         PR rtl-optimization/25603
1730         * reload.c (reg_inc_found_and_valid_p): New. Check REG_INC note.
1731         (regno_clobbered_p): Use it. Reusing SETS argument for REG_INC case.
1732         * reload1.c (choose_reload_regs): Added call of regno_clobbered_p
1733         with new meaning of SETS.
1734
1735 2006-02-16  Joseph S. Myers  <joseph@codesourcery.com>
1736
1737         PR target/20353
1738         PR target/24578
1739         PR target/24837
1740         * config/linux.opt: New file.
1741         * config/linux.h (CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
1742         LINUX_DYNAMIC_LINKER): Define.
1743         (TARGET_C99_FUNCTIONS): Define depending on TARGET_GLIBC.
1744         * config.gcc (*-*-linux*): Define extra_options.
1745         (*-*-*uclibc*): Define UCLIBC_DEFAULT.
1746         (arm*-*-linux-gnueabi): Change to arm*-*-linux-*eabi.
1747         * config/arm/linux-eabi.h (LINUX_TARGET_INTERPRETER): Change to
1748         GLIBC_DYNAMIC_LINKER.
1749         * config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): Likewise.
1750         (LINUX_TARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
1751         * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Define.
1752         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
1753         * doc/invoke.texi (GNU/Linux Options): New section.
1754
1755 2006-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
1756
1757         * config/sparc/sparc.md (setjmp): Rewrite.
1758         (setjmp_32): Delete.
1759         (setjmp_64): Likewise.
1760
1761 2006-02-16  Daniel Berlin <dberlin@dberlin.org>
1762
1763         * tree-ssa-operands.c (access_can_touch_variable): Fix typo in
1764          previous change.
1765
1766 2006-02-16  Zdenek Dvorak <dvorakz@suse.cz>
1767
1768         * loop-invariant.c (invariant_for_use, check_dependencies): Fail for
1769         read-write uses.
1770
1771 2006-02-16  Zdenek Dvorak <dvorakz@suse.cz>
1772
1773         PR rtl-optimization/26296
1774         * Makefile.in (loop-invariant.c): Add except.h dependency.
1775         * loop-invariant.c: Include except.h.
1776         (find_invariant_insn): Ignore insns satisfying can_throw_internal.
1777
1778 2005-02-16  Paul Brook  <paul@codesourcery.com>
1779
1780         * reload1.c (emit_reload_insns): Invalidate dead input registers used
1781         for reloads.
1782
1783 2006-02-16  Bernd Schmidt  <bernd.schmidt@analog.com>
1784
1785         PR rtl-optimization/25636
1786         * local-alloc.c (update_equiv_regs): Lose a bogus rtx_equal_p test
1787         when deciding whether an insn is an initializing insn.
1788
1789 2006-02-15 Daniel Berlin  <dberlin@dberlin.org>
1790
1791         * tree.c (init_ttree): Add STRUCT_FIELD_TAG handling.
1792         (tree_code_size): Ditto.
1793         * tree.h (struct tree_memory_tag): Remove parent_var.
1794         (struct tree_struct_field_tag): New.
1795         (SFT_OFFSET): New.
1796         (SFT_SIZE): New.
1797         (union tree_node): Add sft member.
1798         * tree-ssa-alias.c (get_tmt_for): Don't handle TYPE_READONLY
1799         specially here.
1800         (create_sft): Add size and offset argument, set SFT_OFFSET and
1801         SFT_SIZE.
1802         (create_overlap_variables_for): Update for SFT_OFFSET/SFT_SIZE.
1803         * treestruct.def: Add TS_STRUCT_FIELD_TAG.
1804         * tree-flow-inline.h (get_subvar_at): Update for
1805         SFT_OFFSET/SFT_SIZE.
1806         (var_can_have_subvars): Ditto.
1807         (overlap_subvar): Ditto.
1808         * print-tree.c (print_node): Print out interesting things for
1809         SFT's.
1810         * tree-flow.h (struct subvar): Remove offset and size members.
1811         * tree-ssa-operands.c (get_expr_operands): Update for
1812         get_indirect_ref_operands changes.
1813         (get_indirect_ref_operands): Call add_virtual_operand instead of
1814         add_stmt_operand.  Only recurse on base var if requested.
1815         (access_can_touch_variable): New function.
1816         (add_stmt_operand): Split virtual operand handling into ...
1817         (add_virtual_operand): Here.  Add offset, size, and for_clobber
1818         arguments.  Prune alias sets.
1819         (add_call_clobber_ops): Call add_virtual_operand.
1820
1821 2006-02-15  Jakub Jelinek  <jakub@redhat.com>
1822
1823         PR middle-end/26300
1824         * combine.c (make_extraction): Bail out if ORIG_POS is negative.
1825
1826         * tree.h (struct tree_omp_clause): Use OMP_CLAUSE_CODE rather
1827         than TREE_CODE as index into omp_clause_num_ops array.
1828
1829 2006-02-15  Uttam Pawar  <uttamp@us.ibm.com>
1830
1831         PR rtl-optimization/26184
1832         * modulo-sched.c (generate_reg_moves): Free bitmap vector
1833         uses_of_defs.
1834         * modulo-sched.c (sms_schedule): Free g_arr pointer.
1835         * modulo-sched.c (sms_schedule_by_order): Free bitmap pointers
1836         must_precede, must_follow and tobe_scheduled.
1837
1838         PR other/26147
1839         * opts.c (common_handle_option): Free new_option pointer.
1840         * df-core.c (df_analyze): Free postorder pointer.
1841
1842 2006-02-15  Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
1843
1844         * Makefile.in: Fix the examples about the use of stamps
1845
1846 2006-02-15  Michael Matz  <matz@suse.de>
1847
1848         PR middle-end/22275
1849
1850         * stor-layout.c (layout_decl): Zero-width bitfields aren't
1851         influenced by maximum_field_alignment or DECL_PACKED.
1852         (update_alignment_for_field): Ditto.
1853         (place_field): Ditto.
1854         * doc/extend.texi (<#pragma pack>, <Type Attributes>): Document
1855         this behaviour.
1856
1857 2006-02-15  Paolo Bonzini  <bonzini@gnu.org>
1858
1859         * cfg.c (dump_flow_info): Get dump flags as an additional parameter.
1860         (debug_flow_info): Pass it.
1861         * alias.c (rest_of_handle_cfg): Adjust calls to dump_flow_info.
1862         * bb-reorder.c (reorder_basic_blocks): Likewise.
1863         * cfgcleanup.c (rest_of_handle_jump2): Likewise.
1864         * cse.c (rest_of_handle_cse, rest_of_handle_cse2): Likewise.
1865         * flow.c (life_analysis, recompute_reg_usage): Likewise.
1866         * gcse.c (gcse_main, bypass_jumps): Likewise.
1867         * ifcvt.c (rest_of_handle_if_conversion): Likewise.
1868         * local-alloc.c (rest_of_handle_local_alloc): Likewise.
1869         * loop-init.c (rtl_loop_init, rtl_loop_done): Likewise.
1870         * profile.c (compute_branch_probabilities, branch_prob): Likewise.
1871         * rtl.h (dump_flow_info): Adjust prototype.
1872         * tracer.c (rest_of_handle_tracer, tracer): Likewise.
1873         * var-tracking.c (variable_tracking_main): Likewise.
1874         * passes.c (execute_todo): Obey TDF_BLOCKS for RTL.
1875         * tree-dump.c (enable_rtl_dump_file): Enable the details and blocks
1876         options.
1877
1878 2006-02-15  Marcin Dalecki <martin@dalecki.de>
1879
1880         * tree-ssa-dom.c (dom_thread_across_edge): fix tag expression
1881         construction.
1882
1883 2006-02-14  Zdenek Dvorak <dvorakz@suse.cz>
1884
1885         PR tree-optimization/26209
1886         * tree-ssa-loop.c (pass_scev_cprop): Add TODO_cleanup_cfg.
1887         * tree-cfgcleanup.c (cleanup_control_flow): Remove dead
1888         eh edges.
1889         * tree-cfg.c (replace_uses_by): Do not alter cfg.
1890
1891 2006-02-14  Roger Sayle  <roger@eyesopen.com>
1892
1893         PR middle-end/23670
1894         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Optimize (X&Y)|Y into
1895         (X,Y) and the corresponding symmetry related transformations.
1896         (fold_binary) <BIT_AND_EXPR>: Likewise, optimize (X|Y)&Y into
1897         (X,Y) and its symmetry related transformations.
1898
1899 2006-02-14  Roger Sayle  <roger@eyesopen.com>
1900
1901         * dojump.c (do_compare_rtx_and_jump): Also handle multi-word GTU
1902         and GEU.
1903
1904 2006-02-14  Adam Nemet  <anemet@caviumnetworks.com>
1905
1906         * simplify-rtx.c (simplify_subreg): Combine SUBREG and TRUNCATE.
1907
1908 2006-02-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1909
1910         PR bootstrap/26053
1911         * configure.ac (HAVE_COMDAT_GROUP): Don't assume non-GNU linkers
1912         support COMDAT group.
1913         * configure: Regenerate.
1914
1915 2006-02-14  Roger Sayle  <roger@eyesopen.com>
1916
1917         PR middle-end/26279
1918         PR middle-end/26280
1919         PR middle-end/26283
1920         * dojump.c (do_compare_rtx_and_jump): Handle multi-word LE.
1921
1922 2006-02-14  Daniel Berlin  <dberlin@dberlin.org>
1923
1924         Fix PR tree-optimization/26260
1925
1926         * doc/invoke.texi (max-fields-for-field-sensitive): Document
1927         param.
1928         * params.h (MAX_FIELDS_FOR_FIELD_SENSITIVE): New.
1929         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Ditto.
1930         * tree-ssa-structalias.c (create_variable_info_for): Use
1931         MAX_FIELDS_FOR_FIELD_SENSITIVE.
1932
1933 2006-02-14  Zdenek Dvorak <dvorakz@suse.cz>
1934
1935         * doc/invoke.texi (-fprefetch-loop-arrays, -fprefetch-loop-arrays-rtl):
1936         Document.
1937         * tree-ssa-loop-niter.c (number_of_iterations_ne,
1938         number_of_iterations_lt, number_of_iterations_cond): Remember the shape
1939         of the ending condition.
1940         * tree-ssa-loop-manip.c: Include params.h.
1941         (build_if_stmt, can_unroll_loop_p, determine_exit_conditions,
1942         tree_unroll_loop): New functions.
1943         * tree-pass.h (pass_loop_prefetch): Declare.
1944         * loop.c (rest_of_handle_loop_optimize): Test for
1945         -fprefetch-loop-arrays-rtl.
1946         * tree-scalar-evolution.h (affine_iv): Moved to tree-flow.h.
1947         * timevar.def (TV_TREE_PREFETCH): New timevar.
1948         * tree-ssa-loop.c (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch,
1949         pass_loop_prefetch): New.
1950         * tree-cfgcleanup.c: Include tree-scalar-evolution.h.
1951         (cleanup_tree_cfg_loop): Call scev_reset.
1952         * common.opt (fprefetch-loop-arrays-rtl): Add.
1953         * tree-ssa-loop-prefetch.c: New file.
1954         * tree-outof-ssa.c (struct value_expr_d): Add expr_vars field.
1955         (new_temp_expr_table): Initialize expr_vars.
1956         (free_temp_expr_table): Cleanup expr_vars.
1957         (check_replaceable, find_replaceable_in_bb): Prevent accumulating
1958         expressions from being merged into one.
1959         * tree-flow.h (affine_iv): Moved from tree-scalar-evolution.h.
1960         (struct tree_niter_desc): Add control, bound and cmp fields.
1961         (tree_ssa_prefetch_arrays, can_unroll_loop_p, tree_unroll_loop):
1962         Declare.
1963         * Makefile.in (tree-ssa-loop-prefetch.o): Add.
1964         (tree-cfgcleanup.o): Add SCEV_H dependency.
1965         (tree-ssa-loop-manip.o): Add PARAMS_H dependency.
1966         * passes.c (init_optimization_passes): Add pass_loop_prefetch.
1967
1968 2006-02-14  Richard Guenther  <rguenther@suse.de>
1969
1970         PR tree-optimization/26258
1971         * tree-ssa-structalias.c (find_func_aliases): Handle aggregates
1972         in PHI argument processing.
1973
1974 2006-02-13  Adam Nemet  <anemet@caviumnetworks.com>
1975
1976         * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: Return
1977         new expression in the requested machine mode.
1978
1979 2006-02-13  Roger Sayle  <roger@eyesopen.com>
1980
1981         * optabs.c (expand_abs): Don't call do_jump_by_parts_greater_rtx
1982         directly, instead let do_compare_rtx_and_jump handle this for us.
1983         * expr.c (expand_expr_real_1): Likewise.
1984         * dojump.c (do_jump_by_parts_greater_rtx): Make static.  Move
1985         before do_jump_by_parts_greater.
1986         (do_jump_by_parts_greater): Move after do_jump_by_parts_greater_rtx.
1987         * expr.h (do_jump_by_parts_greater_rtx): Delete prototype.
1988
1989 2006-02-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1990
1991         * pa/quadlib.c: Use defines instead of enum qfcmp_magic.
1992
1993 2006-02-13  Zdenek Dvorak <dvorakz@suse.cz>
1994
1995         PR rtl-optimization/26235
1996         * loop-invariant.c (hash_invariant_expr_1): Handle 'i' and 'n' formats.
1997         (invariant_expr_equal_p): Handle 'i' and 'n' formats.  Fail on unknown
1998         format.
1999
2000 2006-02-13  Jeff Law  <law@redhat.com>
2001
2002         * tree-vrp.c (extract_range_from_binary_expr): Remove handling of
2003         TRUTH_XOR_EPR.
2004
2005 2006-02-13  Jakub Jelinek  <jakub@redhat.com>
2006
2007         PR middle-end/26092
2008         * gimplify.c (gimplify_call_expr): Don't call get_callee_fndecl
2009         twice if decl is a builtin.  When trying again, call get_callee_fndecl
2010         first to verify it is still a builtin.
2011
2012 2006-02-13  Geoffrey Keating  <geoffk@apple.com>
2013
2014         * dwarf2out.c (base_type_die): Don't add AT_name here.
2015         (subrange_type_die): Don't add AT_name here.
2016         (modified_type_die): Rearrange code flow.  Do add AT_name here.
2017
2018 2006-02-13  Zdenek Dvorak <dvorakz@suse.cz>
2019
2020         PR rtl-optimization/26247
2021         PR rtl-optimization/26248
2022         * loop-invariant.c (may_assign_reg_p): Do not allow VOIDmode.
2023
2024 2006-02-13  Richard Sandiford  <richard@codesourcery.com>
2025
2026         * config/floatunditf.c: Use if __LDBL_MANT_DIG__ == 113.
2027         * config/fixtfdi.c: Likewise.
2028         * config/fixunstfdi.c: Likewise.
2029         * config/floatditf.c: Likewise.
2030
2031 2006-02-13  Roger Sayle  <roger@eyesopen.com>
2032
2033         PR middle-end/24427
2034         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Transform (X&C1)|C2
2035         into (X,C2) if C1 is a subset of the bits of C2.  Transform
2036         (X&C1)|C2 into X|C2 if C1|C2 == ~0.  Canonicalize (X&C1)|C2 as
2037         (X&(C1&~C2))|C2.
2038         <BIT_AND_EXPR>: Canonicalize (X|C1)&C2 as (X&C2)|(C1&C2).
2039
2040 2006-02-13  Josh Conner  <jconner@apple.com>
2041
2042         PR target/25376
2043         * varasm.c (function_section): Check for section name before
2044         calling select_section on targets that define
2045         USE_SELECT_SECTION_FOR_FUNCTIONS.  On other targets, use
2046         unlikely_text_section instead of hot_function_section if
2047         first_function_block_is_cold.
2048
2049 2006-02-13  J"orn Rennecke <joern.rennecke@st.com>
2050
2051         PR middle-end/25335
2052         * reload1.c (gen_reload): Also use find_replacement in UNARY_P case.
2053
2054 2006-02-12  Zdenek Dvorak <dvorakz@suse.cz>
2055
2056         PR rtl-optimization/26222
2057         * function.c (assign_stack_temp_for_type): Do not reuse stack slots
2058         after tree->rtl expansion.
2059         * loop-invariant.c (move_invariant_reg): Use force_operand on rhs
2060         before passing it to emit_move_insn.
2061
2062 2006-02-12  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2063
2064         * doc/invoke.texi (-Write-strings): Document that it is enabled by
2065         default.
2066         * c.opt (-Wwrite-strings): Declare variable warn_write_strings.
2067         Clarify documentation.
2068         * c-common.h (warn_write_strings): Remove.
2069         * c-common.c (warn_write_strings): Likewise.
2070         * c-opts.c (c_common_init_options): Enable -Wwrite-strings by
2071         default for C++.
2072
2073 2006-02-12  Roger Sayle  <roger@eyesopen.com>
2074
2075         PR middle-end/25724
2076         * dojump.c (do_jump): Call do_compare_rtx_and_jump.
2077         (do_jump_parts_zero_rtx): New function renamed from
2078         do_jump_parts_equality_rtx.  Made static.  Add a mode argument.
2079         (do_jump_parts_equality_rtx): New function split out from
2080         do_jump_parts_equality.  Old implementation renamed as above.
2081         Call do_jump_parts_zero_rtx if either operand is zero.
2082         (do_jump_parts_equality): Call do_jump_parts_equality_rtx to
2083         do all of the heavy lifting.
2084         (do_compare_rtx_and_jump): Handle multi-word comparisons by
2085         calling either do_jump_by_parts_greater_rtx or
2086         do_jump_by_parts_equality_rtx.
2087         * expr.h (do_jump_by_parts_equality_rtx): Remove prototype.
2088         * expmed.c (do_cmp_and_jump): Now multi-word optimization has
2089         moved to do_compare_rtx_and_jump, call it directly.
2090         * stmt.c (do_jump_if_equal): Remove static prototype.  Add a
2091         mode argument.  Call do_compare_rtx_and_jump.
2092         (emit_case_nodes): Update calls to do_jump_if_equal.
2093
2094 2006-02-12  Zdenek Dvorak <dvorakz@suse.cz>
2095
2096         PR rtl-optimization/26225
2097         * loop-invariant.c (may_assign_reg_p): Do not allow BLKmode operands.
2098
2099 2006-02-12  Zdenek Dvorak <dvorakz@suse.cz>
2100
2101         PR rtl-optimization/26232
2102         * loop-invariant.c (find_invariant_insn): Ignore insns that set CC0.
2103
2104 2006-02-11  Jason Merrill  <jason@redhat.com>
2105
2106         PR tree-opt/24365
2107         * tree-inline.c (declare_return_variable): Just don't use the
2108         modify target if it's a gimple complex reg and the return slot
2109         isn't.
2110
2111 2006-02-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2112
2113         * doc/contrib.texi: Update my entry.
2114
2115 2006-02-10  Geoffrey Keating  <geoffk@apple.com>
2116
2117         * config/i386/darwin.h (DBX_REGISTER_NUMBER): Define.
2118
2119 2006-02-10  Diego Novillo  <dnovillo@redhat.com>
2120
2121         * tree-inline.c (estimate_num_insns_1): Make OpenMP directives
2122         expensive.
2123
2124 2006-02-10  Zdenek Dvorak <dvorakz@suse.cz>
2125
2126         * doc/invoke.texi (-floop-optimize2): Removed.
2127         * toplev.c (process_options): Remove handling of flag_loop_optimize2.
2128         * loop-init.c (gate_handle_loop2): Do not test flag_loop_optimize2.
2129         Test flag_branch_on_count_reg only if HAVE_doloop_end.
2130         * common.opt (floop-optimize2): Removed.
2131         (fmove-loop-invariants): Enabled by default.
2132
2133 2006-02-10  Sebastian Pop  <pop@cri.ensmp.fr>
2134
2135         * tree-if-conv.c (combine_blocks): Free the result of
2136         get_loop_exit_edges.
2137
2138 2006-02-10  Jeff Law  <law@redhat.com>
2139
2140         * fold-const.c (tree_expr_nonzero_p): Fix thinko.
2141
2142         PR tree-optimization/26213
2143         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Do not
2144         loop trying to follow SSA_NAME_VALUE chains.
2145
2146 2006-02-10  Richard Guenther  <rguenther@suse.de>
2147
2148         * tree-dfa.c (get_ref_base_and_extent): When computing maxsize
2149         deal with structures that end in implicitly variable sized arrays.
2150
2151 2006-02-09  Zdenek Dvorak <dvorakz@suse.cz>
2152
2153         PR rtl-optimization/24762
2154         * df-scan.c (df_bb_refs_record): Record correct registers defined on
2155         eh edges.
2156
2157 2006-02-09  Zdenek Dvorak <dvorakz@suse.cz>
2158
2159         * tree-ssa-loop-ivopts.c (struct loop_data, loop_data): Removed.
2160         (struct ivopts_data): Add regs_used field.
2161         (tree_ssa_iv_optimize_init): Do not allocate aux fields for loops.
2162         (ivopts_global_cost_for_size, determine_set_costs): Use data->regs_used
2163         instead of loop_data->regs_used;
2164         (free_loop_data): Do not free aux fields for loops.
2165         (tree_ssa_iv_optimize): Do not pass loops to tree_ssa_iv_optimize_init
2166         and tree_ssa_iv_optimize_finalize.
2167
2168 2006-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>
2169
2170         * config/sh/sh.h (FUNCTION_VALUE): Don't handle CHAR_TYPE.
2171
2172 2006-02-09  J"orn Rennecke <joern.rennecke@st.com>
2173
2174         PR target/26141
2175         * sh.c (sh_gimplify_va_arg_expr): Don't change the result type when
2176         computing the effective result type.
2177
2178 2006-02-09  J"orn Rennecke <joern.rennecke@st.com>
2179
2180         PR inline-asm/16194
2181         * tree.h (decl_overlaps_hard_reg_set_p) Don't declare.
2182         (tree_overlaps_hard_reg_set): Declare.
2183         * stmt.c (decl_overlaps_hard_reg_set_p): Now static.  Change return
2184         type and signature to match function type expected by walk_tree.
2185         (tree_overlaps_hard_reg_set): New function.
2186         (decl_conflicts_with_clobbers_p): Rename to:
2187         (tree_conflicts_with_clobbers_p).  Take HARD_REG_SET * argument.
2188         Use tree_overlaps_hard_reg_set.  Changed caller.
2189         * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Replace
2190         decl_overlaps_hard_reg_set_p with tree_overlaps_hard_reg_set.
2191         * cris.c (cris_md_asm_clobbers): Likewise.
2192
2193 2006-02-09  Bernd Schmidt  <bernd.schmidt@analog.com>
2194
2195         * reload1.c (emit_input_reload_insns): Delete code that tries to
2196         inherit using find_equiv_reg.
2197
2198 2006-02-09  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2199
2200         * c-common.h (flag_const_strings): Don't declare.
2201         * c-common.c (flag_const_strings): Remove.
2202         * c.opt (fconst_strings): Remove.
2203         * c-opts.c (c_common_handle_option): Remove <OPT_fconst_strings>.
2204         <OPT_Wwrite_strings>: Don't set flag_const_strings.
2205         (c_common_init_options): Don't set flag_const_strings.
2206         * doc/invoke.texi (-fno-const-strings): Remove documentation.
2207
2208 2006-02-09  Richard Earnshaw  <richard.earnshaw@arm.com>
2209
2210         * arm.md (tlobits_cbranch): New pattern.
2211         * arm.h (arm_select_cc_mode): For thumb, only return CC_Nmode if
2212         testing a single bit.
2213
2214 2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
2215
2216         PR tree-opt/26179
2217         * tree-ssa-pre.c (create_component_ref_by_pieces):
2218         Handle RETURN_DECL like VAR_DECL.
2219
2220 2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
2221
2222         PR middle-end/26134
2223         * fold-const.c (fold_indirect_ref_1): Fold
2224         "*(foo *)&complexfoo" to "__real__ complexfoo"
2225         and "((foo*)&complexfoo)[1]" to "__imag__ complexfoo".
2226
2227 2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
2228
2229         * tree-flow-inline.h (var_can_have_subvars):
2230         Volatile variables should not have subvariables.
2231
2232 2006-02-09  Diego Novillo  <dnovillo@redhat.com>
2233
2234         PR 26180
2235         * tree-vrp.c (vrp_int_const_binop): Detect overflow when
2236         multiplying unsigned values.
2237         Tidy comments.
2238
2239 2006-02-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
2240
2241         * config/sparc/sparc.c (tls_call_delay): Fix oversight.
2242
2243 2006-02-08  Jason Merrill  <jason@redhat.com>
2244
2245         PR c++/25979
2246         * tree.def: Elaborate on difference from MODIFY_EXPR.
2247         * doc/c-tree.texi (INIT_EXPR): Likewise.
2248         * gimplify.c (internal_get_tmp_var): Use INIT_EXPR.
2249         (gimplify_decl_expr, gimplify_init_ctor_eval): Likewise.
2250         (gimplify_target_expr): Likewise.
2251         (gimplify_cond_expr): Remove target handling.
2252         (gimplify_modify_expr): Don't clobber INIT_EXPR code here.
2253         (gimplify_expr): Clobber it here.
2254         (gimplify_modify_expr_rhs): Push assignment into COND_EXPR here.
2255         Do return slot optimization if we have an INIT_EXPR.
2256
2257         PR tree-opt/24365
2258         * tree-inline.c (declare_return_variable): Also clear
2259         DECL_COMPLEX_GIMPLE_REG_P as needed in the modify_dest case.
2260
2261         PR c++/16405
2262         * gimplify.c (gimplify_modify_expr_rhs): Re-enable *& handling.
2263
2264         PR middle-end/22439
2265         * gimplify.c (gimplify_one_sizepos): Fix typo.
2266
2267 2006-02-08  Jeff Law  <law@redhat.com>
2268
2269         PR tree-optimization/21417
2270         * tree-ssa-threadedge.c (thread_across_edge): Reject threading
2271         across a backedge if the control statement at the end of the
2272         block is data dependent on other statements in the same block.
2273         (record_temporary_equivalences_from_stmts): Remove over-conservative
2274         test for threading across backedges.
2275
2276         * tree-ssa-dce.c (remove_dead_statement): When removing a dead
2277         control statement, handle all three special cases in the same
2278         manner as they all have the same desired solution.  No longer
2279         special case edge flag updating when the post dominator is
2280         the exit block.
2281
2282 2006-02-08  Roger Sayle  <roger@eyesopen.com>
2283
2284         * tree.def (CHAR_TYPE): Remove.
2285         * dbxout.c (dbxout_type): Delete dead handling of CHAR_TYPE.
2286         * dwarf2out.c (base_type_die, is_base_type): Likewise.
2287         (gen_type_die) <ARRAY_TYPE>: Remove handling of CHAR_TYPE arrays.
2288         (gen_string_type_die): Delete unreachable function.
2289
2290         * tree-pretty-print.c (dump_generic_node): Don't handle CHAR_TYPE.
2291         * tree.c (build_int_cst_wide, type_contains_placeholder_1,
2292         type_hash_eq, variably_modified_type_p, walk_type_fields): Likewise.
2293         * tree.h (NUMERICAL_TYPE_CHECK, INTEGRAL_TYPE_P): Likewise.
2294         * builtins.c (type_to_class): Likewise.
2295         * fold-const.c (fold_convert, build_range_check,
2296         merge_ranges): Likewise.
2297         * expr.c (count_type_elements): Likewise.
2298         * c-pretty-print.c (pp_c_type_specifier): Likewise.
2299         * stor-layout.c (layout_type): Likewise.
2300         * ipa-type-escape.c (type_to_consider): Likewise.
2301         * gimplify.c (omp_firstprivatize_type_sizes,
2302         gimplify_type_sizes): Likewise.
2303         * explow.c (promote_mode): Likewise.
2304         * tree-sra.c (is_sra_scalar_type): Likewise.
2305         * varasm.c (output_constant): Likewise.
2306         * tree-inline.c (remap_type_1): Likewise.
2307         * convert.c (convert_to_pointer, convert_to_real,
2308         convert_to_integer, convert_to_complex): Likewise.
2309
2310 2006-02-08  Daniel Berlin  <dberlin@dberlin.org>
2311
2312         * df-scan.c (df_def_record_1): A set destination may
2313         be a parallel regardless of mode.
2314
2315 2006-02-08  Roger Sayle  <roger@eyesopen.com>
2316
2317         PR target/22209
2318         * config/mips/mips.h (MIN_UNITS_PER_WORD): Don't define for libgcc.
2319         * config/mips/_tilib.c: Remove.
2320         * config/fixtfdi.c: New libgcc source file.
2321         * config/fixunstfdi.c: New source file.
2322         * config/floatditf.c: New source file.
2323         * config/floatunditf.c: New souce file.
2324         * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source
2325         files above instead of config/mips/_tilib.c.
2326         * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise.
2327
2328 2006-02-08  Jeff Law  <law@redhat.com>
2329
2330         PR tree-optimization/26169
2331         * tree-vrp.c (execute_vrp): Perform any queued SSA updates before
2332         threading jumps.
2333
2334 2006-02-08  Zdenek Dvorak <dvorakz@suse.cz>
2335
2336         * df.h (DF_REG_SIZE): Return the length of the initialized
2337         part of the array.
2338
2339 2006-02-08  Nathan Sidwell  <nathan@codesourcery.com>
2340
2341         * gcc/config/m68k/lb1sf68.asm (__divsf3, __divdf3, __mulsf3,
2342         __muldf3): Return a correctly signed zero.
2343
2344 2006-02-08  Paolo Bonzini  <bonzini@gnu.org>
2345
2346         * passes.c (register_one_dump_file): Accept the current properties
2347         instead of pass number.  Adjust call to dump_register.  Remove
2348         duplicated code.
2349         (register_dump_files): Now a wrapper around...
2350         (register_dump_files_1): ... this one.  Do not modify the pass
2351         structure.
2352         (next_pass_1): Cosmetic fix.
2353         (execute_todo): Keep second parameter only.  Use curr_properties
2354         instead of fetching it from the pass structure.  Check and set
2355         last_verified.
2356         (execute_one_pass): Handle TODO_set_props.  Use curr_properties
2357         instead of fetching it from the pass structure.  Fix calls to
2358         execute_todo.  Update curr_properties and initialize .vcg RTL dump
2359         after running the pass.  Reset last_verified.
2360         * tree-dump.c (dump_files): Renumber consecutively.  Put .cgraph dump
2361         at the beginning.
2362         (FIRST_AUTO_NUMBERED_DUMP): New.
2363         (dump_register): Remove "num" parameter, assign it within the
2364         function.
2365         (get_dump_file_name): Modify template for dumps.
2366         * tree-dump.h (dump_register): Adjust prototype.
2367         * tree-pass.h (enum tree_dump_index): Move cgraph at the beginning.
2368         (PROP_trees): Add PROP_gimple_lomp.
2369         (TODO_set_props): New.
2370         * gimple-low.c (pass_lower_cf): Do not destroy PROP_gimple_lcf.
2371         * tree-eh.c (pass_lower_eh): Do not destroy PROP_gimple_leh.
2372         * cfgexpand.c (pass_expand): Destroy PROP_trees.
2373
2374 2006-02-08  Jakub Jelinek  <jakub@redhat.com>
2375
2376         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
2377         (sparc64-*-linux*): Likewise.
2378         * config/sparc/t-linux64 (SHLIB_MAPFILES): Removed.
2379         * config/sparc/t-linux: New file.
2380         * config/sparc/libgcc-sparc-glibc.ver (__fixtfdi, __fixunstfdi,
2381         __floatditf): Export at GCC_LDBL_3.0 if -m32 -mlong-double-128.
2382         (__divtc3, __multc3, __powitf2): Export at GCC_LDBL_4.0.0 if
2383         -m32 -mlong-double-128.
2384
2385         * config.gcc (alpha*-*-linux*): Add alpha/t-linux to tmake_file.
2386         * config/alpha/t-linux: New file.
2387         * config/alpha/libgcc-alpha-ldbl.ver: New file.
2388
2389         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Define
2390         __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128.
2391         (CPP_SUBTARGET_SPEC): Don't add -D__LONG_DOUBLE_128__ here.
2392         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Define
2393         __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128 and TARGET_ARCH32.
2394         (CPP_ARCH32_SPEC): Remove.
2395
2396 2006-02-07  Uttam Pawar  <uttamp@us.ibm.com>
2397
2398         PR tree-optimization/26145
2399         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Free
2400         bbs pointer.
2401
2402 2006-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2403
2404         PR target/26109
2405         * pa.c (attr_length_indirect_call): Don't return length 8 for distances
2406         >= 240000 when generating code for SOM runtime.
2407         (output_indirect_call): Don't use "b,l" instruction for indirect calls
2408         to $$dyncall when generating code for SOM runtime..
2409
2410 2006-02-07  Dirk Mueller  <dmueller@suse.com>
2411
2412         PR c++/18150
2413         * doc/invoke.texi (-Wsequence-point): Update documentation
2414         that -Wsequence-point is implemented for C++ as well.
2415
2416 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
2417
2418         * config/sol26.h (CPP_SUBTARGET_SPEC): Accept -pthread.
2419         * config/sol2.h (CPP_SUBTARGET_SPEC): Likewise.
2420         (LIB_SPEC): Likewise.
2421         * doc/invoke.texi (SPARC options): Document -pthread.
2422
2423 2006-02-07  Geoffrey Keating  <geoffk@apple.com>
2424
2425         * config/i386/i386.c (ix86_delegitimize_address): Support Darwin
2426         PIC addresses.
2427
2428 2006-02-07  Roger Sayle  <roger@eyesopen.com>
2429
2430         * config/sparc/sparc.c (sparc_type_code): Don't handle CHAR_TYPE.
2431         Correct comment describing BOOLEAN_TYPE.
2432
2433 2006-02-07  Dirk Mueller  <dmueller@suse.com>
2434
2435         * c.opt: C++ frontend supports -Wdiv-by-zero.
2436         * c-opts.c (c_common_handle_option): Remove dead case.
2437
2438 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
2439
2440         * configure.ac (TLS assembler check): Do not enable TLS by
2441         default on SPARC/Solaris before version 10.
2442         * configure: Regenerate.
2443
2444 2006-02-07  David Edelsohn  <edelsohn@gnu.org>
2445
2446         * doc/invoke.texi (xl-compat): Document conversion and support
2447         routine names.
2448
2449 2006-02-07  Jeff Law  <law@redhat.com>
2450
2451         * tree-vrp.c (find_conditional_asserts): Update comments.
2452         (simplify_stmt_for_jump_threading): New.
2453         (identify_jump_threads, finalize_jump_threads): New.
2454         (vrp_finalize): Call identify_jump_threads.
2455         (execute_vrp): Call finalize_jump_threads.
2456         * tree-ssa-dom.c (struct opt_stats_d): Remove num_iterations field.
2457         (vrp_element, vrp_data, vrp_element_p): Remove.
2458         (vrp_hash_elt, vrp_variables_stack): Remove.
2459         (vrp_hash, vrp_eq, record_range): Remove.
2460         (simplify_cond_and_lookup_avail_expr): Remove.
2461         (extract_range_from_cond): Remove.
2462         (thread_across_edge): Relocated into tree-ssa-threadedge.c.
2463         (simplify_stmt_for_jump_threading): New.
2464         (dom_thread_across_edge): New wrapper.
2465         (tree_ssa_dominator_optimize): No longer initialize or
2466         finalize any of the VRP datastructures.  Remove iteration
2467         step and simplify as a result of removal of iteration step.
2468         (pass_dominator): Perform a cfg cleanup after DOM.
2469         (dom_opt_finalize_block): Use the new common routines
2470         for threading jumps.  Simplify stack management slightly.
2471         No longer need to unwind VRP state.
2472         (record_equivalences_from_incoming_edge): No longer record
2473         VRP information.
2474         (eliminate_redundant_computations): No longer call
2475         simplify_cond_and_lookup_avail_expr.
2476         * tree-flow.h (potentially_threadable_block): Prototype.
2477         (thread_across_edge): Likewise.
2478         * Makefile.in (OBJS-common):  Add tree-ssa-threadedge.o
2479         (tree-ssa-threadedge.o): Add dependencies.
2480         * tree-ssa-threadedge.c: New file.
2481         * passes.c (init_optimization_passes): Merge PHIs before
2482         calling VRP.  Run VRP again late in the SSA optimization pipeline.
2483
2484 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
2485
2486         * df-core.c (df_set_blocks): Do not dereference function pointers.
2487         (df_finish1): Likewise.
2488         (df_hybrid_search_forward): Likewise.
2489         (df_hybrid_search_backward): Likewise.
2490         (df_iterative_dataflow): Likewise.
2491         (df_analyze_problem): Likewise.
2492         (df_compact_blocks): Likewise.
2493         (df_dump): Likewise.
2494         * df-scan.c (df_rescan_blocks): Likewise.
2495         (df_record_entry_block_defs): Likewise.
2496
2497         * genconditions.c (write_conditions): Guard the definition of
2498         'insn_conditions' with the check on GCC version.
2499         (write_writer): Guard the traversal 'insn_conditions' with
2500         the check on GCC version.
2501
2502 2006-02-07  Richard Guenther  <rguenther@suse.de>
2503
2504         PR c++/26140
2505         Revert
2506         2006-01-30  Richard Guenther  <rguenther@suse.de>
2507         PR c++/23372
2508         * gimplify.c (gimplify_target_expr): Handle easy cases
2509         without creating a temporary.
2510
2511 2006-02-07  Pete Steinmetz  <steinmtz@us.ibm.com>
2512
2513         * sched-rgn.c (compute_dom_prob_ps, compute_trg_info): Eradicate
2514         use of float in probability computations.  Use edge probabilities
2515         in place of statically computed probabilities.
2516         (min_spec_prob): New static variable.
2517         (schedule_insns): Initialize it.
2518         (GET_SRC_PROB): Removed.
2519         * doc/invoke.texi (min-sched-prob): Renamed to min-spec-prob.
2520
2521 2006-02-07  Alexandre Oliva  <aoliva@redhat.com>
2522
2523         PR debug/24444
2524         * config/ia64/unwind-ia64.c: Revert last change.
2525         * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Removed.
2526         (INCOMING_FRAME_SP_OFFSET): Define.
2527
2528 2006-02-06  Roger Sayle  <roger@eyesopen.com>
2529
2530         * config/ia64/ia64.c (hfa_element_mode): Don't handle CHAR_TYPE.
2531
2532 2006-02-07  Ben Elliston  <bje@au.ibm.com>
2533
2534         * config/i386/i386.c (ix86_scalar_mode_supported_p): New.
2535         (TARGET_SCALAR_MODE_SUPPORTED_P): Define hook.
2536         (classify_argument): Handle SDmode, DDmode, TDmode for 64-bit.
2537         (ix86_return_in_memory): Handle TDmode.
2538         (ix86_libcall_value): Handle SDmode, DDmode, TDmode.
2539         (ix86_value_regno): Return non-TDmode decimal float modes in %eax.
2540
2541 2006-02-06  Richard Sandiford  <richard@codesourcery.com>
2542
2543         * reorg.c (dbr_schedule): Use dump_file instead of file.
2544
2545 2006-02-06  Steve Ellcey  <sje@cup.hp.com>
2546
2547         PR target/25917
2548         * config/ia64/predicates.md (extr_len_operand): New predicate.
2549         * config/ia64/ia64.md (extv): Tighten constraints.
2550         (extzv): Ditto.
2551         (*tbit_and_2): Ditto.
2552         (*tbit_and_3): Ditto.
2553         (*tbit_or_2): Ditto.
2554         (*tbit_or_3): Ditto.
2555         (*bit_zero): Ditto.
2556         (*bit_one): Ditto.
2557
2558 2006-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
2559
2560         PR target/23359
2561         * config/i386/i386.md (trap): Use ASM_SHORT instead of .word.
2562
2563 2006-02-06  Zdenek Dvorak <dvorakz@suse.cz>
2564
2565         * tree-vrp.c (execute_vrp): Do not pass dump argument to.
2566         loop_optimizer_init and loop_optimizer_finalize
2567         * tree-ssa-sink.c (execute_sink_code): Ditto.
2568         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
2569         * tree-ssa-loop.c (tree_loop_optimizer_init, tree_ssa_loop_init,
2570         tree_ssa_loop_done): Ditto.
2571         * tree-ssa-pre.c (init_pre, fini_pre): Ditto.
2572         * sched-ebb.c: Include output.h.
2573         (schedule_ebbs): Do not use dump argument.
2574         * value-prof.h (struct profile_hooks): Remove profile_dump_file.
2575         * loop.c (loop_dump_stream): Removed.
2576         (loop_optimize, rest_of_handle_loop_optimize): Do not use dump
2577         argument.
2578         (scan_loop, move_movables, find_and_verify_loops, mark_loop_jump,
2579         emit_prefetch_instructions, loop_bivs_find, loop_bivs_check,
2580         final_biv_value, loop_biv_eliminable_p, loop_givs_rescan,
2581         loop_iterations, strength_reduce, record_biv, record_giv,
2582         final_giv_value, check_final_value, check_ext_dependent_givs,
2583         combine_givs, check_dbra_loop, maybe_eliminate_biv, load_mems,
2584         try_copy_prop, loop_delete_insns, try_swap_copy_prop): Use
2585         dump_file instead of loop_dump_stream.
2586         * ddg.c (print_ddg_edge, print_ddg, vcg_print_ddg): Do not call
2587         argument dump_file.
2588         * reorg.c (dbr_schedule, rest_of_handle_delay_slots): Do not use
2589         dump argument.
2590         * flow.c (life_analysis, rest_of_handle_life): Ditto.
2591         * haifa-sched.c: Include output.h
2592         (schedule_insns, sched_init): Do not use dump argument.
2593         * mode-switching.c (optimize_mode_switching): Ditto.
2594         * modulo-sched.c (stats_file): Removed.
2595         (print_node_sched_params): Do not call argument dump_file.
2596         (sms_schedule_by_order, loop_canon_p, sms_schedule,
2597         rest_of_handle_sms): Do not use dump argument.  Use dump_file instead
2598         of stats_file.
2599         * cse.c (cse_main, rest_of_handle_cse, rest_of_handle_cse2): Do not
2600         use dump argument.
2601         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize,
2602         rtl_loop_init, rtl_loop_done): Ditto.
2603         * global.c (global_alloc, rest_of_handle_global_alloc): Ditto.
2604         * predict.c (combine_predictions_for_bb, tree_estimate_probability):
2605         Ditto.
2606         * recog.c (peephole2_optimize, rest_of_handle_peephole2): Ditto.
2607         * lcm.c (pre_edge_lcm, pre_edge_rev_lcm): Ditto.
2608         * regmove.c (fixup_match_1, fixup_match_2, regmove_optimize,
2609         rest_of_handle_regmove, rest_of_handle_stack_adjustments): Ditto.
2610         * emit-rtl.c (renumber_insns): Ditto.
2611         * cfgexpand.c (add_reg_br_prob_note, expand_gimple_cond_expr,
2612         expand_gimple_basic_block, tree_expand_cfg): Ditto.
2613         * regclass.c (regclass): Ditto.
2614         * tree-outof-ssa.c (analyze_edges_for_bb, perform_edge_inserts,
2615         remove_ssa_form, rewrite_out_of_ssa): Ditto.
2616         * reg-stack.c (compensate_edge, compensate_edges, convert_regs_1,
2617         convert_regs_2, convert_regs, reg_to_stack, rest_of_handle_stack_regs):
2618         Ditto.
2619         * sched-rgn.c (schedule_insns, rest_of_handle_sched): Ditto.
2620         * local-alloc.c (rest_of_handle_local_alloc): Do not pass dump_file
2621         to regclass.
2622         * gcse.c (gcse_file, debug_stderr): Removed.
2623         (gcse_main, bypass_jumps, rest_of_handle_jump_bypass,
2624         rest_of_handle_gcse): Do not use dump argument.
2625         (cprop_jump, cprop_insn, do_local_cprop, cprop, find_implicit_sets,
2626         one_cprop_pass, bypass_block, compute_pre_data, insert_insn_end_bb,
2627         pre_edge_insert, pre_insert_copy_insn, pre_delete, one_pre_gcse_pass,
2628         compute_code_hoist_vbeinout, compute_code_hoist_data,
2629         one_code_hoisting_pass, trim_ld_motion_mems, update_ld_motion_stores,
2630         compute_store_table, build_store_vectors, insert_insn_start_bb,
2631         insert_store, remove_reachable_equiv_notes, replace_store_insn,
2632         store_motion): Use dump_file instead of gcse_file.
2633         * ipa-type-escape.c (type_escape_execute): Remove debugging comments.
2634         * profile.c (profile_dump_file): Removed.
2635         (branch_prob): Use dump_file instead of profile_dump_file.
2636         * ipa.c (cgraph_remove_unreachable_nodes): Do not call argument
2637         dump_file.
2638         * tree-ssa-copy.c (dump_copy_of): Ditto.
2639         * rtl-factoring.c (rtl_seqabstr, rest_of_rtl_seqabstr): Do not pass
2640         dump file to life_analysis.
2641         * bt-load.c (branch_target_load_optimize): Ditto.
2642         * cfgcleanup.c (rest_of_handle_jump2): Do not pass dump_file to
2643         renumber_insns.
2644         * rtl.h (cse_main, renumber_insns, schedule_insns, schedule_ebbs,
2645         regclass, dbr_schedule): Declaration changed.
2646         * sched-int.h (sched_init): Declaration changed.
2647         * tree-profile.c (tree_profile_dump_file): Removed.
2648         (tree_profile_hooks): Removed profile_dump_file hook.
2649         * rtl-profile (rtl_profile_dump_file): Removed.
2650         (rtl_profile_hooks): emoved profile_dump_file hook.
2651         * cfgloop.h (loop_optimizer_init, loop_optimizer_finalize): Declaration
2652         changed.
2653         * c-gimplify.c (c_genericize): Do not call local variable dump_file.
2654         * tree-cfg.c (build_tree_cfg): Ditto.
2655         * Makefile.in (haifa-sched.o, sched-ebb.o): Add output.h dependency.
2656         * basic-block.h (life_analysis, pre_edge_lcm, pre_edge_rev_lcm):
2657         Declaration changed.
2658         * config/sh/sh.c (sh_output_mi_thunk): Do not pass dump_file to
2659         life_analysis and schedule_insns.
2660         * config/m68hc11/m68hc11.c (m68hc11_reorg): Do not pass dump_file to
2661         life_analysis.
2662         * config/mt/mt.c (mt_machine_reorg): Do not pass dump_file to
2663         dbr_schedule.
2664         * config/mips/mips.c (mips_reorg): Ditto.
2665         * config/ia64/ia64.c (ia64_reorg): Do not pass dump_file to
2666         schedule_ebbs.
2667
2668 2006-02-06  Aldy Hernandez  <aldyh@redhat.com>
2669
2670         * config/s390/s390.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
2671         (s390_mangle_fundamental_type): New.
2672         * config/s390/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
2673         Define.
2674
2675         * config/alpha/alpha.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
2676         (alpha_mangle_fundamental_type): New.
2677         * config/alpha/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
2678         Define.
2679
2680         * config/sparc/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
2681         Define.
2682         * config/sparc/linux64.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
2683         Define.
2684         * config/sparc/sparc.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
2685         (sparc_mangle_fundamental_type): New.
2686
2687 2006-02-06  Jakub Jelinek  <jakub@redhat.com>
2688
2689         * config.gcc (s390-*-linux*): Add s390/t-linux to tmake_file.
2690         (s390x-*-linux*): Likewise.
2691         * config/s390/t-linux64 (SHLIB_MAPFILES): Removed.
2692         * config/s390/t-linux: New file.
2693
2694 2006-02-02  Bernd Schmidt  <bernd.schmidt@analog.com>
2695
2696         * config/i386/sync.md (sync_add<mode>, sync_sub<mode>, sync_ior<mode>,
2697         sync_and<mode>, sync_xor<mode>): Operand 0 is in-out.
2698
2699 2006-02-06  Daniel Berlin  <dberlin@dberlin.org>
2700
2701         * tree-ssa-pre.c (bb_value_sets_t): Add antic_safe_loads.
2702         (ANTIC_SAFE_LOADS): New macro.
2703         (find_or_generate_expression): Add prototype.
2704         (set_contains_value): Allow null set for sake of not always having
2705         to allocate ANTIC_SAFE_LOADS.
2706         (phi_translate): Move placement of AGGREGATE_TYPE_P check.
2707         Allow COMPONENT_REF too.
2708         (valid_in_set): Allow COMPONENT_REF.
2709         Check ANTIC_SAFE_LOADS too.
2710         (compute_antic_aux): Print out ANTIC_SAFE_LOADS.
2711         (compute_rvuse_and_antic_safe): Add ANTIC_SAFE computation, and
2712         rename.
2713         (can_PRE_operation): Add COMPONENT_REF.
2714         (create_component_ref_by_pieces): New function.
2715         (create_expression_by_pieces): Use create_component_ref_by_pieces.
2716         (insert_aux): Move AGGREGATE_TYPE_P check here.
2717         (compute_avail): Set bb local stmt uids.
2718         (pass_pre): Use TODO_update_ssa_only_virtuals.
2719
2720 2006-02-06  Ben Elliston  <bje@au.ibm.com>
2721
2722         * configure.ac: Unconditionally disable decimal float by default.
2723         * configure: Regenerate.
2724
2725 2006-02-06  Ben Elliston  <bje@au.ibm.com>
2726
2727         * read-rtl.c (read_name): Terminate reading on EOF.
2728
2729 2006-02-06  Ben Elliston  <bje@au.ibm.com>
2730
2731         * dfp.c (decimal_real_arithmetic): Change second argument type
2732         from int to enum tree_code. Do not always return true, but now
2733         return result of any call to decimal_do helper functions.
2734         * dfp.h (decimal_real_arithmetic): Update prototype.
2735
2736 2006-02-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
2737
2738         * config/sparc/sol2-bi.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDMID.
2739
2740 2006-02-05  Andrew Pinski  <pinskia@physics.uc.edu>
2741
2742         PR tree-opt/25251
2743         * tree-cfg.c (cleanup_dead_labels): Also don't remove
2744         forced labels.
2745
2746 2006-02-04  Zdenek Dvorak <dvorakz@suse.cz>
2747
2748         * tree-vrp.c (cfg_loops): Removed.
2749         (adjust_range_with_scev, vrp_visit_assignment, execute_vrp):
2750         Use current_loops instead of cfg_loops.  Pass flags to
2751         loop_optimizer_init.
2752         * cfgloopmanip.c (fix_loop_structure): Update only available
2753         information.
2754         * tree-ssa-loop-ch.c (copy_loop_headers): Pass flags to
2755         loop_optimizer_init.
2756         * modulo-sched.c (build_loops_structure): Removed.
2757         (sms_schedule): Use loop_optimizer_init.
2758         * loop-init.c (loop_optimizer_init): Use flags to determine
2759         which properties of loops to prepare.
2760         (rtl_loop_init): Pass flags to loop_optimizer_init.
2761         * tree-ssa-sink.c (execute_sink_code): Ditto.
2762         * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
2763         * tree-ssa-pre.c (init_pre): Ditto.
2764         * cfgloop.h (LOOPS_NORMAL): New.
2765         (loop_optimizer_init): Declaration changed.
2766
2767 2006-02-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2768
2769         * pa/x-ada-hpux10, pa/t-pa-hpux10, pa/t-pa-hpux11: New files.
2770         * config.gcc (hppa[12]*-*-hpux10*): Use pa/t-pa-hpux10 instead of
2771         pa/t-pa.
2772         * config.gcc (hppa[12]*-*-hpux11*): Use pa/t-pa-hpux11 instead of
2773         pa/t-pa.
2774         * config.host (hppa*-*-hpux10*): Use pa/x-ada-hpux10 instead of
2775         pa/x-ada.
2776         * pa/t-pa-hpux: Add lib2funcs.asm and quadlib.c rules.
2777         * pa/t-pa64: Delete quadlib.c rule.
2778         * pa/x-ada: Revert last change.
2779         * pa/t-pa: Revert last change.  Delete quadlib.c rule.
2780
2781 2006-02-04  Zdenek Dvorak <dvorakz@suse.cz>
2782
2783         PR rtl-optimization/26087
2784         * rtlanal.c (canonicalize_condition): Do not cross basic block
2785         boundaries.
2786
2787 2006-02-04  Alexandre Oliva  <aoliva@redhat.com>
2788
2789         PR debug/24444
2790         * config/ia64/ia64.c: Include debug.h.
2791         (MAX_ARTIFICIAL_LABEL_BYTES): New.
2792         (ia64_label_after_insn, ia64_dwarf2out_def_steady_cfa): New.
2793         (IA64_CHANGE_CFA_IN_EPILOGUE): Define to 0.
2794         (process_epilogue, process_set, process_for_unwind_directive):
2795         Output unwind info only if requested.  Add CFA info if requested.
2796         Add new arguments as needed.  Adjust callers.
2797         * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Override
2798         incorrect default.
2799         (DWARF2_FRAME_INFO): Define to zero.
2800         * config/ia64/unwind-ia64.c: Remove code that compensated for
2801         the CFA offset error fixed above.
2802         * config/ia64/t-ia64 (ia64.o): Depend on debug.h.
2803         * dwarf2out.c (DWARF2_FRAME_INFO): Define default.
2804         (dwarf2out_do_frame): Require nonzero DWARF2_UNWIND_INFO for
2805         -funwind-tables and -fexceptions to enable frame info.
2806         (dwarf2out_frame_init): Define initial CFA even if
2807         DWARF2_UNWIND_INFO is disabled.  Call initial_return_save if
2808         DWARF2_UNWIND_INFO is nonzero, not just defined.
2809         (dwarf2out_frame_finish): Output non-EH call frame info only
2810         if DWARF2_FRAME_INFO is nonzero.
2811         (convert_cfa_to_loc_list,
2812         compute_frame_pointer_to_cfa_displacement): Define even if
2813         unwind info is not supported.
2814         (gen_subprogram_die): Use the above unconditionally.  Remove
2815         legacy alternate code.
2816         * toplev.c (compile_file): Compile in call to
2817         dwarf2out_frame_finish if DWARF2_DEBUGGING_INFO is defined.
2818         (lang_dependent_init): Ditto for dwarf2out_frame_init.
2819
2820 2006-02-04  David Edelsohn  <edelsohn@gnu.org>
2821             Jakub Jelinek  <jakub@redhat.com>
2822
2823         * config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Mangle
2824         IBM extended float format long double as "g" on powerpc*-linux.
2825
2826 2006-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2827
2828         PR target/25926
2829         * pa/x-ada (X_ADA_CFLAGS): Define _X_HPUX10 on HP-UX 10.
2830         * pa/t-pa (TARGET_LIBGCC2_CFLAGS): Define _T_HPUX10 on HP-UX 10.
2831
2832 2006-02-03  Jason Merrill  <jason@redhat.com>
2833
2834         PR c++/25979
2835         * gimplify.c (gimplify_modify_expr_rhs): Disable *& optimization for now.
2836
2837         PR middle-end/25977
2838         * gimplify.c (gimplify_modify_expr_rhs): It's not always safe to do RVO
2839         on the return slot if it's an NRV.
2840
2841 2006-02-03  Zdenek Dvorak <dvorakz@suse.cz>
2842
2843         * tree-ssa-loop-ivopts.c (enum use_type): Remove USE_OUTER.
2844         (dump_use, add_derived_ivs_candidates, determine_use_iv_cost,
2845         rewrite_use): Do not handle USE_OUTER.
2846         (find_interesting_uses_outer_or_nonlin, find_interesting_uses_outer,
2847         add_iv_outer_candidates, may_replace_final_value,
2848         determine_use_iv_cost_outer, rewrite_use_outer): Removed.
2849         (find_interesting_uses_op): Functionality of
2850         find_interesting_uses_outer_or_nonlin moved here.
2851         (find_interesting_uses_outside): Use find_interesting_uses_op.
2852
2853 2006-02-03  Alan Modra  <amodra@bigpond.net.au>
2854
2855         PR target/25960
2856         * config/rs6000/darwin-ldouble.c (__gcc_qadd): Preserve -0.0 result.
2857
2858 2006-02-03  Andreas Krebbel  <krebbel1@de.ibm.com>
2859             Ulrich Weigand  <uweigand@de.ibm.com>
2860
2861         PR target/25864
2862         * config/s390/2084.md ("x_fsimptf", "x_fmultf", "x_fdivtf",
2863         "x_floadtf", "x_ftrunctf", "x_ftruncdf"): New insn reservations.
2864         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): New functions.
2865         * config/s390/s390.c (struct processor_costs): Add mxbr, sqxbr, dxbr
2866         and dxr fields.
2867         (z900_cost, z990_cost, z9_109_cost): Values for the new fields added.
2868         (s390_rtx_costs): Use the new fields to calculate rtx costs.
2869         (s390_secondary_input_reload_class, s390_secondary_output_reload_class):
2870         Define secondary reloads for TFmode moves.
2871         (constant_modes): Add TFmode.
2872         (NR_C_MODES): Set to 8.
2873         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Add __LONG_DOUBLE_128__
2874         builtin define.
2875         (LONG_DOUBLE_TYPE_SIZE): Set to 128 or 64.
2876         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE, WIDEST_HARDWARE_FP_SIZE): Define.
2877         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS,
2878         CANNOT_CHANGE_MODE_CLASS): Consider TFmode.
2879         * config/s390/s390.md ("type" attribute): Add fsimptf, floadtf, fmultf,
2880         fdivtf, fsqrttf, ftrunctf, ftruncdf as possible values.
2881         (FPR mode macro): Add TFmode.
2882         (DSF mode macro): New.
2883         (<de>, <dee> mode attributes): Removed.
2884         (<xde>, <xdee>, <RRe>, <RXe>, <Rf> mode attributes): New.
2885         ("*cmp<mode>_ccs_0", "*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs",
2886         "*cmp<mode>_ccs_ibm", "fix_trunc<FPR:mode><GPR:mode>2_ieee",
2887         "floatdi<mode>2", "floatsi<mode>2_ieee", "*add<mode>3",
2888         "*add<mode>3_cc", "*add<mode>3_cconly", "*add<mode>3_ibm",
2889         "*sub<mode>3", "*sub<mode>3_cc", "*sub<mode>3_cconly",
2890         "*sub<mode>3_ibm", "*mul<mode>3_ibm", "*fmadd<mode>", "*fmsub<mode>",
2891         "*div<mode>3", "*div<mode>3_ibm", "*neg<mode>2_cc",
2892         "*neg<mode>2_cconly", "*neg<mode>2", "*neg<mode>2_ibm",
2893         "*abs<mode>2_cc", "*abs<mode>2_cconly", "*abs<mode>2",
2894         "*abs<mode>2_ibm", "*negabs<mode>2_cc", "*negabs<mode>2_cconly",
2895         "*negabs<mode>2", "sqrt<mode>2"):
2896         Changed <de> to <xde>. R constraint replaced by <Rf>.
2897         ("*mul<mode>3"): Changed <dee> to <xdee>. R constraint replaced by
2898         <Rf>.
2899         ("fix_trunc<FPR:mode>di2"): 'FPR:' removed.
2900         ("*fmadd<mode>", "*fmsub<mode>"): FPR mode replaced by DSF.
2901         ("*movtf_64", "*movtf_31"): New insn definitions followed by 5
2902         splitters.
2903         ("movtf", "reload_outtf", "reload_intf", "trunctfdf2", "trunctfsf2",
2904         "extenddftf2", "extendsftf2"): New expanders.
2905         ("*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
2906         "*trunctfsf2_ibm", "*extenddftf2_ieee", "*extenddftf2_ibm",
2907         "*extendsftf2_ieee", "*extendsftf2_ibm"): New insn patterns.
2908         * config/s390/s390.opt (mlong-double-128, mlong-double-64):
2909         New options.
2910         * config/s390/t-crtstuff (TARGET_LIBGCC2_CFLAGS): Macro defined.
2911         * config/s390/libgcc-glibc.ver (__divtc3, __multc3, __powitf2,
2912         __fixtfti, __fixunstfti, __floattitf, __fixtfdi, __fixunstfdi,
2913         __floatditf): Add a GCC_4.1.0 symbol version tag.
2914         * doc/invoke.texi (-mlong-double-128, -mlong-double-64): Document
2915         the new options.
2916
2917 2006-02-02  Andrew Pinski  <pinskia@physics.uc.edu>
2918
2919         PR target/25377
2920         * config/i386/i386.c (ix86_function_ok_for_sibcall):
2921         Use targetm.binds_local_p instead of TREE_PUBLIC.
2922
2923 2006-02-02  Roger Sayle  <roger@eyesopen.com>
2924
2925         * tree.h (TYPE_STRING_FLAG): Document that this field may be used
2926         on INTEGER_TYPEs to indicate that it denotes a character type.
2927         * tree.c (build_common_tree_nodes): Set TYPE_STRING_FLAG on
2928         signed_char_type_node, unsigned_char_type_node and char_type_node.
2929         * dwarf2out.c (base_type_die): Treat CHAR_TYPE identically to
2930         INTEGER_TYPE.  Use TYPE_STRING_FLAG to decide whether to emit
2931         a DW_ATE_[un]signed_char instead of a DW_ATE_[un]signed.
2932
2933 2006-02-02  Zdenek Dvorak <dvorakz@suse.cz>
2934             Daniel Berlin  <dberlin@dberlin.org>
2935
2936         * tree-tailcall.c (arg_needs_copy_p): New function.
2937         (eliminate_tail_call): Use arg_needs_copy_p.
2938         (tree_optimize_tail_calls_1): Ditto. Also call add_virtual_phis.
2939         (add_virtual_phis): New function.
2940
2941 2006-02-02  Jakub Jelinek  <jakub@redhat.com>
2942
2943         * config/sparc/sparc.c (sparc_output_scratch_registers): Use
2944         #ignore instead of #scratch for %g7 .register directive.
2945
2946 2006-02-02  Andreas Tobler  <a.tobler@schweiz.ch>
2947
2948         * config/sparc/freebsd.h (ENDFILE_SPEC): Add space to separate
2949         object files.
2950
2951 2006-02-02  Bernd Schmidt  <bernd.schmidt@analog.com>
2952
2953         * flow.c (calculate_global_regs_live): Assert that there aren't any
2954         EDGE_FAKE edges.
2955
2956 2006-02-02  Paolo Bonzini  <bonzini@gnu.org>
2957
2958         * tree-flow-inline.h (bsi_after_labels): Rewrite, return
2959         what its name says.
2960         * lambda-code.c (perfect_nestify): Use bsi_insert_before on
2961         bsi_after_labels iterator.
2962         * tree-if-conv.c (find_phi_replacement_condition,
2963         replace_phi_with_cond_modify_expr): Likewise.
2964         * tree-scalar-evolution.c (scev_const_prop): Likewise.
2965         * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Likewise.
2966
2967 2006-02-02  Diego Novillo  <dnovillo@redhat.com>
2968
2969         * tree-inline.c (copy_tree_r): Also copy OMP_CLAUSE nodes.
2970
2971 2006-02-02  Diego Novillo  <dnovillo@redhat.com>
2972
2973         PR 25990
2974         * tree-cfg.c (move_block_to_fn): Clear out the basic block
2975         array after growing it.
2976
2977 2006-02-01  Steve Ellcey  <sje@cup.hp.com>
2978
2979         PR middle-end/24901
2980         * fold-const.c (fold_checksum_tree): Change type of buf.
2981
2982 2006-02-01  Bernd Schmidt  <bernd.schmidt@analog.com>
2983
2984         * reload.c (push_secondary_reload): Initialize t_icode.
2985
2986 2006-02-01  Jakub Jelinek  <jakub@redhat.com>
2987
2988         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): For
2989         -msoft-float -mlong-double-128 only issue a warning, but don't
2990         swich to DFmode long double.
2991
2992 2006-02-01  Hans-Peter Nilsson  <hp@axis.com>
2993
2994         * cse.c (fold_rtx) <case RTX_COMM_COMPARE, RTX_COMPARE>: When arg1
2995         has a constant equivalent, iterate over equivalents for arg0,
2996         calling simplify_relational_operation and if there's a result
2997         cheaper than X, apply fold_rtx and return the result.
2998
2999 2006-02-01  Jan Hubicka  <jh@suse.cz>
3000
3001         * opts.c (no_unit_at_a_time_default): New global variable.
3002         (decode_options): Use it.
3003         * opts.h (no_unit_at_a_time_default): Declare.
3004
3005 2006-02-01  Paul Brook  <paul@codesourcery.com>
3006
3007         * function.c (assign_parm_setup_reg): Use function argument promotion
3008         rules.
3009         * expr.c (expand_expr_real_1): Use function argument promotion rules
3010         for PARM_DECLs.
3011
3012 2006-02-01  Steve Ellcey  <sje@cup.hp.com>
3013
3014         * gcc.c (process_command): Change j to 'unsigned int'.
3015
3016 2006-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
3017
3018         PR middle-end/26001
3019         * expr.c (expand_expr_real_1) <case ARRAY_REF>:
3020         Use the corrected index for the character
3021         out of the string constant.
3022
3023 2006-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
3024
3025         * mode-switching.c (optimize_mode_switching): Fix size
3026         allocated for bb_info[n_entities].
3027
3028 2006-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
3029
3030         * gcc.c (main): Correct type that is allocated for
3031         explicit_link_files.
3032
3033 2006-01-31  Jakub Jelinek  <jakub@redhat.com>
3034
3035         * config/s390/s390.c (init_alignment_context): Set
3036         ALIAS_SET_MEMORY_BARRIER on the MEM.
3037         * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): Likewise.
3038
3039 2006-01-31  Uttam Pawar  <uttamp@us.ibm.com>
3040
3041         PR middle-end/25933
3042         * loop-unroll.c (unroll_loop_runtime_iterations): Free
3043         dom_bbs pointer.
3044         * tree-ssa-live.c (type_var_init): Allocate bitmap after
3045         call to tpa_init.
3046
3047 2006-01-31  Marcin Dalecki  <martin@dalecki.de>
3048
3049         * tree-vrp.c: Use XNEW/XCNEW allocation wrappers.
3050         * regrename.c: Ditto.
3051         * tree-ssa-loop-im.c: Ditto.
3052         * tree-dump.c: Ditto.
3053         * tree-complex.c: Ditto.
3054         * genrecog.c: Ditto.
3055         * tree-ssa-threadupdate.c: Ditto.
3056         * tracer.c: Ditto.
3057         * java/class.c: Ditto.
3058         * java/jcf-parse.c: Ditto.
3059         * java/resource.c: Ditto.
3060         * java/except.c: Ditto.
3061         * java/jvspec.c: Ditto.
3062         * java/jcf-write.c: Ditto.
3063         * java/jcf-path.c: Ditto.
3064         * java/gjavah.c: Ditto.
3065         * java/zextract.c: Ditto.
3066         * java/jcf-io.c: Ditto.
3067         * java/jcf.h: Ditto.
3068         * java/buffer.c: Ditto.
3069         * java/lang.c: Ditto.
3070         * java/parse-scan.y: Ditto.
3071         * java/lex.c: Ditto.
3072         * java/lex.h: Ditto.
3073         * cfgloopmanip.c: Ditto.
3074         * postreload-gcse.c: Ditto.
3075         * tree-ssa-loop-manip.c: Ditto.
3076         * postreload.c: Ditto.
3077         * tree-ssa-loop-ch.c: Ditto.
3078         * loop.c: Ditto.
3079         * ipa-cp.c: Ditto.
3080         * cppspec.c: Ditto.
3081         * diagnostic.c: Ditto.
3082         * final.c: Ditto.
3083         * genoutput.c: Ditto.
3084         * gcc.c: Ditto.
3085         * cfghooks.c: Ditto.
3086         * cfgloopanal.c: Ditto.
3087         * objc/objc-act.c: Ditto.
3088         * gcov.c: Ditto.
3089         * genextract.c: Ditto.
3090         * genautomata.c: Ditto.
3091         * pretty-print.c: Ditto.
3092         * genemit.c: Ditto.
3093         * cgraphunit.c: Ditto.
3094         * flow.c: Ditto.
3095         * df-scan.c: Ditto.
3096         * haifa-sched.c: Ditto.
3097         * dominance.c: Ditto.
3098         * dbxout.c: Ditto.
3099         * tree-ssa-loop-ivopts.c: Ditto.
3100         * df-core.c: Ditto.
3101         * mode-switching.c: Ditto.
3102         * modulo-sched.c: Ditto.
3103         * graph.c: Ditto.
3104         * ipa-pure-const.c: Ditto.
3105         * cse.c: Ditto.
3106         * fix-header.c: Ditto.
3107         * web.c: Ditto.
3108         * tree-stdarg.c: Ditto.
3109         * ipa-utils.c: Ditto.
3110         * loop-init.c: Ditto.
3111         * ipa-inline.c: Ditto.
3112         * cfganal.c: Ditto.
3113         * global.c: Ditto.
3114         * alloc-pool.c: Ditto.
3115         * dwarf2out.c: Ditto.
3116         * opts.c: Ditto.
3117         * genattrtab.c: Ditto.
3118         * tree-ssa-loop-ivcanon.c: Ditto.
3119         * predict.c: Ditto.
3120         * timevar.c: Ditto.
3121         * lcm.c: Ditto.
3122         * fortran/gfortranspec.c: Ditto.
3123         * regmove.c: Ditto.
3124         * local-alloc.c: Ditto.
3125         * langhooks.c: Ditto.
3126         * function.c: Ditto.
3127         * tree-vectorizer.c: Ditto.
3128         * gcse.c: Ditto.
3129         * ipa-type-escape.c: Ditto.
3130         * alias.c: Ditto.
3131         * tree-if-conv.c: Ditto.
3132         * profile.c: Ditto.
3133         * ipa.c: Ditto.
3134         * tree-data-ref.c: Ditto.
3135         * loop-unroll.c: Ditto.
3136         * treelang/treetree.c: Ditto.
3137         * calls.c: Ditto.
3138         * bt-load.c: Ditto.
3139         * ggc-common.c: Ditto.
3140         * except.c: Ditto.
3141         * coverage.c: Ditto.
3142         * cselib.c: Ditto.
3143         * tree-cfgcleanup.c: Ditto.
3144         * tree-ssa-pre.c: Ditto.
3145         * cfgcleanup.c: Ditto.
3146         * loop-invariant.c: Ditto.
3147         * loop-iv.c: Ditto.
3148         * ipa-prop.c: Ditto.
3149         * print-tree.c: Ditto.
3150         * conflict.c: Ditto.
3151         * ggc-page.c: Ditto.
3152         * sched-deps.c: Ditto.
3153         * regclass.c: Ditto.
3154         * tree-object-size.c: Ditto.
3155         * combine.c: Ditto.
3156         * bb-reorder.c: Ditto.
3157         * resource.c: Ditto.
3158         * var-tracking.c: Ditto.
3159         * cfgloop.c: Ditto.
3160         * df-problems.c: Ditto.
3161         * reg-stack.c: Ditto.
3162         * tlink.c: Ditto.
3163         * gccspec.c: Ditto.
3164         * sched-rgn.c: Ditto.
3165         * tree-ssa-structalias.c: Ditto.
3166         * tree-ssa-reassoc.c: Ditto.
3167         * config/darwin-c.c: Ditto.
3168         * config/darwin.c: Ditto.
3169         * config/arm/arm.c: Ditto.
3170         * cfgrtl.c: Ditto.
3171         * collect2.c: Ditto.
3172         * reload1.c: Ditto.
3173
3174 2006-01-31  Nicolas Pitre  <nico@cam.org>
3175
3176         * arm.md (smaxsi3): Make aware of smax_m1.
3177         (smax_m1): New.
3178
3179 2006-01-31  Nathan Sidwell  <nathan@codesourcery.com>
3180
3181         * gcc/config/m68k/lb1sf68.asm: Use moveq to load small constants.
3182
3183 2006-01-31  Richard Guenther  <rguenther@suse.de>
3184
3185         * doc/invoke.texi (-msselibm): Document.
3186         * target.h (expand_library_builtin): New target hook.
3187         * builtins.c (expand_builtin): Use expand_library_builtin.
3188         (default_expand_library_builtin): New function.
3189         * gcc.c (LINK_GCC_MATH_SPEC): Define.
3190         (LINK_COMMAND_SPEC): Handle %(link_gcc_math).
3191         (link_gcc_math_spec): Declare.
3192         (static_specs): Add link_gcc_math_spec.
3193         * expr.h (default_expand_library_builtin): Declare.
3194         * target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
3195         (TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN.
3196         * config/i386/i386.h: Provide LINK_GCC_MATH_SPEC.
3197         * config/i386/i386.opt (msselibm): New target option.
3198         * config/i386/i386.c (ix86_builtin_function_variants): New array.
3199         (ix86_init_sse_abi_builtins): New function.
3200         (ix86_expand_library_builtin): Likewise.
3201         (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
3202         (override_options): Handle error conditions wrt -msselibm.
3203         (ix86_builtins): Add function codes for SSE2 ABI builtins.
3204         (ix86_init_builtins): Call ix86_init_sse_abi_builtins.
3205         * doc/extend.texi (__builtin_sse2_*): Document new target specific
3206         builtins.
3207
3208 2006-01-31  Richard Guenther  <rguenther@suse.de>
3209         Paolo Bonzini  <bonzini@gnu.org>
3210
3211         * doc/install.texi (--disable-libgcc-math): Document.
3212
3213 2006-01-30  Marcin Dalecki  <martin@dalecki.de>
3214
3215         * expr.h (expand_normal): new inline function.
3216         * builtins.c: use it, use EXPAND_NORMAL explicitely.
3217         * dojump.c: use it.
3218         * dwarf2out.c: use it.
3219         * expr.c: use it.
3220         * calls.c: use it.
3221         * expmed.c: use it.
3222         * except.c: use it.
3223         * config/sparc/sparc.c: use it.
3224         * config/i386/i386.c: use it.
3225         * config/rs6000/rs6000.c: use it.
3226         * config/arm/arm.c: use it.
3227         * config/mips/mips.c: use it.
3228         * stmt.c: use it, use EXPAND_NORMAL explicitely.
3229
3230 2006-01-30  Roger Sayle  <roger@eyesopen.com>
3231
3232         * config/i386/cygwin.h (GCC_DRIVER_HOST_INITIALIZATION): Cast
3233         argv to the appropriate type.
3234
3235 2006-01-30  Zdenek Dvorak <dvorakz@suse.cz>
3236
3237         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Remove
3238         unreachable code.
3239
3240 2006-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
3241
3242         PR target/26018
3243         * config/s390/s390.c (struct machine_function): New flag
3244         decomposed_literal_pool_addresses_ok_p.
3245         (s390_reorg): Set it before final stage of literal pool transforms.
3246         (s390_decompose_address): Only accept displacements of the form
3247         (minus (label_ref ...) (label_ref ...)) if that flag is set.
3248
3249 2006-01-30  Carlos O'Donell  <carlos@codesourcery.com>
3250
3251         * optabs.c (prepare_cmp_insn): If unbaised and unsigned then bias
3252         the comparison routine return.
3253
3254 2006-01-30  Michael Matz  <matz@suse.de>
3255
3256         * global.c (find_reg): Only evict for global regs.
3257         Take n_refs into account and dump more info.
3258
3259 2006-01-30  J"orn Rennecke <joern.rennecke@st.com>
3260
3261         PR target/14798:
3262         * sh.c (pragma_interrupt, trap_exit, sp_switch): Remove variable.
3263         (pragma_trap, pragma_nosave_low_regs): Likewise.
3264         (current_function_anonymous_args): Likewise.
3265         (sh_deferred_function_attributes): New variable.
3266         (sh_deferred_function_attributes_tail): Likewise.
3267         (print_operand): For '@', look up trap_exit attribute.
3268         (calc_live_regs): Look up trapa_handler attribute.  For trapa
3269         handlers, save/restore fpscr, but don't do any other
3270         interrupt-specific saves.
3271         Don't save r0..r7 if the nosave_low_regs attribute is in effect.
3272         Fix check for partially saved registers to check for SHmedia.
3273         (sh_expand_prologue, sh_expand_epilogue): Look up sp_switch attribute.
3274         (sh_output_function_epilogue): Don't clear any of the removed
3275         variables.
3276         (sh_insert_attributes): Don't check pragma_interrupt.
3277         Insert deferred attributes.  Check that interrupt attribute is
3278         present for other attributes that require its presence.
3279         (sh_attribute_table): Add new attributes trapa_handler and
3280         nosave_low_regs.
3281         (sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
3282         Don't check for pragma_interrupt.  Don't store argument.
3283         * sh.h (pragma_interrupt, sp_switch): Don't declare.
3284         (sh_deferred_function_attributes): Declare.
3285         (sh_deferred_function_attributes_tail): Likewise.
3286         * sh.md (sp_switch_1): Add operand.  Change generator caller.
3287         (sh_pr_interrupt, sh_pr_trapa, sh_pr_nosave_low_regs): Remove.
3288         (*return_i): Don't use when trap_exit attribute is in effect.
3289         (*return_trapa): New insn pattern.
3290         * sh-c.c: New file.
3291         * config.gcc (sh[123456ble]*-* | sh-*-*): New trailer stanza,
3292         setting c_target_objs and cxx_target_objs.
3293         * t-sh: Add rule for sh-c.o.
3294
3295 2006-01-30  Richard Guenther  <rguenther@suse.de>
3296
3297         PR c++/23372
3298         * gimplify.c (gimplify_target_expr): Handle easy cases
3299         without creating a temporary.
3300
3301 2006-01-30  Nathan Sidwell  <nathan@codesourcery.com>
3302
3303         * vec.h (safe_grow): Remove duplicated line.
3304
3305 2006-01-29  Diego Novillo  <dnovillo@redhat.com>
3306
3307         PR 25874
3308         * omp-low.c (execute_expand_omp): Move CFG cleanup code ...
3309         (expand_omp): ... here.
3310         (expand_omp_parallel): Only remove barriers for combined
3311         parallel+workshare constructs.
3312
3313 2006-01-29  Eric Botcazou  <ebotcazou@adacore.com>
3314
3315         Revert
3316
3317         2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
3318         * tree.c (build_qualified_type): Chain the new type to the original
3319         type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO linked lists if it is
3320         a POINTER_TYPE or a REFERENCE_TYPE respectively.
3321         (build_pointer_type_for_mode): Only return unqualified types.
3322         (build_reference_type_for_mode): Likewise.
3323
3324 2006-01-29  Gabriel Dos Reis  <gdr@integgrable-solutions.net>
3325
3326         * configure.ac (cxx_compat_warn): Set if -Wc++-compat is supported.
3327         * Makefile.in (CXX_COMPAT_WARN): Define.
3328         * configure: Regenerate.
3329
3330 2006-01-29  Dorit Nuzman  <dorit@il.ibm.com>
3331
3332         PR tree-opt/25911
3333         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Change assert
3334         to an if check.
3335
3336 2006-01-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3337
3338         * toplev.c: Fix thinko.
3339
3340 2006-01-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3341             Marcin Dalecki  <martin@dalecki.de>
3342
3343         * toplev.c (floor_log2, exact_log2): Don't define if __cplusplus.
3344         (push_srcloc): Use XNEW.
3345         (init_asm_output, default_get_pch_validity): Use XNEWVEC.
3346
3347 2006-01-29  Kenneth Zadeck <zadeck@naturalbridge.com>
3348
3349         * df-core.c (df_set_blocks): Deleted all variable.
3350
3351 2006-01-28  Ian Lance Taylor  <ian@airs.com>
3352
3353         * cgraphunit.c (cgraph_assemble_pending_functions): Call
3354         cgraph_output_pending_asms.
3355
3356 2006-01-28  Zack Weinberg  <zackw@panix.com>
3357
3358         * c.opt: Add -W(no-)overlength-strings.
3359         * doc/invoke.texi: Document it.
3360         * c-opts.c (c_common_handle_option): -pedantic implies
3361         -Woverlength-strings, if not explicitly disabled already.
3362         (c_common_post_options): -Woverlength-strings defaults to off, and
3363         is always off for C++.
3364         * c-common.c (fix_string_type): Issue warning about strings longer
3365         than is portable only if warn_overlength_strings.  Rearrange code
3366         a little for clarity.
3367         * configure.in: Check for -Wno-overlength-strings as well before
3368         enabling -pedantic in stage 1.
3369         * Makefile.in (STRICT2_WARN): Add -Wno-overlength-strings.
3370         (gcc.o-warn, insn-automata.o-warn, build/gencondmd.o-warn): Delete.
3371
3372         * genconditions.c (write_header, write_one_condition)
3373         (write_conditions, write_writer): Consolidate very long strings
3374         that were broken up to fit in C89 portable limit.  Don't use
3375         printf when fputs will do.
3376
3377 2006-01-28  Adam Nemet  <anemet@caviumnetworks.com>
3378
3379         * combine.c (simplify_comparison <AND>): Check
3380         TRULY_NOOP_TRUNCATION before start using a subreg.
3381
3382         * config/mips/mips.md (*branch_zero<mode>,
3383         *branch_zero<mode>_inverted, *branch_equality<mode>,
3384         *branch_equality<mode>_inverted, *branch_equality<mode>_mips16):
3385         Remove mode check from comparisons.
3386
3387 2006-01-28  Kenneth Zadeck <zadeck@naturalbridge.com>
3388
3389         * config/mips/mips-protos.h (mips_set_live_on_entry): Deleted.
3390
3391 2006-01-28  Kazu Hirata  <kazu@codesourcery.com>
3392
3393         * expmed.c (const_mult_add_overflow_p): Remove.
3394         * expr.h: Remove the prototype for const_mult_add_overflow_p.
3395
3396         * recog.c (validate_replace_rtx_subexp): Remove.
3397         * recog.h: Remove the prototype for
3398         validate_replace_rtx_subexp.
3399
3400         * integrate.h: Remove the prototype for
3401         copy_decl_for_inlining.
3402         * rtl.h: Remove the prototype for mark_constant_function.
3403         * tree-vectorizer.h: Remove the prototype for
3404         vect_strip_conversion.
3405
3406         * modulo-sched.c (create_partial_schedule,
3407         free_partial_schedule, reset_partial_schedule): Make them
3408         static.
3409
3410         * hooks.c (hook_bool_rtx_int_false): Remove.
3411         * hooks.h: Remove the prototype for hook_bool_rtx_int_false.
3412
3413 2006-01-28  David Edelsohn  <edelsohn@gnu.org>
3414
3415         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_O