OSDN Git Service

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