OSDN Git Service

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