OSDN Git Service

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