OSDN Git Service

f5531587c5ae9c90933f26c4376926c393613dd9
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-05-23  Jeff Law  <law@redhat.com>
2
3         * tree-ssa-dom.c (cprop_into_stmt): Do not call
4         recompute_tree_invariant_for_addr_expr here.
5         (optimize_stmt): Call it here instead and do so if anything
6         at all has changed in the statement and the RHS is an ADDR_EXPR.
7         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): If
8         needed, call recompute_tree_invariant_for_addr_expr.
9         * tree-ssa-propagate.c (substitute_and_fold): Call
10         recompute_tree_invariant_for_addr_expr as needed.
11
12 2005-05-23  Andreas Krebbel  <krebbel1@de.ibm.com>
13
14         * config/s390/s390.c (s390_optimize_prologue): Don't replace an insn
15         saving less registers than the replacement.
16
17 2005-05-23  Jan Hubicka  <jh@suse.cz>
18
19         * tree-flow.h (stmt_ann_d): Kill GTY ((skip)) mark on BB.
20
21 2005-05-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
22
23         * config/sparc/sparc-protos.h (sparc_expand_move): New prototype.
24         * config/sparc/sparc.c (sparc_expand_move): New function.
25         (sparc_emit_set_const64): Rewrite assert condition on entry.
26         (legitimate_constant_p) <CONST_VECTOR>: New case.
27         (legitimize_pic_address): Use TARGET_ARCH64 to select the mode.
28         * config/sparc/sparc.md (movqi, movhi, movsi, movdi, movV32,
29         movV64, movtf): Use nonimmediate_operand for the first operand.
30         Rewrite.  Only invoke sparc_expand_move.
31         * config/sparc/predicates.md (input_operand): Reorder tests.
32
33 2005-05-23  Jan Beulich  <jbeulich@novell.com>
34
35         * gthr-posix.h (__gthread_recursive_mutex_init_function): Add
36         missing return statement.
37
38 2005-05-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
39
40         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Use
41         emit_move_insn for moves to TFmode stack slots.
42
43 2005-05-21  Richard Guenther  <rguenth@gcc.gnu.org>
44
45         * tree-stdarg.c (execute_optimize_stdarg): Handle references
46         to va_list of the form &va[0].
47
48 2005-05-20  Jan Hubicka  <jh@suse.cz>
49
50         * Makefile.in (insn-emit.o): Add basic-block.h dependency.
51         * genemit.c (main): Make insn-emit to include basic-block.h too.
52
53 2005-05-20  Jan Hubicka  <jh@suse.cz>
54
55         * cgraphunit.c (cgraph_expand_function): Force function being lowered.
56
57 2005-05-19  Richard Henderson  <rth@redhat.com>
58
59         * config/alpha/alpha.c (emit_unlikely_jump, emit_load_locked,
60         emit_store_conditional): Split out from ...
61         (alpha_split_atomic_op): ... here.
62         (alpha_split_compare_and_swap): New; extract from .md file.
63         (alpha_split_lock_test_and_set): Likewise.
64         * config/alpha/alpha-protos.h: Update.
65         * config/alpha/sync.md (sync_compare_and_swap<I48MODE>): Move
66         split code into alpha.c.
67         (sync_lock_test_and_set<I48MODE>): Likewise.
68
69 2005-05-19  Richard Henderson  <rth@redhat.com>
70
71         * unwind.h, unwind-pe.h: Revert gcc_unreachable change of 05-17.
72
73 2005-05-19  Richard Henderson  <rth@redhat.com>
74
75         * config/i386/sse.md (mulv4si3): Use all register inputs.
76         (mulv2di3): Likewise.
77
78 2005-05-19  Richard Guenther  <rguenth@gcc.gnu.org>
79
80         * tree-ssa-loop-ivopts.c (determine_base_object): Use
81         build_fold_addr_expr to generate trees of correct type.
82         Use fold_buildN if possible.
83
84 2005-05-19  Jan Hubicka  <jh@suse.cz>
85
86         * basic-block.h (REG_BR_PROB_BASE): Define.
87         * cgraph.c (cgraph_create_edge): Initialize loop_nest and count.
88         (dump_cgraph_node): Dump count.
89         (cgraph_clone_edge): Rescale counts.
90         (cgraph_clone_node): Likewise.
91         * cgraph.h: Include basic-block.h
92         (cgraph_node): Add count.
93         (cgraph_edge): Add count and loop_nest.
94         (cgraph_node, cgraph_edge, cgraph_clone_edge, cgraph_clone_node):
95         Update prototypes.
96         * cgraphunit.c: Kill now redundant inlining comment.
97         (cgraph_create_edges): Make static, maintain current basic block;
98         fix pasto.
99         (record_call_1): Fill in new fields.
100         * ipa-inline.c (cgraph_clone_inlined_nodes): Update call of
101         cgraph_clone_node.
102         (cgraph_decide_recursive_inlining): Likewise.
103         * rtl.h (REG_BR_PROB_BASE): Kill.
104         * tree-inline.c (copy_body_r): Update call of cgraph_clone_edge.
105         (expand_call_inline): Update call of cgraph_create_edge.
106         * tree-optimize.c (tree_rest_of_compilation): Likewise.
107
108 2005-05-19  Nick Clifton  <nickc@redhat.com>
109
110         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use the
111         new rs6000_explicit_options structure.
112
113 2005-05-19  Richard Henderson  <rth@redhat.com>
114
115         PR target/21390
116         * config/alpha/alpha.c (alpha_emit_conditional_branch): Move 
117         TFmode code swapping ...
118         (alpha_emit_xfloating_compare): ... here.
119         (alpha_emit_setcc): Update to match.
120         (alpha_lookup_xfloating_lib_func): Assert TARGET_HAS_XFLOATING_LIBS.
121
122 2005-05-19  Richard Henderson  <rth@redhat.com>
123
124         PR target/21657
125         * config/ia64/ia64.c (ia64_expand_tls_address): Remove extra
126         memory indirection in local-dynamic case.
127
128 2005-05-18  Jie Zhang  <jie.zhang@analog.com>
129             Bernd Schmidt  <bernd.schmidt@analog.com>
130
131         * config/bfin/bfin.c (branch_dest): Add comment why it's
132         necessary.
133         * config/bfin/bfin.md (attr "length" default): Change the offset of
134         forward conditional branch of length 4 from 4096 to 4092.
135
136 2005-05-19  Jan Beulich  <jbeulich@novell.com>
137
138         * unwind-compat.c: Include tconfig.h and tsystem.h.
139         * unwind-dw2-fde-compat.c: Likewise.
140
141 2005-05-18  Richard Henderson  <rth@redhat.com>
142
143         PR 21541
144         * ifcvt.c (noce_process_if_block): Avoid conversion when the
145         memory destination is readonly.
146
147 2005-05-18  Richard Henderson  <rth@redhat.com>
148
149         PR 21541
150         * tree-ssa-operands.c (opf_non_specific): New.
151         (get_asm_expr_operands): Set it.
152         (add_call_clobber_ops, add_call_read_ops): Likewise.
153         (add_stmt_operand): Test it instead of opf_kill_def when
154         considering unmodifiable variables.
155
156         * tree-ssa-operands.c (get_expr_operands): Fix exact test.
157
158 2005-05-19  Kazu Hirata  <kazu@cs.umass.edu>
159
160         * cfgexpand.c, tree-cfg.c, tree-inline.c, tree-optimize.c,
161         tree-ssa-forwprop.c: Fix comment typos.
162         * doc/invoke.texi: Fix a typo.
163
164 2005-05-18  Richard Henderson  <rth@redhat.com>
165
166         * config.gcc (powerpc-*-linux*): Include linux64.opt when
167         including linux64.h.
168
169 2005-05-18  Richard Henderson  <rth@redhat.com>
170
171         * tree-cfg.c (pass_remove_useless): Revert last change.
172         * tree-optimize.c (init_tree_optimization_passes): Initialize
173         all_lowering_passes with PROP_gimple_any.
174
175 2005-05-18  Devang Patel  <dpatel@apple.com>
176
177         * config/rs6000/rs6000.md (insvsi_internal1): Subtract shift from
178         the mask end.
179         
180 2005-05-18  Richard Henderson  <rth@redhat.com>
181
182         * tree-ssa-forwprop.c (cfg_changed): New.
183         (tidy_after_forward_propagate_addr): New.
184         (forward_propagate_addr_expr): Use it, and fold_stmt_inplace.
185         (forward_propagate_addr_into_variable_array_index): Likewise.
186         (tree_ssa_forward_propagate_single_use_vars): Cleanup cfg if
187         edges were removed.
188
189 2005-05-18  Geoffrey Keating  <geoffk@apple.com>
190
191         * dummy-checksum.c: New.
192         * genchecksum.c: New.
193         * c.opt (print_pch_checksum): New flag.
194         * c-pch.c (struct c_pch_validity): Make much shorter.
195         (no_checksum): New.
196         (host_machine): Remove.
197         (target_machine): Remove.
198         (get_ident): Change PCH version number.
199         (pch_init): When -fverbose-asm, print out the compiler fingerprint.
200         Don't put triplets or version string in PCH validity data.
201         Do put the compiler checksum in the validity data.
202         (c_common_valid_pch): Don't check triplets or version string.  Do
203         check checksum.
204         (c_common_print_pch_checksum): New.
205         * c-opts.c (c_common_handle_option): Add OPT_print_pch_checksum.
206         Print fingerprint with -v.
207         * c-common.h (c_common_print_pch_checksum): New.
208         (executable_checksum): New.
209         * Makefile.in (STAGEMOVESTUFF): Add cc1*-dummy, *-checksum.c.
210         (cc1-dummy): New rule.
211         (cc1-checksum.c): New rule.
212         (cc1-checksum.o): New rule.
213         (cc1): Add checksum support.
214         (build/genchecksum): New.
215         (build/genchecksum.o): New.
216         (dummy-checksum.o): New.
217         (genobjnames): Add genchecksum.o.
218         (mostlyclean): Remove *-checksum.c.
219         (gnucompare): Add libgcc to list of directories checked.
220         Make comparison problems in libgcc/ and with checksum files only
221         be warnings.
222         * doc/invoke.texi (Precompiled Headers): Remove caution.
223         Document that it must be the exact same binary.  Add a few
224         known-safe flags to the list.
225
226         * rs6000/predicates.md (fix_trunc_dest_operand): New.
227         * rs6000/rs6000.md (fix_truncdfsi2): Use fix_trunc_dest_operand.
228         Check that a memory operand is valid before trying to use it.
229         
230         * tree-cfg.c (pass_remove_useless): This pass works on trees.
231
232 2005-05-18  Richard Guenther  <rguenth@gcc.gnu.org>
233
234         * tree.c (build1_stat): Don't try to handle two-operand
235         tree codes.
236
237 2005-05-18  Richard Sandiford  <rsandifo@redhat.com>
238
239         * config.gcc (sh*-*-*): Define SUPPORT_* macros to 1.
240         * config/sh/sh.h: Update mask names throughout.
241         (target_flags, ISIZE_BIT, DALIGN_BIT, SH1_BIT, SH2_BIT, SH3_BIT)
242         (SH_E_BIT, HARD_SH4_BIT, FPU_SINGLE_BIT, SH4_BIT, SH4A_BIT, FMOVD_BIT)
243         (SH5_BIT, SPACE_BIT, BIGTABLE_BIT, RELAX_BIT, USERMODE_BIT)
244         (HITACHI_BIT, NOMACSAVE_BIT, PREFERGOT_BIT, PADSTRUCT_BIT)
245         (LITTLE_ENDIAN_BIT, IEEE_BIT, SAVE_ALL_TR_BIT, HARD_SH2A_BIT)
246         (HARD_SH2A_DOUBLE_BIT, INDEXED_ADDRESS_BIT, PT_FIXED_BIT)
247         (INVALID_SYMBOLS_BIT, ADJUST_UNROLL_BIT, TARGET_DUMPISIZE)
248         (TARGET_ALIGN_DOUBLE, TARGET_SH1, TARGET_SH2, TARGET_SH3)
249         (TARGET_HARD_SH4, TARGET_FPU_SINGLE, TARGET_SH5, TARGET_FMOVD)
250         (TARGET_IEEE, TARGET_SMALLCODE, TARGET_BIGTABLE, TARGET_RELAX)
251         (TARGET_HITACHI, TARGET_NOMACSAVE, TARGET_PADSTRUCT)
252         (TARGET_LITTLE_ENDIAN, TARGET_USERMODE, TARGET_PREFERGOT)
253         (TARGET_SAVE_ALL_TARGET_REGS, TARGET_ALLOW_INDEXED_ADDRESS)
254         (TARGET_PT_FIXED, TARGET_INVALID_SYMBOLS, TARGET_ADJUST_UNROLL)
255         (TARGET_SWITCH_SH1, TARGET_SWITCH_SH2, TARGET_SWITCH_SH2E)
256         (TARGET_SWITCH_SH2A, TARGET_SWITCH_SH2A_SINGLE_ONLY)
257         (TARGET_SWITCH_SH2A_SINGLE, TARGET_SWITCH_SH2A_NOFPU)
258         (TARGET_SWITCH_SH3, TARGET_SWITCH_SH3E, TARGET_SWITCH_SH4_SINGLE_ONLY)
259         (TARGET_SWITCH_SH4_SINGLE, TARGET_SWITCH_SH4_NOFPU, TARGET_SWITCH_SH4)
260         (TARGET_SWITCH_SH4A, TARGET_SWITCH_SH4A_SINGLE_ONLY)
261         (TARGET_SWITCH_SH4A_SINGLE, TARGET_SWITCH_SH4A_NOFPU)
262         (TARGET_SWITCH_SH4AL, TARGET_SWITCH_SH5_64MEDIA)
263         (TARGET_SWITCH_SH5_64MEDIA_NOFPU, TARGET_SWITCHES_SH5_32MEDIA)
264         (TARGET_SWITCHES_SH5_32MEDIA_NOFPU, TARGET_SWITCH_SH5_32_ANY_EXTRA)
265         (TARGET_SWITCH_SH5_MEDIA_ANY_EXTRA, TARGET_SWITCHES)
266         (SUBTARGET_SWITCHES): Delete.
267         (TARGET_SH2E, TARGET_SH2A, TARGET_SH2A_SINGLE, TARGET_SH2A_DOUBLE)
268         (TARGET_SH3E, TARGET_CACHE32, TARGET_SUPERSCALAR, TARGET_HARVARD)
269         (TARGET_FPU_DOUBLE, TARGET_SH4A_ARCH, TARGET_SHMEDIA32)
270         (TARGET_SHMEDIA64): Redefine using other TARGET_* macros.
271         (TARGET_SH4): Undefine options.h definition and check MASK_SH1 as well.
272         (SUPPORT_SH1, SUPPORT_SH2E, SUPPORT_SH4, SUPPORT_SH4_SINGLE)
273         (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Make numeric.
274         (SUPPORT_SH2): Define to 1 if SUPPORT_SH1.
275         (SUPPORT_SH3): Likewise SUPPORT_SH2.
276         (SUPPORT_SH4_NOFPU): Likewise SUPPORT_SH3.
277         (SUPPORT_SH4A_NOFPU, SUPPORT_SH4AL, SUPPORT_SH2A_NOFPU): Likewise
278         SUPPORT_SH4_NOFPU.
279         (SUPPORT_SH3E): Likewise SUPPORT_SH2E.
280         (SUPPORT_SH4_SINGLE_ONLY, SUPPORT_SH4A_SINGLE_ONLY)
281         (SUPPORT_SH2A_SINGLE_ONLY): Likewise SUPPORT_SH3E.
282         (SUPPORT_SH4A): Likewise SUPPORT_SH4.
283         (SUPPORT_SH4A_SINGLE): Likewise SUPPORT_SH4_SINGLE.
284         (SUPPORT_SH5_32MEDIA): Likewise SUPPORT_SH5_COMPACT.
285         (SUPPORT_SH5_32MEDIA_NOFPU): Likewise SUPPORT_SH5_COMPACT_NOFPU.
286         (SUPPORT_ANY_SH5_32MEDIA, SUPPORT_ANY_SH5_64MEDIA)
287         (SUPPORT_ANY_SH5): New macros.
288         (TARGET_NONE): Replace with...
289         (MASK_ARCH): ...this new macro.
290         * config/sh/elf.h: Update mask names
291         * config/sh/linux.h: Likewise.
292         * config/sh/little.h: Likewise.
293         * config/sh/netbsd-elf.h: Likewise.
294         * config/sh/symbian-pre.h: Likewise.
295         * config/sh/sh.c (sh_handle_option): New function.
296         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
297         (calc_live_regs): Use MASK_FPU_SINGLE instead of FPU_SINGLE_BIT.
298         (sh_target_switches, target_switches): Delete.
299         (sh_pch_valid_p): Check for specific differences in the target_flags
300         settings.
301         (sh_init_cumulative_args): Use MASK_HITACHI instead of HITACHI_BIT.
302         * config/sh/sh.opt: New file.
303
304 2005-05-18  Richard Henderson  <rth@redhat.com>
305
306         PR target/21632
307         * config/ia64/ia64.c (ia64_extra_constraint) <'T'>: Use
308         small_addr_symbolic_operand.
309
310 2005-05-18  Jeff Law  <law@redhat.com>
311
312         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Do not
313         propagate an ADDR_EXPR if the definition and use sites are
314         in different EH regions.
315
316 2005-05-18  Ian Lance Taylor  <ian@airs.com>
317
318         * read-rtl.c (mode_attr_index): Use obstack_grow0, not
319         obstack_grow.
320
321 2005-05-18  Daniel Berlin  <dberlin@dberlin.org>
322
323         * cfgrtl.c (purge_dead_edges): Don't remove fake edges.
324
325 2005-05-18  Daniel Berlin  <dberlin@dberlin.org>
326         
327         Fix PR tree-optimization/21407
328
329         * tree-ssa-operands.c (note_addressable): Change
330         COMPONENT_REF handling in response to aliasing
331         discussion.
332
333 2005-05-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
334
335         * config/sparc/sol2.h (TARGET_DEFAULT): Add back MASK_APP_REGS.
336         * config/sparc/sol2-64.h (TARGET_DEFAULT): Likewise.
337         * config/sparc/sp-elf.h (TARGET_DEFAULT): Delete.
338         * doc/invoke.texi (SPARC options): Document that -mapp-regs is
339         the default on Solaris too.
340
341 2005-05-17  Daniel Berlin  <dberlin@dberlin.org>
342
343         * tree-ssa-pre.c (find_or_generate_expression): CALL_EXPR
344         is okay too.
345
346 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
347
348         * timevar.def (TV_SCEV_CONST): New timevar.
349         * tree-optimize.c (init_tree_optimization_passes): Add
350         pass_scev_cprop.
351         * tree-pass.h (pass_scev_cprop): Declare.
352         * tree-scalar-evolution.c (scev_const_prop): New function.
353         * tree-scalar-evolution.h (scev_const_prop): Declare.
354         * tree-ssa-loop.c (gate_scev_const_prop, pass_scev_cprop):
355         New.
356         * tree-cfg.c (replace_uses_by): Export.
357         * tree-flow.h (replace_uses_by): Declare.
358
359 2005-05-17  Ziemowit Laski  <zlaski@apple.com>
360             Mike Stump  <mrs@apple.com>
361
362         Yet more Objective-C++...
363
364         * c-common.h (objc_finish_try_stmt): Add.
365         (objc_build_synchronized): Add.
366         (objc_generate_write_barrier): Add.
367         * stub-objc.c (objc_build_synchronized): Add return value.
368         (objc_finish_try_stmt): Likewise.
369         (objc_generate_write_barrier): Add.
370
371         * c-common.h (objc_rewrite_function_call): Add.
372         * c-typeck.c (build_function_call): Allow objc to rewrite
373         FUNCTION_DECLs.
374         (build_modify_expr): Allow objc to generate write barriers.
375         * c.opt (Wassign-intercept): Add.
376         (Wstrict-selector-match): Add.
377         (fobjc-call-cxx-cdtors): Add.
378         (fobjc-direct-dispatch): Add.
379         (fobjc-gc): Add.
380         * dbxout.c (get_lang_number): Add Objective-C++ support.
381         * doc/invoke.texi (-fobjc-call-cxx-cdtors): Likewise.
382         (-Wstrict-selector-match): Likewise.
383         (-fobjc-direct-dispatch): Likewise.
384         (-Wassign-intercept): Likewise.
385         (Overall Options): Likewise.
386         * gengtype.c (get_output_file_with_visibility): Likewise.
387         * stub-objc.c (objc_rewrite_function_call): Add.
388         * config/darwin.h (ASM_OUTPUT_LABELREF): Improved quoting support.
389
390         * c-common.c (flag_objc_exceptions): Remove.
391         (flag_objc_sjlj_exceptions): Remove.
392         * c-decl.c (objc_mark_locals_volatile): Don't change decls
393         that are already ok.
394         * c-opts.c (c_common_handle_option, case
395         OPT_fobjc_exceptions): Remove.
396         (case OPT_fobjc_sjlj_exceptions): Remove
397         * c.opt (fobjc-call-cxx-cdtors): Have opt create the flag.
398         (fobjc-exceptions): Likewise.
399         (fobjc-sjlj-exceptions): Likewise.
400         * config/rs6000/darwin.h (OFFS_MSGSEND_FAST): Add.
401         (OFFS_ASSIGNIVAR_FAST): Add.
402         
403 2005-05-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
404
405         * config/sparc/sparc.md (movhi): Do not test constness
406         of operand #1 twice.
407         (movsi): Likewise.
408         (movdi): Unconditionally accept zero as second operand
409         when the first is memory.
410         (movdi_insn_sp32): Handle above case.
411         (DImode splitter): Use predicates.
412         (DImode splitter): Use const_zero_operand predicate.
413         (movsf_insn): Swap 2 alternatives.
414
415 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
416
417         * tree-ssa-loop-ivopts.c (find_bivs, find_givs_in_stmt_scev): Apply
418         expand_simple_operations to bases of the ivs.
419         (tree_int_cst_sign_bit): Export.
420         * tree-flow.h (expand_simple_operations): Declare.
421         * tree-ssa-loop-niter.c (number_of_iterations_cond): Use
422         tree_int_cst_sign_bit.
423         (expand_simple_operations): Export.
424         * tree.h (tree_int_cst_sign_bit): Declare.
425
426 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
427
428         * tree-cfg.c (tree_can_merge_blocks_p): Allow phi nodes in the
429         merged block.
430         (replace_uses_by): New function.
431         (tree_merge_blocks): Eliminate the phi nodes in the merged block.
432         * tree-flow.h (fold_stmt_inplace): Declare.
433         * tree-ssa-ccp.c (fold_stmt_inplace): New function.
434         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Update dominance
435         info after cfg cleanup.
436
437 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
438
439         * cfgloop.h (just_once_each_iteration_p): Declaration changed.
440         * cfgloopanal.c (just_once_each_iteration_p): Make the loop argument
441         const.
442
443 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
444
445         * ggc-page.c (ggc_alloc_stat): Record amount of memory allocated.
446         * ggc-zone.c (ggc_alloc_zone_1): Ditto.
447         * timevar.c (timevar_ggc_mem_total): New variable.
448         (GGC_MEM_BOUND): New constant.
449         (get_time): Record ggc memory status.
450         (timevar_accumulate): Accumulate amount of ggc memory.
451         (timevar_print): Print consumption of ggc memory.
452         * timevar.def (TV_FIND_REFERENCED_VARS, TV_TREE_REDPHI,
453         TV_TREE_LOOP_BOUNDS, TV_TREE_LOOP_IVCANON, TV_TREE_VECTORIZATION,
454         TV_TREE_LINEAR_TRANSFORM): Shorten strings to fit in 22 characters.
455         * timevar.h (struct timevar_time_def): Add ggc_mem field.
456         (timevar_ggc_mem_total): Declare.
457
458 2005-05-17  Kazu Hirata  <kazu@cs.umass.edu>
459
460         * tree-into-ssa.c (update_ssa): Clean up by shortening the
461         live range of DFS.
462
463 2005-05-17  Hans-Peter Nilsson  <hp@axis.com>
464
465         * config/cris/cris.md (ncond, ocode, rcond): Remove separate
466         define_code_attr.
467         ("b<ncond:code>", "b<ocond:code>", "b<rcond:code>")
468         ("*b<ncond:code>_reversed", "*b<ocond:code>_reversed")
469         ("*b<rcond:code>_reversed", "s<ncond:code>", "s<rcond:code>")
470         ("s<ocond:code>"): Rename from respectively "b<ncond>",
471         "b<ocond>", "b<rcond>", ("*b<ncond>_reversed",
472         "*b<ocond>_reversed", "*b<rcond>_reversed", "s<ncond>",
473         "s<rcond>" and "s<ocond>".
474         ("b<ocond:code>", "*b<ocond:code>_reversed")
475         ("*b<rcond:code>_reversed"): Remove extraneous backslashes in
476         output statement section.
477
478 2005-05-17  Roger Sayle  <roger@eyesopen.com>
479
480         * c-typeck.c (common_type): Also handle BOOLEAN_TYPEs.
481
482 2005-05-17  Steven Bosscher  <stevenb@suse.de>
483             Stuart Hastings <stuart@apple.com>
484             Jan Hubicka  <jh@suse.cz>
485             Dale Johannesen  <dalej@apple.com>
486
487         * cgraph.h (cgraph_node): Add 'lowered' state.
488         (cgraph_lower_function): Declare.
489         * cgraphunit.c (cgraph_finalize_function): Initialize lowered flag.
490         (cgraph_lower_function): New function.
491         (cgraph_create_edges): Deal with lowered function bodies.
492         (verify_cgraph_node): Likewise.
493         (cgraph_analyze_function): Do lowering job.
494         (cgraph_build_static_cdtor): Likewise.
495         * function.h (struct function): Add saved_eh and saved_cfg.
496         * integrate.c (copy_decl_for_inlining): Kill LABEL_DECL_UID field.
497         * tree-cfg.c (fold_cond_expr_cond): Export.
498         * tree-flow.h (fold_cond_expr_cond): Declare.
499         * tree-inline.c: Include basic-block, ggc, tree-flow, except.h and
500         pointer-set.
501         (struct_inline_data): Kill fnd, first_inlined_fn, ret_label,
502         in_target_cleanup_p, tree_pruner, tsi; add callee, caller and
503         callee_cfun, block, eh_region, eh_region_offset.
504         (inlining_p): New predicate.
505         (remap_decl): Update for new inline_data; declare newly created inline
506         vars in low gimple way.
507         (copy_body_r): Update for new datastructure, simplify some of handling
508         when we are in gimple; remap LABEL_DECLs for EH; copy TREE_BLOCK;
509         deal with RESX_EXPRs.
510         (copy_bb): New.
511         (copy_edges_for_bb): Likewise.
512         (remap_decl_1): New.
513         (copy_cfg_body): New.
514         (copy_generic_body): Rewrite to work on low gimple.
515         (copy_body): Turn into simple wrapper around copy_cfg_body.
516         (setup_one_parameter): Insert new statements into given basic block.
517         (initialize_initialized_parameters): Likewise, reorganize way things are
518         gimplified.
519         (declare_return_variable): Update for new inline data datastructure.
520         (inline_forbidden_p): Work on low gimple.
521         (estimate_num_insns): Likewise.
522         (expand_call_inline): Work on CFG.
523         (push_cfun, pop_cfun): New functions.
524         (cfun_stack): New stack.
525         (add_lexical_block): New function.
526         (gimple_expand_calls_inline): Work on basic block.
527         (optimize_inline_calls): Likewise.
528         (clone_body, save_body, unsave_ewpr_now): Update for new
529         datastructures.
530         (declare_inline_vars): Work on block instead of bind_expr.
531         (inlining_p): New predicate.
532         * tree-inline.h (push_cfun, pop_cfun): Declare.
533         * tree-optimize.c: Include except.h
534         (all_lowering_passes): New variable.
535         (execute_fixup_cfg, pass_fixup_cfg): New pass.
536         (init_tree_optimization_passes): Move some to all_lowering_passes.
537         (tree_lowering_passes): New function.
538         (tree_rest_of_compilation): Register cfg hooks; save/unsave eh.
539         * tree-pass.h (tree_lowering_passes): Declare
540
541 2005-05-17  Nathan Sidwell  <nathan@codesourcery.com>
542
543         * unwind-dw2-fde-darwin.c: Include tsystem.h.
544
545 2005-05-17  Jeff Law  <law@redhat.com>
546
547         * Makefile.in (tree-ssa-forwprop.o): Depend on langhooks.h.
548         * tree-ssa-forwprop.c: Include langhooks.h.
549         (forward_propagate_addr_expr_into_variable_array_index): New.
550         (forward_propagate_addr_expr): New.
551         (tree_ssa_forward_propagate_single_use_vars): Loop over all
552         the statements in the block instead of just the last statement.
553         Call forward_propagate_addr_expr as needed.
554         (pass_forwprop): Update the SSA graph after forward propagation is
555         complete.
556
557 2005-05-17  Nathan Sidwell  <nathan@codesourcery.com>
558
559         * unwind-dw2-fde-glibc.c (base_from_cb_data,
560         _Unwind_IteratePhdrCallback): Use gcc_assert and gcc_unreachable as
561         appropriate.
562         * unwind-dw2-fde.c (__deregister_frame_info_bases,
563         base_from_object, fde_split, end_fde_sort): Likewise.
564         * unwind-dw2.c (_Unwind_GetGR, _Unwind_SetGR, execute_stack_op, 
565         execute_cfa_program, _Unwind_SetSpColumn, uw_update_context_1,
566         uw_init_context_1): Likewise.
567         * unwind.inc (_Unwind_RaiseException_Phase2, _Unwind_Resume,
568         _Unwind_Resume_or_Rethrow): Likewise.
569         * unwind-pe.h (__gxx_abort): Do not define.
570         (size_of_encoded_value, base_of_encoded_value,
571         read_encoded_value_with_base): Use gcc_unreachable.
572         * unwind.h (_Unwind_GetTextRelBase): Likewise.
573
574 2005-05-17  Daniel Jacobowitz  <dan@codesourcery.com>
575
576         * config/arm/lib1funcs.asm (cfi_pop, cfi_push, cfi_start)
577         (cfi_end): New macros.
578         (RETLDM): Use cfi_pop.  Expect an eight byte stack frame.
579         (ARM_LDIV0, THUMB_LDIV0, DIV_FUNC_END): Use CFI macros.  Create
580         an eight byte stack frame.
581         (__NR_tkill): Define.
582         (__div0): Use gettid tkill on GNU/Linux.
583         (_arm_return): Add CFI.
584         (Lchange_\register, .Lchange_lr): Create an eight byte stack frame.
585
586 2005-05-17  Daniel Jacobowitz  <dan@codesourcery.com>
587
588         * configure.ac: Remove spaces around assignment to
589         gcc_cv_ld_sysroot.
590         * configure: Regenerated.
591
592 2005-05-17  David Edelsohn  <edelsohn@gnu.org>
593
594         * config/rs6000/aix.h (TARGET_ALTIVEC_VRSAVE): Delete.
595         * config/rs6000/rs6000.c (rs6000_explicit_options): Add
596         aix_struct_ret.
597         (rs6000_override_options): Do not protect TARGET_ALTIVEC_VRSAVE.
598         Modify aix_struct_return variable, not target_flags.
599         (rs6000_handle_option): Do not protect TARGET_ALTIVEC_VRSAVE.
600         (rs6000_return_in_memory): Test aix_struct_return.
601         * config/rs6000/rs6000.opt (maix-struct-return): Convert to
602         independent variable.  Report mxl-compat.
603
604 2005-05-17  Bernd Schmidt  <bernd.schmidt@analog.com>
605
606         * config/bfin/bfin.md (eh_return): Add missing DONE.
607
608 2005-05-17  Ian Lance Taylor  <ian@airs.com>
609
610         * read-rtl.c (struct macro_traverse_data): Add unknown_mode_attr
611         field.
612         (mode_attr_index): Remove check for defined attribute.  Remove
613         infile parameter.  Change all callers.
614         (apply_mode_maps): Add unknown parameter.  Change caller.  Always
615         return after finding attribute.
616         (apply_macro_to_rtx): Add unknown_mode_attr parameter.  Change
617         callers.
618         (apply_macro_traverse): Set mtd->unknown_mode_attr.
619         (read_rtx): Use mtd.unknown_mode_attr to check for an undefined
620         attribute used for a mode.
621
622 2005-05-17  Paolo Bonzini  <bonzini@gnu.org>
623
624         * tree-ssa-math-opts.c: New file.
625
626 2005-05-17  Paolo Bonzini  <bonzini@gnu.org>
627
628         * Makefile.in: Add tree-ssa-math-opts.c.
629         * expr.c (expand_expr_real_1) <case RDIV_EXPR>: Never emit as a*(1/b).
630         * fold-const.c (distribute_real_division): New.
631         (fold_binary) <case PLUS_EXPR, case MINUS_EXPR>: Use it.
632         * tree-pass.h (pass_cse_reciprocals): New.
633         * tree-optimize.c (init_tree_optimization_passes): Run it.
634         * doc/passes.texi: Document the new pass.
635
636 2005-05-17  Richard Guenther  <rguenth@gcc.gnu.org>
637
638         PR middle-end/21595
639         * builtins.c (fold_builtin_constant_p): Handle
640         &"string cst"[0] as constant.
641
642 2005-05-17  Richard Henderson  <rth@redhat.com>
643
644         * config/i386/sse.md (mulv16qi3, mulv2di3): New.
645
646 2005-05-17  Jakub Jelinek  <jakub@redhat.com>
647
648         PR middle-end/21492
649         * cfgcleanup.c (try_crossjump_to_edge): update_forwarder_flag for
650         src2 if src2 has been split.
651
652         PR tree-optimization/21610
653         * c-typeck.c (decl_constant_value_for_broken_optimization): If not
654         returning DECL, call unshare_expr.
655
656 2005-05-17  Hans-Peter Nilsson  <hp@axis.com>
657
658         * config/cris/cris.md: Unquote preparation and output statements.
659         (BWD, WD, BW): New, mode-macros.
660         (S, s, m, mm, nbitsm1): New, mode-attrs.
661         (szext, shift, shiftrt, ncond, ocond, rcond): New, code-macros.
662         (u, su, shlr, slr, ncond, ocond, rcond, rCC, oCC, roCC): New,
663         code-attrs.
664         ("tst<mode>"): Replace "tstqi", "tsthi" and "tstsi".
665         ("*cmp_ext<mode>"): Replace "*cmp_extsi" and "*cmp_exthi".
666         ("*cmp_swapext<mode>"): Replace "*cmp_swapextqi" and
667         "*cmp_swapexthi".
668         ("cmp<mode>"): Replace "cmphi" and "cmpqi".
669         ("movdi"): Move misplaced head comment regarding necessity of
670         movdi from movsi to here.
671         ("*mov_side<mode>_biap"): Replace "*mov_sideqi_biap" and
672         "*mov_sidehi_biap".
673         ("*mov_side<mode>"): Replace "*mov_sideqi" and "*mov_sidehi".
674         ("*mov_side<mode>_biap_mem", "*mov_sidehi_biap_mem"): Replace
675         "*mov_sideqi_biap_mem".
676         ("*mov_side<mode>_mem"): Replace "*mov_sideqi_mem" and
677         "*mov_sidehi_mem".
678         ("*clear_side<mode>_biap"): Replace "*clear_sidesi_biap",
679         "*clear_sidehi_biap" and "*clear_sideqi_biap".
680         ("*clear_side<mode>"): Replace "*clear_sidesi", "*clear_sidehi"
681         and "*clear_sideqi".
682         ("*ext_side<mode>si_biap"): Replace "*ext_sideqisi_biap" and
683         "*ext_sidehisi_biap".
684         ("*ext_side<mode>si"): Replace "*ext_sideqisi" and
685         "*ext_sidehisi".
686         ("reload_in<mode>"): Replace "reload_inhi" and "reload_inqi".
687         ("reload_out<mode>"): Replace "reload_outhi" and "reload_outqi".
688         ("extend<mode>di2"): Replace "extendhidi2" and "extendqidi2".
689         ("extend<mode>si2"): Replace "extendhisi2" and "extendqisi2".
690         ("zero_extend<mode>si2"): Replace "zero_extendhisi2" and
691         "zero_extendqisi2".
692         ("*op_side<mode>_biap"): Replace "*op_sideqi_biap",
693         "*op_sidehi_biap" and "*op_sidesi_biap".
694         ("*op_side<mode>"): Replace "*op_sideqi", "*op_sidehi" and
695         "*op_sidesi".
696         ("*op_swap_side<mode>_biap"): Replace "*op_swap_sideqi_biap",
697         "*op_swap_sidehi_biap" and "*op_swap_sidesi_biap".
698         ("*op_swap_side<mode>"): Replace "*op_swap_sideqi",
699         "*op_swap_sidehi" and "*op_swap_sidesi".
700         ("sub<mode>3"): Replace "subhi3" and "subqi3", correcting a typo
701         in the N alternative of "subqi3".
702         ("*extop<mode>si_side_biap"): Replace "*extopqisi_side_biap" and
703         "*extophisi_side_biap".
704         ("*extop<mode>si_side"): Replace "*extopqisi_side" and
705         "*extophisi_side".
706         ("*extop<mode>si_swap_side_biap"): Replace
707         "*extopqisi_swap_side_biap" and "*extophisi_swap_side_biap".
708         ("*extop<mode>si_swap_side"): Replace "*extopqisi_swap_side" and
709         "*extophisi_swap_side".
710         ("*extop<mode>si"): Replace "*extopqisi" and "*extophisi".
711         ("*extop<mode>si_swap"): Replace "*extopqisi_swap" and
712         "*extophisi_swap".
713         ("<u>mul<s><mode>3"): Replace "umulhisi3", "umulqihi3",
714         "mulqihi3", "mulhisi3" and "mulhisi3".
715         ("<u>mulsidi3"): Replace "mulsidi3" and "umulsidi3".
716         ("<su>mulsi3_highpart"): Replace "smulsi3_highpart" and
717         "umulsi3_highpart".
718         ("xor<mode>3"): Replace "xorhi3" and "xorqi3".
719         ("neg<mode>2"): Replace "negsi2", "neghi2" and "negqi2".
720         ("one_cmpl<mode>2"): Replace "one_cmplhi2" and "one_cmplqi2".
721         ("<shlr>si3"): Replace "ashrsi3", "lshrsi3" and "ashlsi3".
722         ("ashr<mode>3"): Replace "ashrhi3" and "ashrqi3".
723         ("*expanded_<shlr><mode>"): Replace "*expanded_ashrhi",
724         "*expanded_ashrqi", "*expanded_lshrhi" and "*expanded_lshrqi".
725         ("*<shlr><mode>_lowpart"): Replace "*ashrhi_lowpart",
726         "*ashrqi_lowpart", "*lshrhi_lowpart" and "*lshrqi_lowpart".
727         ("lshr<mode>3"): Replace "lshrhi3" and "lshrqi3".
728         ("ashl<mode>3"): Replace "ashlhi3" and "ashlqi3".
729         ("*ashl<mode>_lowpart"): Replace "*ashlqi_lowpart" and
730         "*ashlhi_lowpart".
731         ("abs<mode>2"): Replace "abshi2" and "absqi2".
732         ("b<ncond>"): Replace "beq", "bne", "bgtu", "bltu", "bgeu" and
733         "bleu".
734         ("b<ocond>"): Replace "bgt" and "ble".
735         ("b<rcond>"): Replace "blt" and "bge".
736         ("*b<ncond>_reversed"): Replace "*beq_reversed", "*bne_reversed",
737         "*bgtu_reversed", "*bltu_reversed", "*bgeu_reversed" and
738         "*bleu_reversed".
739         ("*b<ocond>_reversed"): Replace "*bgt_reversed" and
740         "*ble_reversed".
741         ("*b<rcond>_reversed"): Replace "*blt_reversed" and
742         "*blt_reversed".
743         ("s<ncond>"): Replace "sgeu", "sltu", "seq", "sgtu", "sleu" and
744         "sne".
745         ("s<rcond>"): Replace "sge" and "slt".
746         ("s<ocond>"): Replace "sgt" and "sle".
747         ("clear.[bwd] [rx=rx+rz.S2]"): Replace split clear.d
748         [rx=rx+rz.S2], clear.w [rx=rx+rz.S2] and clear.b [rx=rx+rz.S2].
749         ("clear.[bwd] [rx=rx+i]"): Replace splits clear.d [rx=rx+i],
750         clear.w [rx=rx+i] and clear.b [rx=rx+i].
751
752 2005-05-17  Jakub Jelinek  <jakub@redhat.com>
753
754         * varasm.c (struct constant_descriptor_tree): Add hash field.
755         (const_desc_hash): Just return hash field.
756         (const_desc_eq): If hash values are different, return 0 immediately.
757         (output_constant_def): Compute hash field of temporary key, use
758         htab_find_slot_with_hash instead of htab_find_slot.  Set hash in
759         newly built constant descriptor.
760         (lookup_constant_def): Compute hash field of temporary key, use
761         htab_find_with_hash instead of htab_find.
762
763 2005-05-16  Richard Henderson  <rth@redhat.com>
764
765         * config/i386/sse.md (mulv4si3): New.
766
767 2005-05-17  Hans-Peter Nilsson  <hp@axis.com>
768
769         * config/cris/cris.h (EXTRA_CONSTRAINT_T): Remove FIXME and
770         tests for noncanonical versions of reg+constant and
771         reg+reg*{1,2,4}.
772
773 2005-05-16  Richard Henderson  <rth@redhat.com>
774             Steven Bosscher <stevenb@suse.de>
775
776         PR tree-opt/21399
777         * tree-eh.c (maybe_clean_or_replace_eh_stmt): Rename from 
778         maybe_clean_eh_stmt; take old stmt parameter.  Update EH
779         region data structure to match replacement.
780         * tree-flow.h: Update to match.
781         * tree-ssa-ccp.c (execute_fold_all_builtins): Likewise.
782         * tree-ssa-dom.c (optimize_stmt): Likewise.
783         * tree-ssa-pre.c (eliminate): Likewise.
784         * tree-ssa-propagate.c (substitute_and_fold): Likewise.
785
786 2005-05-16  Caroline Tice  <ctice@apple.com>
787
788         * bb-reorder.c (verify_hot_cold_block_grouping):  Replace
789         internal_error with gcc_assert.
790         * dwarf2out.c (dwarf2out_switch_text_section):  Likewise.
791         * function.h (struct function): Remove space between "*" and
792         struct field names.
793         * varasm.c (initialize_cold_section_name):   Add gcc_assert;
794         modify to use alloca.
795         (unlikely_text_section): Add check for flag_function_sections.
796         (assemble_start_function):  Move call to resolve_section, so it
797         comes before first call to unlikely_text_section.
798         (assemble_end_function):  Add test and call to function_section
799         if appropriate.
800         
801 2005-05-16  Roger Sayle  <roger@eyesopen.com>
802
803         * c-common.c (c_common_truthvalue_conversion): Use fold_build2
804         instead of build_binary_op when performing code transformations
805         to avoid error messages about constructs not it the user's code.
806
807 2005-05-16  Kazu Hirata  <kazu@cs.umass.edu>
808
809         * tree-ssa-pre.c: Fix a comment typo.
810
811 2005-05-16  Richard Henderson  <rth@redhat.com>
812
813         PR target/21556
814         * config/ia64/ia64.md (load_dtpmod, load_ltoff_dtpmod, load_dtprel,
815         load_dtprel64, load_dtprel22, load_dtprel_gd, load_ltoff_dtprel,
816         add_dtprel, add_dtprel14, add_dtprel22, load_tprel, load_tprel64,
817         load_tprel22, load_tprel_ie, load_ltoff_tprel, add_tprel, add_tprel14,
818         add_tprel22): Remove mode from symbolic operand.
819
820 2005-05-16  Richard Sandiford  <rsandifo@redhat.com>
821
822         * optc-gen.awk: Include intl.h after the externally-provided files.
823
824 2005-05-16  Kazu Hirata  <kazu@cs.umass.edu>
825
826         * tree-ssa-copy.c (copy_prop_visit_assignment): Clean up by
827         folding a COND_EXPR_COND in a nondestructive manner.
828
829 2005-05-16  Fariborz Jahanian <fjahanian@apple.com>
830
831         * config/rs6000/altivec.md (altivec_vmrghb, altivec_vmrghh, 
832         altivec_vmrghw, altivec_vmrglb, altivec_vmrglh, altivec_vmrglw):
833         New values for vec_select definitions and bitmask for element
834         selection.
835          
836 2005-05-16  Kazu Hirata  <kazu@cs.umass.edu>
837
838         * dwarf2out.c (used_rtx_varray): Rename to used_rtx_array.
839         Change the type to VEC(rtx,gc)*.
840         (mem_loc_descriptor, add_const_value_attributes,
841         dwarf2out_init): Adjust uses of used_rtx_varray.
842
843         * tree-data-ref.c (compute_all_dependences): Change the type
844         of dependence_relations to VEC(ddr_p,heap)**.
845         (compute_data_dependences_for_loop): Change the type of
846         allrelations to VEC(ddr_p,heap)*.
847
848 2005-05-16  Richard Sandiford  <rsandifo@redhat.com>
849
850         * Makefile.in (options.c): Tell optc-gen.awk to include config.h,
851         system.h, coretypes.h and tm.h.
852         (options.o): Update dependencies accordingly.
853         * optc-gen.awk: Allow header_name to be a list of filenames.
854         Handle the "Condition" flag.
855         * opts.h (CL_DISABLED): New flag.
856         * opts.c (handle_option): Print an error for CL_DISABLED options.
857         * doc/options.texi: Document the "Condition" option flag.
858
859 2005-05-16  Paolo Bonzini  <bonzini@gnu.org>
860
861         * tree-inline.c (estimate_num_insns_1): Handle VEC_COND_EXPR.
862
863 2005-05-15  Roger Sayle  <roger@eyesopen.com>
864
865         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Only
866         check for TREE_OVERFLOW on INTEGER_CST trees.
867         * tree-chrec.c (chrec_convert): Only clear TREE_OVERFLOW on
868         CONSTANT_CLASS_P tree nodes.
869
870 2005-05-15  H.J. Lu  <hongjiu.lu@intel.com>
871
872         PR target/21551
873         * config/ia64/ia64.c (ia64_expand_move): Don't add addend twice.
874
875 2005-05-15  Daniel Berlin  <dberlin@dberlin.org>
876             
877         Fix PR tree-optimization/21576
878         
879         * tree-ssa-pre.c (expression_node_pool): New pool.
880         (comparison_node_pool): Ditto.
881         (list_node_pool): Ditto.
882         (pool_copy_list): New function.
883         (phi_translate): Handle CALL_EXPR.
884         (valid_in_set): Ditto.
885         (create_expression_by_pieces): Ditto.
886         (insert_into_preds_of_block): Ditto.
887         (insert_aux): Ditto.
888         (compute_avail): Ditto.
889         (create_value_expr_from): Handle TREE_LIST and CALL_EXPR.
890         (can_value_number_call): New function.
891         (find_leader): Update comment.
892         (init_pre): Create new pools.
893         (fini_pre): Free new pools.
894         (pass_pre): Add TODO_update_ssa for the future when we are going
895         to need vops.
896         * tree-vn.c (expressions_equal_p): Handle TREE_LIST.
897         (set_value_handle): Ditto.
898         (get_value_handle): Ditto.
899
900 2005-05-15  Richard Earnshaw  <richard.earnshaw@arm.com>
901
902         * arm.c (thumb_unexpanded_epilogue): Delete unused variable 'mode'.
903
904 2005-05-15  Andreas Jaeger  <aj@suse.de>
905
906         * gcc.c (pfatal_pexecute): Remove unused local function.
907
908 2005-05-15  Richard Sandiford  <rsandifo@redhat.com>
909
910         * optc-gen.awk: Remove excess indentation.
911         * opth-gen.awk: Likewise.
912
913 2005-05-14  Kaz Kojima  <kkojima@gcc.gnu.org>
914
915         * config/sh/sh.c (sh_output_mi_thunk): Check cfun->cfg instead
916         of basic_block_info.  Call init_flow and find_basic_blocks
917         before dbr_schedule if needed.
918
919 2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
920
921         * tree-optimize.c (init_tree_optimization_passes): Move
922         pass_cd_dce in place of the last pass_dce.
923
924         PR tree-optimization/21563
925         * tree-vrp.c (compare_value): Return boolean_false_node when
926         SSA_NAME in "if (SSA_NAME == CST)" is strictly smaller than or
927         strictly larger than CST.
928
929 2005-05-14  Nathan Sidwell  <nathan@codesourcery.com>
930             Jan-Benedict Glaw  <jbglaw@lug-owl.de>
931
932         * config/vax/vax.c: (print_operand_address) Use gcc_unreachable() and
933         gcc_assert().
934         (rev_cond_name) Likewise.
935         (vax_float_literal) Likewise.
936         * config/vax/vax.md: Likewise.
937
938 2005-05-14  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
939
940         * config/vax/vax.md: define_constant VAXens AP, FP, SP and PC
941         registers and use them (specifically the stack pointer).
942         * config/vax/vax.h: Use above defines right here.
943
944         * config/vax/vax.c: (override_options) Remove 'register' keyword.
945         (split_quadword_operands) Likewise. (rev_cond_name) Likewise.
946         (vax_float_literal) Likewise. (vax_rtx_costs) Remove trailing
947         whitespace.
948         * config/vax/vax.h: Remove 'register' keyword. Misc. whitespace fixes,
949         mostly removal of trailing spaces...
950         * config/vax/vax-modes.def: Remove trailing whitespace.
951
952         * config/vax/elf.h: Update whitespace.
953
954 2005-05-14  Richard Guenther  <rguenth@gcc.gnu.org>
955
956         Revert
957         2005-05-11  Richard Guenther  <rguenth@gcc.gnu.org>
958         * fold-const.c (fold_indirect_ref_1): Avoid removing
959         NOP_EXPRs with type qualifiers like const.
960
961 2005-05-14  Jan Hubicka  <jh@suse.cz>
962
963         Patch by Richard Henderson:
964         * tree-eh.c (tree_can_throw_internal, tree_can_throw_external):
965         Handle RESX expressions properly.
966
967         * tree-eh.c (record_stmt_eh_region): Use add_stmt_to_eh_region.
968         (add_stmt_to_eh_region_fn): Nest into CALL_EXPR.
969         (remove_stmt_from_eh_region_fn): Likewise.
970
971         * tree-cfg.c (execute_warn_function_return): Break out noreturn
972         warning too..
973         (execute_warn_function_noreturn): ... here.
974         (pass_warn_function_noreturn): New pass.
975         * tree-pass.h (pass_warn_function_noreturn): Declare
976         * tree-optimize.c (init_tree_optimization_passes): Move return
977         warnings early and add noreturn warnings at place of previous
978         return warnings.
979
980 2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
981
982         * tree-ssa-live.c (tpa_init, tpa_delete, tpa_compact,
983         root_var_init, type_var_init): Use VEC instead of VARRAY.
984         * tree-ssa-live.h (tree_partition_associator_d): Change the
985         type of trees to VEC(tree,heap)*.
986         (tpa_tree): Use VEC instead of VARRAY.
987
988 2005-05-14  Richard Guenther  <rguenth@gcc.gnu.org>
989
990         * fold-const.c (div_if_zero_remainder): New function.
991         (try_move_mult_to_index): Use it.
992
993 2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
994
995         * tree-eh.c (leh_tf_state): Change the type of dest_array to
996         VEC(tree,heap)*.
997         (maybe_record_in_goto_queue, lower_try_finally_onedest,
998         lower_try_finally_copy, lower_try_finally_switch,
999         lower_try_finally): Use VEC instead of VARRAY.
1000
1001 2005-05-14  Hans-Peter Nilsson  <hp@axis.com>
1002
1003         * config/cris/cris.h (Node: Register Classes): Remove obsoleted
1004         comment regarding defined register classes.
1005         (LEGITIMIZE_RELOAD_ADDRESS): Do not define.
1006
1007 2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
1008
1009         * tree-optimize.c (init_tree_optimization_passes): Move
1010         pass_merge_phi before the first pass_dominator.
1011
1012 2005-05-13  Richard Earnshaw  <richard.earnshaw@arm.com>
1013
1014         * arm.h (INITIALIZE_TRAMPOLINE): Make the call to __clear_cache
1015         unconditional.
1016
1017 2005-05-13  Josh Conner  <jconner@apple.com>
1018
1019         * config/arm/arm.c (arm_size_return_regs): New.
1020         (thumb_unexpanded_epilogue): replace in-line calculation
1021         of return registers with call to arm_size_return_regs.
1022         (use_return_insn): Include test of which registers are
1023         being used to hold return values, to accommodate
1024         vector return values.
1025
1026 2005-05-11  Aldy Hernandez  <aldyh@redhat.com>
1027
1028         * config/rs6000/sysv4.opt (mlittle): Handle.
1029
1030         * config/rs6000/rs6000.c (rs6000_handle_option): Set
1031         target_flags_explicit when appropriate.
1032
1033 2005-05-13  J"orn Rennecke <joern.rennecke@st.com>
1034
1035         PR middle-end/20714:
1036         * optabs.c (no_conflict_data): New struct.
1037         (no_conflict_move_test): New function.
1038         (emit_no_conflict_block): Use it.
1039
1040 2005-05-13  Adam Nemet  <anemet@lnxw.com>
1041
1042         * doc/invoke.texi (Debugging Options): Option
1043         -fdump-translation-unit only works with C++ now.
1044
1045 2005-05-13  Hans-Peter Nilsson  <hp@axis.com>
1046
1047         Replace calls to abort in CRIS port.
1048         * config/cris/cris.h (CRIS_ASSERT): New macro.
1049         * config/cris/cris.md ("*movsi_internal"): Use CRIS_ASSERT and
1050         internal_error instead of abort.
1051         ("movsi"): Ditto.  Unquote preparation statement section.
1052         ("call", "call_value"): Ditto, but use gcc_assert where
1053         appropriate.  Tweak comments.
1054         * config/cris/cris.c (ASSERT_PLT_UNSPEC): Define in terms of
1055         CRIS_ASSERT.
1056         (cris_op_str): Call internal_error, not abort.
1057         (cris_print_operand): Tweak "abort" reference to "die" in comment.
1058         (cris_initial_elimination_offset): Call gcc_unreachable, not abort.
1059         (cris_notice_update_cc): Call internal_error, not abort.
1060         (cris_expand_return, cris_expand_prologue, cris_gen_movem_load)
1061         (cris_emit_movem_store, cris_asm_output_symbol_ref)
1062         (cris_output_addr_const_extra): Use CRIS_ASSERT, don't call abort.
1063         (cris_symbol, cris_got_symbol): Use CRIS_ASSERT instead of
1064         ENABLE_CHECKING-guarded abort call.
1065         (cris_split_movdx): Use CRIS_ASSERT instead of abort with test.
1066         Use internal_error at end of test-chain.
1067
1068 2005-05-13  J"orn Rennecke <joern.rennecke@st.com>
1069
1070         PR rtl-optimization/20769:
1071         * bt-load.c (compute_defs_uses_and_gen): Check for the blockage
1072         pattern emitted by expand_nl_goto_receiver.
1073
1074         PR middle-end/20793:
1075         * integrate.c (allocate_initial_values): Update register liveness
1076         information.
1077
1078 2005-05-13  Josh Conner  <jconner@apple.com>
1079
1080         * arm.c (arm_return_in_memory): Add handling for vector return types.
1081
1082 2005-05-13  David Ung  <davidu@mips.com>
1083
1084         * config/mips/mips.h (processor_type): Add new PROCESSOR_4KP
1085         name.
1086         * config/mips/mips.c: Add 4km alias.
1087         * config/mips/mips.md: Add 4kp to cpu attrib and include 4k.md.
1088         * config/mips/4k.md: New file, add 4Kc/4Kp DFA pipeline
1089         description.
1090
1091 2005-05-13  Jan Hubicka  <jh@suse.cz>
1092
1093         * c-decl.c (finish_function): Suppress "control reaches end of
1094         non-void function" when "no return statement in function
1095         returning non-void" is issued.
1096
1097         * tree-inline.c (copy_body_r): Simplify substituted ADDR_EXPRs.
1098         * tree-optimize.c (pass_gimple): Kill.
1099         (init_tree_optimization_passes): Kill pass_gimple.
1100         * tree-cfg.c (build_tree_cfg): Do verify_stmts to check that we are gimple.
1101         * tree-dump.c (dump_files): Rename .generic to .gimple.*
1102
1103 2005-05-13  J"orn Rennecke <joern.rennecke@st.com>
1104
1105         PR rtl-optimization/20756:
1106         * basic-block.h (PROP_DEAD_INSN): Define.
1107         * flow.c (propagate_one_insn): Set during mark_set_regs call
1108         for a dead insn.
1109         (mark_set_1): Emit a clobber when we are about to delete a dead insn
1110         that kills a live register.
1111
1112 2005-05-13  Adrian Straetling  <straetling@de.ibm.com>
1113
1114         * config/s390/s390.md: ("DBL"): New mode attribute.
1115         ("*movmem_long_64", "*movmem_long_31"): Merge to "*movmem_long".
1116         ("*clrmem_long_64", "*clrmem_long_31"): Merge to "*clrmem_long".
1117         ("*cmpmem_long_64", "*cmpmem_long_31"): Merge to "*cmpmem_long".
1118
1119 2005-05-13  Richard Guenther  <rguenth@gcc.gnu.org>
1120
1121         * c-format.c (check_format_arg): Handle string literals of
1122         the form &"string"[offset].
1123
1124         * g++.dg/warn/format4.C: New testcase.
1125
1126 2005-05-13  Kazu Hirata  <kazu@cs.umass.edu>
1127
1128         * config/mips/3000.md, config/mips/4000.md,
1129         config/mips/4100.md, config/mips/4300.md, config/mips/4600.md,
1130         config/mips/5000.md, config/mips/7000.md, config/mips/9000.md,
1131         config/mips/generic.md, config/pdp11/pdp11.md,
1132         config/sh/crt1.asm, config/sh/lib1funcs.asm,
1133         config/sh/sh-modes.def, config/sh/sh-protos.h,
1134         config/sh/shmedia.md, config/sh/ushmedia.h: Update copyright.
1135
1136 2005-05-13  Richard Henderson  <rth@redhat.com>
1137
1138         * function.c (instantiate_virtual_regs_in_insn): Do not simplify
1139         addition to move unless dest is a register.  Do not skip
1140         instantiation in dest on addition simplification.
1141
1142 2005-05-13  Hans-Peter Nilsson  <hp@axis.com>
1143
1144         * config/cris/cris.c (cris_print_operand) <case 'H'; case
1145         CONST_INT>: Use operand_subword and HOST_WIDE_INT_PRINT_DEC for
1146         output; don't have special case for HOST_BITS_PER_WIDE_INT == 32.
1147
1148 2005-05-13  Jan Hubicka  <jh@suse.cz>
1149
1150         * basic-block.h (FOR_ALL_BB_FN): New macro.
1151         (init_flow): Initialize cfg structure.
1152         * function.c (allocate_struct_function): Do not initialize cfg structure.
1153         * tree-cfg.c (init_empty_tree_cfg): Break out from ...
1154         (build_tree_cfg): ... here.
1155         * tree-flow.h (init_empty_tree_cfg): Declare.
1156
1157 2005-05-12  Steven Bosscher <stevenb@suse.de>
1158
1159         Fix PR tree-optimization/21520
1160         * tree-ssa-pre.c (phi_translate): Use fully_constant_expression
1161         to attempt to fold constants.
1162
1163 2005-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
1164
1165         * config/sh/sh.c: Declare the prototype of sh_adjust_unroll_max
1166         only when TARGET_ADJUST_UNROLL_MAX is defined.
1167         (general_movsrc_operand): Use the C style comment.
1168         (ua_offset): Use prototype.
1169
1170 2005-05-12  Zdenek Dvorak  <dvorakz@suse.cz>
1171
1172         * tree-ssa-loop-im.c (struct mem_ref): Add field "next".
1173         (struct hmr_data, hoist_memory_reference, memref_del,
1174         struct fmrv_data): Removed.
1175         (hoist_memory_references, free_mem_ref, free_mem_refs): New functions.
1176         (gather_mem_refs, gather_mem_refs_stmt): Add new references to the
1177         list.
1178         (find_more_ref_vops): Traverse the list of memory references.
1179         (determine_lsm_loop): Work with the list of memory references instead
1180         of traversing the hashtable.
1181
1182 2005-05-12  Steven Bosscher  <stevenb@suse.de>
1183             Stuart Hastings <stuart@apple.com>
1184             Jan Hubicka  <jh@suse.cz>
1185
1186         * except.c  (duplicate_eh_region_1, duplicate_eh_region_2,
1187         duplicate_eh_regions): New functions, based on old
1188         implementation removed with RTL inliner.
1189         (reachable_next_level): Modify behaviour pre-inline.
1190         * except.h (duplicate_eh_regions_map, duplicate_eh_regions):
1191         Declare.
1192         * function.h (struct function): Add after_inlining flag.
1193         * tree-optimize.c (tree_rest_of_compilation): Set it.
1194         * tree-eh.c (add_stmt_to_eh_region_fn): Initialize hashtable
1195         when needed.
1196         * tree-cfg.c (label_to_block_fn): Deal with cases where
1197         label was never insterted into code.
1198
1199 2005-05-12  Zack Weinberg  <zack@codesourcery.com>
1200
1201         * doc/cpp.texi: Document that #sccs is a synonym for #ident.
1202
1203 2005-05-12  Daniel Berlin  <dberlin@dberlin.org>
1204
1205         Fix PR tree-optimization/21532
1206         * tree-ssa-pre.c (create_expression_by_pieces): stmt
1207         needs to go onto the inserted_exprs list.
1208
1209 2005-05-12  Ian Lance Taylor  <ian@airs.com>
1210
1211         * c-common.h (statement_code_p): Don't declare.
1212         (STATEMENT_CODE_P): Don't define.
1213         (INIT_STATEMENT_CODES): Don't define.
1214         * c-common.c (statement_code_p): Don't define.
1215
1216 2005-05-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
1217
1218         * config/sparc/sparc.h: Remove dead code.
1219         * config/sparc/sparc.c (sparc_compute_frame_size): Use
1220         FIRST_PARM_OFFSET for the size of the register window area.
1221         (emit_save_regs): Rename into emit_save_or_restore_regs.
1222         Add 'action' parameter.  Use 4095 as upper bound for the offset.
1223         Pass 'action' to save_or_restore_regs.
1224         (emit_restore_regs): Delete.
1225         (sparc_expand_prologue): Call emit_save_or_restore_regs.
1226         (sparc_expand_epilogue): Likewise.
1227         * config/sparc/sparc.md (mode macro P): Move.
1228         (movdi_insn_sp32_v9, movdi_insn_sp32): Swap.
1229         (mov<V32:mode> expander): Move to the top of the V32 section.
1230         (movdf_insn_sp32_v9_no_fpu, movdf_insn_sp32_v9): Swap.
1231         (movtf_insn_sp64_hq, movtf_insn_sp64): Swap.
1232         (sibcall_epilogue): Move.
1233
1234 2005-05-12  Richard Earnshaw  <richard.earnshaw@arm.com>
1235
1236         PR target/21501
1237         * arm.c (arm_gen_constant): Sign-extend intermediate values when
1238         synthesizing a constant of the difference of two immediates.
1239
1240 2005-05-12  Richard Earnshaw  <richard.earnshaw@arm.com>
1241
1242         * arm/vfp.md (negsf2_vfp): Add alternative using integer registers.
1243         (negdf2_vfp): Likewise.  Convert to define_insn_and_split and split
1244         the alternatives using integer registers into the appropriate
1245         primitives.
1246
1247 2005-05-11 Kenneth Zadeck <zadeck@naturalbridge.com>
1248
1249         * bitmap.c (bitmap_elmt_to_freelist, bitmap_element_allocate,
1250         bitmap_elt_clear_from, bitmap_clear): Changed freelist structure.
1251         * bitmap.h: Fixed comments.
1252
1253 2005-05-11  Richard Henderson  <rth@redhat.com>
1254
1255         PR target/21412
1256         * config/ia64/ia64.c (TARGET_CANNOT_FORCE_CONST_MEM): New.
1257         (ia64_cannot_force_const_mem): New.
1258         (tls_symbolic_operand_type): New.
1259         (ia64_legitimate_constant_p): New.
1260         (ia64_expand_load_address): Return true on success.  Improve
1261         checks for when we should not split.
1262         (ia64_expand_tls_address): New addend operand.  Distribute it
1263         as appropriate to the tls_kind.  Delay referencing gp.
1264         (ia64_expand_move): Split symbolic addend as necessary.  Handle
1265         tls symbols with addends.
1266         * config/ia64/ia64-protos.h: Update.
1267         * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): False for r0,
1268         p0, f0, f1, and r13.
1269         (LEGITIMATE_CONSTANT_P): Move to ia64_legitimate_constant_p.
1270         * config/ia64/ia64.md (UNSPEC_DTPMOD): New.
1271         (symbolic_operand splitter): Pass everything through
1272         ia64_expand_load_address and FAIL or DONE as appropriate.
1273         (load_fptr): Only accept after reload.
1274         (load_fptr_internal1, gprel64_offset, load_gprel64, load_symptr_high,
1275         load_symptr_low, load_ltoff_dtpmod,
1276         (load_dtpmod): New.
1277         (load_dtprel): Only accept tls symbols.
1278         (load_dtprel64, load_dtprel22): Likewise.
1279         (load_tprel, load_tprel64, load_tprel22): Likewise.
1280         (load_dtprel_gd, load_ltoff_dtprel, load_tprel_ie): New.
1281         (add_dtprel): Only accept tls symbols.  Canonicalize PLUS.
1282         (add_dtprel14, add_dtprel22): Likewise.
1283         (add_tprel, add_tprel14, add_tprel22): Likewise.
1284         * config/ia64/predicates.md (small_addr_symbolic_operand): New.
1285         (any_offset_symbol_operand, aligned_offset_symbol_operand): New.
1286         (got_symbolic_operand): Check CONST offsets.
1287         (tls_symbolic_operand, ld_tls_symbolic_operand): New.
1288         (ie_tls_symbolic_operand, le_tls_symbolic_operand): New.
1289         (move_operand): Don't handle tls here.  Check CONST offsets.
1290
1291 2005-05-11  Richard Sandiford  <rsandifo@redhat.com>
1292
1293         * config/mips/7000.md (rm7_impy_si_mult): Just match imul and imadd.
1294         Remove hilo_operand check.
1295         (rm7_impy_si_mul): Just match imul3.  Remove hilo_operand check.
1296         * config/mips/predicates.md (hilo_operand): Delete.
1297
1298 2005-05-11  Richard Sandiford  <rsandifo@redhat.com>
1299
1300         * config/mips/sr71k.md, config/mips/7000.md: Reformat.
1301
1302 2005-05-11  Kazu Hirata  <kazu@cs.umass.edu>
1303
1304         PR tree-optimizer/18472
1305         * tree-if-conv.c (tree_if_convert_stmt,
1306         if_convertible_modify_expr_p): Don't handle GOTO_EXPR.
1307
1308 2005-05-11  Jan Hubicka  <jh@suse.cz>
1309
1310         * Makefile.in (tree-eh.o: Kill gt-tree-eh.h dependency.
1311         (GTFILES): add except.h.
1312         * except.c (eh_status): Add throw_stmt_table.
1313         (set_eh_throw_stmt_table, get_eh_throw_stmt_table): New functions.
1314         * except.h (add_stmt_to_eh_region_fn, remove_stmt_from_eh_region_fn,
1315         lookup_stmt_eh_region_fn): Declare.
1316         (throw_stmt_node): New structure.
1317         (set_eh_throw_stmt_table, get_eh_throw_stmt_table): New.
1318         * gengtype.c (open_base_files): Add except.h to inlines.
1319         * tree-eh.c (throw_stmt_node): Kill.
1320         (record_stmt_eh_region): Update.
1321         (add_stmt_to_eh_region_fn): Break out from ...
1322         (add_stmt_to_eh_region): ... here.
1323         (remove_stmt_from_eh_region_fn): Break out from ...
1324         (remove_stmt_from_eh_region): ... here.
1325         (lookup_stmt_eh_region_fn): Break out from ...
1326         (lookup_stmt_eh_region): ... here.
1327         (honor_protect_cleanup_actions): Use build_resx.
1328         (lower_try_finally_onedest): Likewise.
1329         (lower_try_finally_copy): Likewise.
1330         (lower_try_finally_switch): Likewise.
1331         (lower_eh_constructs): Update eh table construction.
1332         * tree.c (build_resx): New.
1333         * tree.h (build_resx): Declare.
1334
1335 2005-05-11  H.J. Lu  <hongjiu.lu@intel.com>
1336
1337         * libgcov.c (gcov_exit): Set prefix_length to 0 if no relocation
1338         is needed.
1339
1340 2005-05-11  Kazu Hirata  <kazu@cs.umass.edu>
1341
1342         * fold-const.c, libgcov.c: Fix comment typos.
1343
1344         * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Remove
1345         redundant code.
1346
1347 2005-05-11  Daniel Jacobowitz  <dan@codesourcery.com>
1348
1349         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
1350         * config/arm/arm.h (SUBTARGET_FRAME_POINTER_REQUIRED): Provide
1351         default definition.
1352         (FRAME_POINTER_REQUIRED): Use SUBTARGET_FRAME_POINTER_REQUIRED.
1353
1354 2005-05-11  Nathan Sidwell  <nathan@codesourcery.com>
1355
1356         PR bootstrap/21481
1357         * crtstuff.c: Include auto-host.h again, for now.
1358
1359 2005-05-11  Richard Sandiford  <rsandifo@redhat.com>
1360
1361         * config/mips/24k.md: Remove trailing whitespace.
1362
1363 2005-05-11  David Ung  <davidu@mips.com>
1364
1365         * config/mips/mips.md (type): Add imul3.
1366         (length, hazard, may_clobber_hilo): Check for imul3.
1367         (mulsi3_mult3, muldi3_mult3, *muls, <su>mulsi3_highpart_mulhi_internal)
1368         (*<su>mulsi3_highpart_neg_mulhi_internal): Set attr to imul3.
1369         * config/mips/24k.md (r24k_int_mul3): Enable this reservation
1370         for a 3 operand mul and its bypasses.
1371         * config/mips/3000.md (r3k_imul): Add imul3 to reservations.
1372         * config/mips/4000.md (r4k_imul): Likewise.
1373         * config/mips/4100.md (r4100_imul_si, r4100_imul_di):  Likewise.
1374         * config/mips/4130.md (vr4130_class, vr4130_mulsi)
1375         (vr4130_muldi): Likewise.
1376         * config/mips/4300.md (r4300_imul_si, r4300_imul_di): Likewise.
1377         * config/mips/4600.md (r4600_imul, r4650_imul): Likewise.
1378         * config/mips/5000.md (r5k_imul_si, r5k_imul_di): Likewise.
1379         * config/mips/5400.md (ir_vr54_imul_si, ir_vr54_imul_di)
1380         (ir_vr54_imadd_si): Likewise.
1381         * config/mips/5500.md (ir_vr55_imul_si, ir_vr55_imul_di):  Likewise.
1382         * config/mips/7000.md (rm7_impy_si_mult, rm7_impy_si_mul)
1383         (rm7_impy_di): Likewise.
1384         * config/mips/9000.md (rm9k_mulsi, rm9k_muldi):  Likewise.
1385         * config/mips/generic.md (generic_imul): Likewise.
1386         * config/mips/sb1.md (ir_sb1_mulsi, ir_sb1_muldi): Likewise.
1387         * config/mips/sr71k.md (ir_sr70_imul_si, ir_sr70_imul_di):  Likewise.
1388
1389 2005-05-11  J"orn Rennecke <joern.rennecke@st.com>
1390
1391         PR middle-end/20371:
1392         * tree.h (record_layout_info_s): New member prev_packed.
1393         * stor-layout.c (update_alignment_for_field): Fix comment about
1394         KNOWN_ALIGN.  For MS bitfields, if we start a new run, make sure
1395         we start it properly aligned.
1396         (place_field): At the beginning of a record, pass 0 as KNOWN_ALIGN
1397         to update_alignment_for_field, and recompute it afterwards using
1398         the alignment of the record.
1399         When a packed bitfield precedes an MS bitfield, don't add padding
1400         at the end of the packed bitfield on behalf of the base type of
1401         the packed bit field.
1402         Don't adjust rli->bitpos at the end
1403         of an MS bitfield run if we already adjusted bitpos/offset for an
1404         alignment as large or larger than the bitfield type size.
1405         Take possible record alignment > BIGGEST_ALIGNMENT into account
1406         when calculating actual_align.
1407         Only put packed buit fields into rli->prev_field if they end up
1408         suitably aligned.
1409         Also set rli->remaining_in_alignment when we re-set rli->prev_field.
1410         Update rli->remaining_in_alignment when we have already started a
1411         run of bit fields and we process a packed bit field.
1412
1413 2005-05-11  Sebastian Pop  <pop@cri.ensmp.fr>
1414
1415         * tree-data-ref.c (find_data_references_in_loop): Give up when
1416         the body of the loop contains a CALL_EXPR or an ASM_EXPR: they
1417         may embed arbitrary side effects.
1418         Remove the assumption that GIMPLE form contains a single array
1419         access per statement.
1420         When the statement contains virtual operands, fail if it is not
1421         a MODIFY_EXPR or a CALL_EXPR.
1422         Return after the dont know node is inserted.
1423
1424 2005-05-11  Richard Earnshaw  <richard.earnshaw@arm.com>
1425
1426         * arm.md (negsf2, negdf2): Permit these expands when compiling for VFP.
1427
1428 2005-05-11  Richard Guenther  <rguenth@gcc.gnu.org>
1429
1430         PR middle-end/19807
1431         PR tree-optimization/19639
1432         * fold-const.c (try_move_mult_to_index): Handle INTEGER_CST
1433         and generic summands for char* as s * delta, too, folding &a[i]
1434         CODE x to &a[i CODE x/s].  Use tree_int_cst_equal
1435         for comparison of steps.  Convert types for index addition.
1436         (fold_binary): Adjust the callers to always dispatch to
1437         try_move_mult_to_index.
1438         * tree-ssa-propagate.c (set_rhs): Avoid setting rhs to
1439         expr with non-gimple ARRAY_REF offset.
1440
1441 2005-05-11  Richard Guenther  <rguenth@gcc.gnu.org>
1442
1443         * fold-const.c (fold_indirect_ref_1): Avoid removing
1444         NOP_EXPRs with type qualifiers like const.
1445
1446 2005-05-11  Richard Henderson  <rth@redhat.com>
1447
1448         PR c/21502
1449         * c-decl.c (finish_decl): Propagate the completed array type of
1450         a global variable into the binding.
1451
1452 2005-05-10  Matt Kraai  <kraai@ftbfs.org>
1453
1454         * Makefile.in (gtype-desc.o, build/genautomata.o)
1455         (build/varray.o): Depend on $(VARRAY_H).
1456
1457 2005-05-10  Diego Novillo  <dnovillo@redhat.com>
1458
1459         * tree-optimize.c (init_tree_optimization_passes): Re-organize
1460         optimization passes to do an initial batch of scalar cleanups.
1461
1462 2005-05-10  Ian Lance Taylor  <ian@airs.com>
1463
1464         * read-rtl.c (struct macro_traverse_data): Define.
1465         (map_attr_string): New static function, broken out of
1466         apply_macro_to_string.
1467         (mode_attr_index, apply_mode_maps): New static functions.
1468         (apply_macro_to_string): Call map_attr_string.
1469         (apply_macro_to_rtx): Add mode_maps and infile parameters.  Change
1470         all callers.
1471         (apply_macro_traverse): Expect data to point to a struct
1472         macro_traverse_data.
1473         (read_rtx): Add mode_maps local variable.  Use mode_traverse_data
1474         to pass data through htab_traverse.
1475         (read_rtx_1): Add mode_maps parameter.  Change all callers.
1476         Handle mode names which are attribute strings.
1477         * doc/md.texi (Substitutions): Rename from String Substitutions.
1478         Change references.  Document using attributes as modes.
1479
1480 2005-05-10  Zdenek Dvorak  <dvorakz@suse.cz>
1481
1482         * tree-cfg.c (tree_duplicate_sese_region): Update profile.
1483         * tree-optimize.c (init_tree_optimization_passes) Swap
1484         pass_ch and pass_profile.
1485         * tree-ssa-loop-ch.c (copy_loop_headers): Do not update profile
1486         here.  Remove rewrite_into_loop_closed_ssa call.
1487
1488 2005-05-10  Adrian Straetling  <straetling@de.ibm.com>
1489
1490         * config/s390/s390.c: (s390_const_double_ok_for_constraint_p): New
1491         function.
1492         (legitimate_reload_constant_p): Add check for const double zero.
1493         * config/s390/s390.md: Add comment for constraint letter 'G'.
1494         ("*movdf_64", "*movdf_31", "movsf"): Add constraint and proper
1495         attributes for new case.
1496         * config/s390/s390.h: (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Define it as
1497         s390_const_double_ok_for_constraint_p.
1498         * config/s390/s390-protos.h (s390_const_double_ok_for_constraint_p):
1499         Add prototype.
1500
1501 2005-05-10  Kazu Hirata  <kazu@cs.umass.edu>
1502
1503         PR tree-optimization/21170
1504         * tree-ssa-dom.c, tree-ssa-threadupdate.c: Replace
1505         rewrite_ssa_into_ssa in comments with update_ssa.
1506
1507 2005-05-10  Zdenek Dvorak  <dvorakz@suse.cz>
1508
1509         * tree-ssa-loop-im.c: Include hashtab.h.
1510         (struct mem_ref_loc): New.
1511         (struct mem_ref): Describe the set of references with the same
1512         shape.
1513         (max_stmt_uid, get_stmt_uid, record_mem_ref, free_mem_refs,
1514         maybe_queue_var, fem_single_reachable_address,
1515         for_each_memref, single_reachable_address,
1516         is_call_clobbered_ref, determine_lsm_reg): Removed.
1517         (record_mem_ref_loc, free_mem_ref_locs, determine_lsm_ref,
1518         hoist_memory_reference, memref_hash, memref_eq, memref_del,
1519         gather_mem_refs_stmt, gather_mem_refs, find_more_ref_vops):
1520         New functions.
1521         (rewrite_mem_refs, schedule_sm): Use mem_ref_loc list.
1522         (determine_lsm_loop): Rewritten.
1523         (determine_lsm): Do not set stmt uids.
1524
1525 2005-05-10  Adrian Straetling  <straetling@de.ibm.com>
1526
1527         * config/s390/s390.md: Add comment lines for 'f' and 't' constraint
1528         letters.
1529
1530 2005-05-10  Adrian Straetling  <straetling@de.ibm.com>
1531
1532         * config/s390/s390.md: ("anddi3","andsi3","andhi3","andqi3"): Merge.
1533         ("iordi3", "iorsi3", "iorhi3", "iorqi3"): Merge.
1534         ("xordi3", "xorsi3", "xorhi3", "xorqi3"): Merge.
1535
1536 2005-05-10  Jeff Law  <law@redhat.com>
1537
1538         * tree-ssa-dom.c (dom_opt_finalize_block): Do not call
1539         thread_across_edge for any abnormal edges.
1540
1541 2005-05-10  Richard Henderson  <rth@redhat.com>
1542
1543         * config/ia64/ia64.c (ia64_expand_atomic_op): New.
1544         * config/ia64/ia64-protos.h: Declare it.
1545         * config/ia64/sync.md (I124MODE, FETCHOP, fetchop_name): New.
1546         (sync_add<I48MODE>, sync_old_add<I48MODE>): Remove.
1547         (sync_<FETCHOP><IMODE>, sync_nand<IMODE>): New.
1548         (sync_old_<FETCHOP><IMODE>, sync_old_nand<IMODE>): New.
1549         (sync_new_<FETCHOP><IMODE>, sync_new_nand<IMODE>): New.
1550         (cmpxchg_rel_<I124MODE>): Split from cmpxchg_acq_<IMODE>.  Zero
1551         extend result; use release semantics.
1552         (cmpxchg_rel_di): Rename from cmpxchg_acq_<IMODE>; use release.
1553         (sync_val_compare_and_swap_<IMODE>): Update to match.
1554
1555 2005-05-10  Richard Henderson  <rth@redhat.com>
1556
1557         * optabs.c (expand_compare_and_swap_loop): Don't clobber old value
1558         before comparing it for success.
1559
1560 2005-05-10  Richard Henderson  <rth@redhat.com>
1561
1562         * config/ia64/sync.md (sync_add<I48MODE>): Fix arguments for
1563         no return value pattern.
1564
1565 2005-05-10  Grigory Zagorodnev  <grigory.zagorodnev@intel.com>
1566             H.J. Lu  <hongjiu.lu@intel.com>
1567
1568         * libgcov.c (create_file_directory): New function. Create
1569         directory for the given file name.
1570         (gcov_max_filename): New static var. Keeps size of the longest
1571         file name.
1572         (gcov_exit): Always try to create directory for output
1573         file. Relocate each filename basing on environment vars.
1574         (__gcov_init): Remember the longest file name.
1575         * tsystem.h: include filenames.h to get IS_DIR_SEPARATOR
1576         * doc/gcov.texi (Cross-profiling): New node documenting
1577         cross-profiling management.
1578         * doc/invoke.texi (-fprofile-arcs): Add xref to cross-profiling.
1579
1580 2005-05-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
1581
1582         * config/sparc/sparc.c (mem_min_alignment): Do not rely
1583         on MEM_ALIGN if TARGET_UNALIGNED_DOUBLES.
1584
1585 2005-05-10  Bob Wilson  <bob.wilson@acm.org>
1586
1587         * config/xtensa/lib1funcs.asm (__udivsi3, __divsi3): Rearrange special
1588         case code to avoid one move instruction.
1589         (__umodsi3, __modsi3): Merge duplicated code sequences.
1590
1591 2005-05-10  Kazu Hirata  <kazu@cs.umass.edu>
1592
1593         * config/mips/24k.md, config/sh/divtab.c, config/sh/sh.c,
1594         config/sh/sh.md, config/sh/superh.h: Fix comment typos.
1595         * doc/invoke.texi: Fix typos.
1596
1597         * tree-data-ref.c (analyze_array_indexes, analyze_array,
1598         init_data_ref, access_functions_are_affine_or_constant_p,
1599         free_data_refs): Use VEC instead of VARRAY.
1600         * tree-data-ref.h (data_reference): Change the type of
1601         access_fns to VEC(tree,gc)*.
1602         (DR_ACCESS_FN, DR_NUM_DIMENSIONS): Use VEC instead of VARRAY.
1603
1604 2005-05-10  Gabor Loki <loki@gcc.gnu.org>
1605
1606         PR c/17913
1607         * c-typeck.c (build_conditional_expr): Remove reducing cond_expr.
1608         * fold-const.c (fold): Expand the condition of reducing cond_expr.
1609         (contains_label_1, contains_label_p): New functions for checking
1610         labels in a sub-tree.
1611
1612 2005-05-10  Joseph S. Myers  <joseph@codesourcery.com>
1613
1614         PR c/21342
1615         * c-decl.c (pushdecl): When there is a declaration in the current
1616         scope and the declarations are external linkage, check for
1617         compatibility with the type in the external scope and update the
1618         type in the external scope with the composite type information.
1619         Do not form a composite type of the new type and the visible type
1620         if they are incompatible.
1621
1622 2005-05-10  Nathan Sidwell  <nathan@codesourcery.com>
1623
1624         * crtstuff.c: Revert part of 2005-05-08 Change.
1625         (IN_LIBGCC2): Define.
1626
1627 2005-05-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
1628
1629         * config/sparc/sparc.c (fp_sethi_p): Test !SPARC_SIMM13_P and
1630         remove redundant test.
1631         (fp_mov_p): Accept 0.
1632         (fp_high_losum_p): Remove redundant test.
1633         * config/sparc/predicates.md (const_high_operand): Explicitly test
1634         (not small_int_operand).
1635         (fp_const_high_losum_operand): New.
1636         * config/sparc/sparc.md (movsi_insn): Do not emit 'clr'.  Reorder.
1637         (movdi_insn_sp32_v9): Use canonical predicates.
1638         (movdi_insn_sp32): Test !TARGET_V9 instead of !TARGET_ARCH64.
1639         (movdi_insn_sp64_novis): Delete.
1640         (movdi_insn_sp64_vis): Rename into movdi_insn_sp64.
1641         (movsf_insn_novis): Delete.
1642         (movsf_insn_vis): Rename into movsf_insn.
1643         (movsf_no_f_insn): Rename into movsf_insn_no_fpu.
1644         (movsf_lo_sum): Use fp_const_high_losum_operand.
1645         (movsf_high): Likewise.
1646         (movsf_high_losum splitter): Likewise.
1647         (mov<V32:mode> expander): Use register_or_zero_operand.
1648         (mov<V64:mode> expander): Likewise.
1649         (movdf_insn_sp32): Use register_or_zero_operand.
1650         (movdf_no_e_insn_sp32): Use register_or_zero_operand.
1651         Rename into movdf_insn_sp32_no_fpu.
1652         (movdf_no_e_insn_v9_sp32): Use register_or_zero_operand.
1653         Rename into movdf_insn_sp32_v9_no_fpu.
1654         (movdf_insn_v9only_novis): Delete.
1655         (movdf_insn_v9only_vis): Rename into movdf_insn_sp32_v9.
1656         (movdf_insn_sp64_novis): Delete.
1657         (movdf_insn_sp64_vis): Rename into movdf_insn_sp64.
1658         (movdf_no_e_insn_sp64): Use register_or_zero_operand.
1659         Rename into movdf_insn_sp64_no_fpu.
1660         (movtf expander): Use register_or_zero_operand.
1661         (movtf_insn_sp32): Delete.
1662         (movtf_insn_vis_sp32): Use register_or_zero_operand.
1663         Rename into movtf_insn_sp32.
1664         (movtf_no_e_insn_sp32): Use register_or_zero_operand.
1665         Rename into movtf_insn_sp32_no_fpu.
1666         (movtf_insn_hq_sp64): Delete.
1667         (movtf_insn_hq_vis_sp64): Use register_or_zero_operand.
1668         Rename into movtf_insn_sp64_hq.
1669         (movtf_insn_sp64): Delete.
1670         (movtf_insn_vis_sp64): Use register_or_zero_operand.
1671         Rename into movtf_insn_sp64.
1672         (movtf_no_e_insn_sp64): Use register_or_zero_operand.
1673         Rename into movtf_insn_sp64_no_fpu.
1674
1675 2005-05-10  Nathan Sidwell  <nathan@codesourcery.com>
1676
1677         * config/stormy16/stormy16.c (xstormy16_emit_cbranch): Use
1678         gcc_assert and gcc_unreachable as appropriate.
1679         (xstormy16_split_cbranch, xstormy16_output_cbranch_hi,
1680         xstormy16_output_cbranch_si, xstormy16_split_move,
1681         xstormy16_initial_elimination_offset,
1682         xstormy16_encode_section_info, xstormy16_print_operand_address,
1683         xstormy16_expand_call, xstormy16_expand_arith,
1684         xstormy16_output_shift, xstormy16_init_builtins): Likewise.
1685
1686 2005-05-10  Kazu Hirata  <kazu@cs.umass.edu>
1687
1688         * tree-outof-ssa.c (_elim_graph): Change the type of nodes and
1689         const_copies to VEC(tree,heap)*.
1690         (new_elim_graph, delete_elim_graph, elim_graph_size,
1691         elim_graph_add_node, eliminate_build, eliminate_phi): Use VEC
1692         instead of VARRAY.
1693
1694 2005-05-10  Joseph S. Myers  <joseph@codesourcery.com>
1695
1696         PR other/21052
1697         * doc/extend.texi (Type Attributes): Correct example syntax.
1698
1699 2005-05-09  Joseph S. Myers  <joseph@codesourcery.com>
1700
1701         PR c/21160
1702         * doc/invoke.texi (-Wuninitialized): Update documentation.
1703
1704 2005-05-09  Richard Earnshaw  <richard.earnshaw@arm.com>
1705
1706         * arm.c (const_ok_for_arm): Use a faster algorithm.
1707
1708 2005-05-09  David Edelsohn  <edelsohn@gnu.org>
1709
1710         PR target/21477
1711         * config/rs6000/rs6000.md (add_op2): New.
1712         (add<mode>3): Use it.
1713
1714 2005-05-09  Richard Earnshaw  <richard.earnshaw@arm.com>
1715
1716         * arm.c (arm_gen_constant): Add new heuristic for generating
1717         constant integers that can be expressed as the difference of two
1718         valid immediates.
1719
1720 2005-05-09  Roger Sayle  <roger@eyesopen.com>
1721
1722         * c-tree.h (parser_build_unary_op): New prototype.
1723         * c-typeck.c (parser_build_unary_op): New function to construct
1724         a unary operation in the C parser.
1725         * c-parser.c (c_parser_unary_expression):  Use the new function
1726         parser_build_unary_op when appropriate.
1727
1728 2005-05-09  Mark Mitchell  <mark@codesourcery.com>
1729
1730         PR 18655
1731         * dwarf2out.c (output_call_frame_info): Use DWARF2_FRAME_REG_OUT
1732         before outputting DWARF_FRAME_RETURN_COLUMN.
1733
1734 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1735
1736         * config/s390/s390.c: (s390_branch_condition_mask,
1737         s390_branch_condition_mnemonic, s390_extra_constraint_str,
1738         s390_const_ok_for_constraint_p, s390_expand_plus_operand,
1739         legitimize_pic_address, s390_emit_tls_call_insn,
1740         legitimize_tls_address, legitimize_tls_address,
1741         s390_expand_addcc, print_shift_count_operand, print_operand,
1742         addr_generation_dependency_p, annotate_constant_pool_refs,
1743         s390_split_branches, find_constant_pool_ref,
1744         replace_constant_pool_ref, s390_add_constant, s390_find_constant,
1745         s390_find_execute, s390_mainpool_start, s390_chunkify_start,
1746         s390_output_pool_entry, s390_function_value,
1747         s390_call_saved_register_used, s390_emit_call): Replace
1748         conditional aborts by gcc_assert and unconditional by gcc_unreachable.
1749         (s390_select_ccmode, s390_match_ccmode_set, s390_extract_part,
1750         s390_cannot_force_const_mem, s390_output_dwarf_dtprel,
1751         get_some_local_dynamic_name, s390_function_arg_size,
1752         s390_function_arg_advance, s390_function_arg,
1753         s390_expand_builtin, s390_gen_rtx_const_DI): Replace abort in
1754         default case by gcc_unreachable.
1755         * config/s390/s390.md: ("*cjump_31", "*icjump_31", "*jump31"): Replace
1756         conditional abort by gcc_assert.
1757         ("doloop_si31"): Replace abort in last else by gcc_unreachable.
1758         ("main_pool", "pool"): Replace unconditional abort by gcc_unreachable.
1759
1760 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1761
1762         * config/s390/s390.c: (s390_decompose_address,
1763         tls_symbolic_operand, legitimate_pic_operand_p,
1764         legitimate_constant_p, legitimate_reload_constant_p,
1765         s390_expand_plus_operand, legitimate_address_p,
1766         legitimate_la_operand_p, ): Remove 'register' from signature.
1767         (symbolic_reference_mentioned_p,
1768         tls_symbolic_reference_mentioned_p): Remove 'register' from local
1769         variable declarations.
1770         (legitimize_address): Remove 'register' from
1771         signature and local variable declarations.
1772
1773 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1774
1775         * config/s390/s390-protos.h: (s390_match_ccmode,
1776         s390_match_ccmode_set, reg_used_in_mem_p,
1777         symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
1778         legitimate_la_operand_p, preferred_la_operand_p,
1779         s390_short_displacement, addr_generation_dependency_p,
1780         legitimate_reload_constant_p, legitimate_address_p): Change return type
1781         into 'bool'.
1782         (s390_tm_ccmode): Change type of parameter "mixed" into 'bool'.
1783         * config/s390/s390.c: (s390_match_ccmode,
1784         symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
1785         legitimate_reload_constant_p): Change return type into 'bool'.
1786         (preferred_la_operand_p,legitimate_la_operand_p, legitimate_address_p):
1787         Likewise.  Additionally adapted comment.
1788         (s390_extra_constraint_p): Change Comment to reflect 'int' return type.
1789         (s390_tm_ccmode): Change type of parameter "mixed" into 'bool'.
1790         (s390_decompose_address): Change the type of the internal flags
1791         "pointer", "base_ptr", "indx_ptr", and the return value into 'bool'.
1792         (struct s390_address): Change type of "pointer" into bool.
1793         * config/s390/s390.md: ("*tmdi_reg", "*tmsi_reg", "tm<mode>_full"):
1794         Adapt calls for 's390_tm_ccmode' to the new signature.
1795
1796 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1797
1798         * config/s390/s390.c: (s390_match_ccmode_set,
1799         s390_branch_condition_mnemonic, s390_short_displacement,
1800         s390_decompose_address, get_thread_pointer, legitimize_tls_address,
1801         print_shift_count_operand, get_some_local_dynamic_name,
1802         get_some_local_dynamic_name_1, reg_used_in_mem_p,
1803         addr_generation_dependency_p, s390_split_branches,
1804         annotate_constant_pool_refs, find_constant_pool_ref,
1805         replace_constant_pool_ref, find_ltrel_base, replace_ltrel_base,
1806         s390_optimize_prologue, find_unused_clobbered_reg, s390_frame_area,
1807         s390_register_info, s390_frame_info, s390_init_frame_layout,
1808         s390_update_frame_layout, save_fpr, restore_fpr, save_gprs,
1809         restore_gprs, s390_function_arg_size, s390_function_arg_float,
1810         s390_init_machine_status, s390_assemble_integer, s390_handle_option,
1811         s390_encode_section_info, s390_cannot_force_const_mem,
1812         s390_delegitimize_address, s390_return_in_memory, s390_init_builtins,
1813         s390_expand_builtin, s390_output_mi_thunk, s390_safe_attr_type,
1814         s390_adjust_priority, s390_issue_rate,
1815         s390_first_cycle_multipass_dfa_lookahead, s390_cannot_copy_insn_p,
1816         s390_rtx_costs, s390_address_cost, s390_reorg, s390_valid_pointer_mode,
1817         s390_build_builtin_va_list, s390_gimplify_va_arg,
1818         s390_function_ok_for_sibcall, s390_call_saved_register_used,
1819         s390_pass_by_reference, s390_fixed_condition_code_regs,
1820         s390_cc_modes_compatible s390_mainpool_start,, s390_mainpool_finish,
1821         s390_mainpool_cancel, s390_chunkify_start, s390_chunkify_finish,
1822         s390_chunkify_cancel, s390_start_pool, s390_end_pool,
1823         s390_add_pool_insn, s390_find_pool, s390_add_constant,
1824         s390_find_constant, s390_add_execute, s390_find_execute,
1825         s390_execute_label, s390_execute_target, s390_dump_pool,
1826         s390_dump_execute, s390_alloc_pool, s390_free_pool): Remove prototypes.
1827         Move target macro definitions to the end of the file.  Move several
1828         functions within the file to assure correct compiling.
1829
1830 2005-05-09  Steven Bosscher  <stevenb@suse.de>
1831
1832         * calls.c (purge_reg_equiv_notes): Remove, fold into...
1833         (fixup_tail_calls): ...here.  Only look at insns between the
1834         start of the function and the FUNCTION_BEG insn note.
1835
1836         * gcse.c (one_cprop_pass): Fix typos in dumps.
1837
1838         * tree-ssa-operands.h (FOR_EACH_PHI_ARG): Fix typos.
1839
1840 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1841
1842         * config/s390/s390.h: Move xxx_REGNUM definitions to s390.md.
1843         * config/s390/s390.md: ("SIBCALL_REGNUM", "BASE_REGNUM",
1844         "RETURN_REGNUM", "CC_REGNUM", "TP_REGNUM"): New constants.
1845         Replace every occurrence of '(reg:<MODE> 33)' by '(reg:<MODE>
1846         CC_REGNUM)'.
1847         ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): Replace
1848         '(reg:<MODE> 36)' by '(reg:<MODE> TP_REGNUM)'.
1849         ("*sibcall_br", "*sibcall_value_br"): Replace '(reg:DI 1)' by '(reg:DI
1850         REG_SC)'.
1851
1852 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1853
1854         * config/s390/s390.md: ("gf") New mode attribute.
1855         ("fixuns_truncdfdi2", "fixuns_truncdfsi2", "fixuns_truncsfdi2",
1856         "fixuns_truncsfsi2"): Merge.
1857         ("fix_truncdfdi2", "fix_truncsfdi2"): Merge.
1858         ("fix_truncdfdi2_ieee", "fix_truncdfsi2_ieee", "fix_truncsfdi2_ieee",
1859         "fix_truncsfsi2_ieee"): Merge.
1860
1861 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1862
1863         * config/s390/s390.md: ("FPR") New mode macro.
1864         ("de", "dee"): New mode attributes.
1865         ("cmpdf", "cmpsf"): Merge.
1866         ("*cmpdf_ccs_0", "*cmpsf_ccs_0"): Merge.
1867         ("*cmpdf_ccs_0_ibm", "*cmpdf_ccs_0_ibm"): Merge.
1868         ("*cmpdf_ccs", "*cmpsf_ccs"): Merge.
1869         ("*cmpdf_ccs_ibm", "*cmpsf_ccs_ibm"): Merge.
1870         ("floatdidf2", "floatdisf2"): Merge.
1871         ("adddf3", "addsf3"): Merge.
1872         ("*adddf3", "*addsf3"): Merge.
1873         ("*adddf3_cc", "*addsf3_cc"): Merge.
1874         ("*adddf3_cconly", "*addsf3_cconly"): Merge.
1875         ("*adddf3_ibm", "*addsf3_ibm"): Merge.
1876         ("subdf3", "subsf3"): Merge.
1877         ("*subdf3", "*subsf3"): Merge.
1878         ("*subdf3_cc", "*subsf3_cc"): Merge.
1879         ("*subdf3_cconly", "*subsf3_cconly"): Merge.
1880         ("*subdf3_ibm", "*subsf3_ibm"): Merge.
1881         ("muldf3", "mulsf3"): Merge.
1882         ("*muldf3", "*mulsf3" "): Merge.
1883         ("*muldf3_ibm", "*mulsf3_ibm"): Merge.
1884         ("*fmadddf", "*fmaddsf"): Merge.
1885         ("*fmsubdf", "*fmsubsf"): Merge.
1886         ("divdf3", "divsf3"): Merge.
1887         ("*divdf3", "*divsf3"): Merge.
1888         ("*divdf3_ibm", "*divsf3_ibm"): Merge.
1889         ("negdf2", "negsf2"): Merge.
1890         ("*negdf2_cc", "*negsf2_cc"): Merge.
1891         ("*negdf2_cconly", "*negsf2_cconly"): Merge.
1892         ("*negdf2", "*negsf2"): Merge.
1893         ("*negdf2_ibm", "*negsf2_ibm"): Merge.
1894         ("absdf2", "abssf2"): Merge.
1895         ("*absdf2_cc", "*abssf2_cc"): Merge.
1896         ("*absdf2_cconly", "*abssf2_cconly"): Merge.
1897         ("*absdf2", "*abssf2"): Merge.
1898         ("*absdf2_ibm", "*abssf2_ibm"): Merge.
1899         ("*negabsdf2_cc", "*negabssf2_cc"): Merge.
1900         ("*negabsdf2_cconly", "*negabssf2_cconly"): Merge.
1901         ("*negabsdf2", "*negabssf2"): Merge.
1902         ("sqrtdf2", "sqrtsf2"): Merge.
1903
1904 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1905
1906         * config/s390/s390.c: (s390_adjust_priority): Adapt to changed
1907         attribute names.
1908         * config/s390/2084.md: ("x_fsimpd", "x_fsimps", "x_fdivd", "x_fdivs",
1909         "x_floadd", "x_floads", "x_fstored", "x_fstores"): Rename to
1910         ("x_fsimpdf", "x_fsimpsf", "x_fdivdf", "x_fdivsf", "x_floaddf",
1911         "x_floadsf", "x_fstoredf", "x_fstoresf") and replace 'type'
1912         attribute names.
1913         * config/s390/s390.md: ("type"): Rename "fsimpd, fsimps, floadd, floads,
1914         fstored, fstores, fmuld, fmuls, fdivd, fdivs, fsqrtd, fsqrts" to
1915         "fsimpdf, fsimpsf, floaddf, floadsf, fstoredf, fstoresf, fmuldf,
1916         fmulsf, fdivdf, fdivsf, fsqrtdf, fsqrtsf".
1917         ("*cmpdf_ccs_0", "*cmpdf_css_0_ibm", "*cmpdf_ccs",
1918         "*cmpdf_ccs_ibm", "*cmpsf_ccs_0", "*cmpsf_css_0_ibm",
1919         "*cmpsf_ccs", "*cmpsf_ccs_ibm", "*movdi_64", "*movdi_31",
1920         "*movsi_zarch", "*movsi_esa", "*movdf_64", "*movdf_31", "movsf",
1921         "*muldf3", "*muldf3_ibm", "*fmadddf", "*fmsubdf", "*mulsf3",
1922         "mulsf3_ibm", "*fmaddsf", "fmsubsf", "*divdf3", "*divdf3_ibm",
1923         "*negdf2_cc", "*negdf2_cconly", "*negdf2", "*negdf2_ibm",
1924         "*negsf2_cc", "*negsf2_cconly", "*negsf2", "*absdf2_cc",
1925         "*absdf2_cconly", "*absdf2", "*absdf2_ibm", "*abssf2_cc",
1926         "*abssf2_cconly", "*abssf2", "*abssf2_ibm", "*negabsdf2_cc",
1927         "*negabsdf2_cconly", "*negabsdf2", "*negabssf2_cc",
1928         "*negabssf2_cconly", "*negabssf2", "sqrtdf2", "sqrtsf2"): Rename
1929         'type' value.
1930         ("*divsf3"): Additionally rename second pattern to
1931         "*divsf3_ibm".
1932         ("truncdfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm",
1933         "*adddf3", "*adddf3_cc", "*adddf3_cconly", "*adddf3_ibm",
1934         "*addsf3", "*addsf3_cc", "*addsf3_cconly", "*subdf3",
1935         "subdf3_cc", "*subdf3_cconly", "*subdf3_ibm", "*subsf3",
1936         "subsf3_cc", "*subsf3_cconly", "*subsf3_ibm"): Merge identical
1937         'type values' and rename 'type' value.
1938         ("*addsf3"): Additionally rename second pattern to
1939         "*addsf3_ibm".
1940
1941 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1942
1943         * config/s390/s390.md: ("SHIFT"): New mode macro.
1944         ("lr", "shift"): New mode attributes.
1945         ("ashldi3", "lshrdi3"): Merge.
1946         ("*ashldi3_31", "*lshrdi3"_31): Merge.
1947         ("*ashldi3_64", "*lshrdi3"_64): Merge.
1948         ("ashlsi3", "lshrsi3"): Merge.
1949
1950 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1951
1952         * config/s390/s390.md: ("DSI", "SCOND"): New mode
1953         macros.
1954         ("E", "g"): New mode attributes.
1955         ("*adddi3_alc_cc", "*addsi3_alc_cc"): Merge.
1956         ("*adddi3_alc", "*addsi3_alc"): Merge.
1957         ("*subdi3_slb_cc", "*subsi3_slb_cc"): Merge.
1958         ("*subdi3_slb", "*subsi3_slb"): Merge.
1959         ("adddicc", "addsicc"): Merge.
1960         ("*sconddi", "*scondsi"): Merge.
1961         ("*sconddi_neg", "*scondsi_neg"): Merge.
1962         ("sltu", "sgtu", "sleu", "sgeu"): Merge.
1963         ("negdi2", "negsi2"): Extract expander pattern from
1964         "negsi2" and merge with "negdi2".
1965         ("*negdi2"): Merge with instruction pattern of "negsi2".
1966         ("*negdi2_cc", "*negsi2_cc"): Merge.
1967         ("*negdi2_cconly", "*negsi2_cconly"): Merge.
1968         ("rotldi3", "rotlsi3"): Merge.
1969
1970 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1971
1972         * config/s390/s390.md: ("hc"): New mode attribute.
1973         ("extendhidi2", "extendqidi2"): Merge.
1974         ("*extendhidi2", "*extendqidi2"): Merge.
1975         ("extendhisi2", "extendqisi2"): Merge.
1976         ("zero_extendhidi2", "zero_extendqidi2"): Merge.
1977         ("*zero_extendhidi2", "*zero_extendqidi2"): Merge.
1978         Merged 2 define_split.
1979         ("*zero_extendhisi2", "*zero_extendqisi2"): Merge.
1980         ("*zero_extendhisi2_64", "*zero_extendqisi2_64"): Merge.
1981
1982 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1983
1984         * config/s390/s390.md: ("COMPARE"): New mode macro.
1985         ("beq", "bne", "bgt", "bgtu", "blt", "bltu", "bge", "bgeu",
1986         "ble", "bleu", "bunordered", "bordered", "buneq", "bunlt",
1987         "bungt", "bunle", "bunge", "bltgt"): Merge.
1988
1989 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1990
1991         * config/s390/s390.md: ("INT"): New mode macro.
1992         ("one_cmpldi2", "one_cmplsi2", "one_cmplhi2", "one_cmplqi2"):
1993         Merge.
1994
1995 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1996
1997         * config/s390/s390.md: ("GPR", "P"): New mode macros.
1998         ("cmpdi", "cmpsi"): Merge.
1999         ("strlendi", "strlensi"): Merge.
2000         ("*strlendi", "*strlensi"): Merge.
2001         ("movmemdi", "movmemsi"): Merge.
2002         ("clrmemdi", "clrmemsi"): Merge.
2003
2004 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
2005
2006         * config/s390/s390.md: ("HQI"): New mode macro.
2007         ("icm_lo", "icm_hi", "max_uint"): New mode attributes.
2008         ("*tmhi_full", "*tmqi_full"): Merge.
2009         ("*tsthiCCT", "*tstqiCCT"): Merge.
2010         ("*tsthi", "*tstqi"): Merge.
2011         ("*tsthi_cconly", "tstqi_cconly"): Merge.
2012         ("*sethighhisi", "*sethighqisi"): Merge.
2013
2014 2005-05-09  Kazu Hirata  <kazu@cs.umass.edu>
2015
2016         * crtstuff.c, integrate.h, tree-scalar-evolution.h,
2017         config/alpha/unicosmk.h, config/arc/arc.md,
2018         config/arm/bpabi.h, config/arm/coff.h, config/arm/elf.h,
2019         config/arm/ieee754-df.S, config/arm/ieee754-sf.S,
2020         config/arm/netbsd.h, config/arm/pe.c, config/arm/pe.h,
2021         config/arm/semi.h, config/arm/uclinux-elf.h,
2022         config/arm/wince-pe.h, config/fr30/fr30.c,
2023         config/rs6000/altivec.h: Update copyright.
2024
2025 2005-05-09  Nathan Sidwell  <nathan@codesourcery.com>
2026
2027         * config/pdp11/pdp11.c (pdp11_output_function_prologue): Use
2028         gcc_assert and gcc_unreachable as appropriate.
2029         (pdp11_output_function_epilogue, output_move_double,
2030         output_move_quad, print_operand_address, output_jump,
2031         output_addr_const_pdp11): Likewise.
2032         * config/pdp11/pdp11.h (FUNCTION_PROFILER,
2033         ASM_OUTPUT_ALIGN): Likewise.
2034         * config/pdp11/pdp11.md: Likewise.
2035         (extendhisi2, subhi3, subqi3): Likewise.
2036
2037 2005-05-09  David Edelsohn  <edelsohn@gnu.org>
2038
2039         PR middle-end/21237
2040         * dojump.c (do_jump, MINUS_EXPR): Build NE_EXPR and fall through
2041         to NE_EXPR case.
2042
2043 2005-05-09  Kazu Hirata  <kazu@cs.umass.edu>
2044
2045         * config/ia64/ia64.c: Fix a comment typo.
2046
2047 2005-05-09  Richard Earnshaw  <rearnsha@arm.com>
2048
2049         PR target/21397
2050         * arm.c (ARM_OPT_SET_CPU, ARM_OPT_SET_ARCH, ARM_OPT_SET_TUNE): Define.
2051         (arm_override_options): Use them instead of manifest constants.  Don't
2052         allow -march to override the -mtune setting.
2053
2054 2005-05-09  Nathan Sidwell  <nathan@codesourcery.com>
2055
2056         * config/iq2000/iq2000.c (abort_with_insn): Use fancy_abort.
2057         (gen_int_relational): Use gcc_unreachable and gcc_assert as necessary.
2058         (function_arg_advance, function_arg, save_restore_insns,
2059         iq2000_expand_prologue, iq2000_output_conditional_branch,
2060         expand_one_builtin, print_operand):
2061         * config/iq2000/iq2000.md (tablejump): Likewise.
2062
2063 2005-05-09  David Ung  <davidu@mips.com>
2064
2065         * config/mips/mips.h (processor_type): Add names for the 24K.
2066         * config/mips/mips.c (mips_cpu_info_table): Add names for the 24K
2067         processor family.
2068         * config/mips/mips.md (cnv_mode): New attribute for recording the
2069         conversion types of float convert insns.
2070         (cpu): Add 24k and 24kx.
2071         (include): Include 24k.md file.
2072         (truncdfsf2, extendsfdf2, fix_truncdfsi2_insn, fix_truncdfsi2_macro)
2073         (fix_truncdfdi2, fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2)
2074         (floatdisf2): Setup cnv_mode.
2075         (fix_truncsfsi2_insn, fix_truncsfsi2_macro): Changed mode to SF and
2076         setup cnv_mode.
2077         * config/mips/24k.md: New file, contains 24k DFA pipeline
2078         description.
2079
2080 2005-05-09  Nathan Sidwell  <nathan@codesourcery.com>
2081
2082         * config/sh/sh.c (print_operand_address): Use gcc_assert and
2083         gcc_unreachable as appropriate.
2084         (print_operand, prepare_move_operands, prepare_scc_operands,
2085         output_movedouble, output_branch, shift_insns_rtx, gen_shifty_op,
2086         gen_shl_and, shl_sext_kind, gen_datalabel_ref, dump_table,
2087         fixup_mova, gen_far_branch, sh_reorg, split_branches,
2088         final_prescan_insn, output_stack_adjust, sh_expand_epilogue,
2089         sh_set_return_address, sh_setup_incoming_varargs,
2090         initial_elimination_offset, sh_pch_valid_p, get_free_reg,
2091         sh_expand_builtin, sh_output_mi_thunk, extract_sfunc_addr,
2092         check_use_sfunc_addr): Likewise.
2093         * config/sh/netbsd-elf.h (FUNCTION_PROFILER): Likewise.
2094         * config/sh/sh.h (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
2095         * config/sh/symbian.c (sh_symbian_mark_dllexport,
2096         sh_symbian_mark_dllimport): Likewise.
2097         * config/sh/sh.md: Likewise.
2098         (movdicc, call_pop, call_value_pop, casesi_worker_1,
2099         casesi_worker_2, casesi_shift_media, casesi_load_media,
2100         return_media): Likewise.
2101
2102 2005-05-08  Roger Sayle  <roger@eyesopen.com>
2103
2104         PR inline-asm/8788
2105         * stmt.c (expand_asm_operands): Avoid calling force_reg on BLKmode
2106         operands.
2107
2108 2005-05-08  Richard Henderson  <rth@redhat.com>
2109
2110         * config/alpha/alpha.c (adjust_address): Fix typo last change.
2111
2112 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
2113
2114         * config/m68hc11/m68hc11.h (REG_VALID_P): A regno must be >= 0
2115         and -1 can happen in reg_renumber when no hard register is assigned.
2116
2117 2005-05-08  Steven Bosscher  <stevenb@suse.de>
2118             Kazu Hirata  <kazu@cs.umass.edu>
2119
2120         PR tree-optimization/14841, tree-optimization/15838
2121         * tree-ssa-ccp.c (fold_const_aggregate_ref): New.
2122         (evaluate_stmt): Call it.
2123
2124 2005-05-08  Jakub Jelinek  <jakub@redhat.com>
2125
2126         * config/ia64/ia64.c (ia64_override_options): Don't set
2127         ia64_flag_var_tracking and clear flag_var_tracking here...
2128         (ia64_file_start): ... but here.
2129
2130 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
2131
2132         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use gcc_assert
2133         and gcc_unreachable as appropriate.
2134         (expand_prologue, expand_epilogue, m68hc11_gen_lowpart,
2135         m68hc11_gen_highpart, print_operand, print_operand_address,
2136         m68hc11_expand_compare, m68hc11_expand_compare_and_branch,
2137         m68hc11_gen_movhi): Likewise.
2138         * config/m68hc11/m68hc11.h (HARD_X_REGNUM): Reword comment.
2139         * config/m68hc11/m68hc11.md: Reword comment.
2140
2141 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
2142
2143         PR target/21281
2144         * config/m68hc11/predicates.md (splitable_operand): An immediate is
2145         allowed.
2146
2147 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
2148
2149         * config/m68hc11/predicates.md (reg_or_some_mem_operand): Do not allow
2150         the 68HC12 address indirect addressing mode as it is not supported by
2151         bset and bclr.
2152         * config/m68hc11/m68hc11-protos.h
2153         (m68hc11_valid_addressing_p): Declare.
2154         (m68hc11_add_mode): Declare.
2155         * config/m68hc11/m68hc11.c (m68hc11_valid_addressing_p): Rename from
2156         register_indirect_p and export it.
2157         (m68hc11_z_replacement): Use emit_insn_after when adding the save Z
2158         instruction so that it is part of the good BB.
2159         (m68hc11_gen_movhi): Fix invalid generation of indexed indirect
2160         addressing with movw.
2161         (m68hc11_gen_movqi): Use pula and pulb instead of lda and ldb for
2162         68HC12.
2163         * config/m68hc11/m68hc11.h (ADDR_STRICT, ADDR_INCDEC, ADDR_INDEXED,
2164         ADDR_OFFSET, ADDR_INDIRECT, ADDR__CONST): Moved from m68hc11.c.
2165         * config/m68hc11/m68hc11.md ("movhi_const0"): Use this pattern only
2166         for 68HC11.
2167         ("*movhi_68hc12"): Handle movhi_const0.
2168         ("*subhi3", "subqi3"): Use general_operand for operand 1.
2169         ("*subhi3_zext"): Likewise.
2170
2171 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
2172
2173         PR target/19051
2174         * config/m68hc11/m68hc11.md ("mulqi3"): Use general_operand for
2175         operand 1 and fix constraints.
2176         ("mulqihi3"): Use general_operand for operand 2.
2177
2178 2005-05-08  Julian Brown  <julian@codesourcery.com>
2179             H.J. Lu  <hongjiu.lu@intel.com>
2180             Paul Brook  <paul@codesourcery.com>
2181
2182         * configure.ac: Set ld_vers_major, ld_vers_minor and ld_vers_patch for
2183         GNU linker. Support linker version x.x.x.x.x. Require GNU linker
2184         20050308/2.16.0 or newer for comdat group.
2185         * configure: Regenerated.
2186         * config.in: Regenerated.
2187         * varasm.c (default_function_rodata_section): Put .rodata section in
2188         COMDAT group when necessary.
2189         (default_elf_asm_named_section): Rename HAVE_GAS_COMDAT_GROUP to
2190         HAVE_COMDAT_GROUP.
2191         (default_unique_section_1): Don't use .gnu.linkonce when COMDAT is
2192         available.
2193
2194 2005-05-08  Kazu Hirata  <kazu@cs.umass.edu>
2195
2196         * tree-dfa.c (referenced_vars, add_referenced_var): Use VEC
2197         instead of VARRAY.
2198         * tree-flow.h (num_referenced_var, referenced_var): Likewise.
2199         * tree-into-ssa.c (mark_def_site_blocks): Likewise.
2200         * tree-ssa.c (init_tree_ssa, delete_tree_ssa): Likewise.
2201         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
2202
2203 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
2204
2205         PR target/16925
2206         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Handle split of
2207         64-bit constants on 64-bit hosts.
2208         (m68hc11_split_logical): Simplify.
2209         (m68hc11_split_move): Likewise.
2210
2211 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
2212             Paolo Bonzini  <bonzini@gnu.org>
2213
2214         * Makefile.in (cs-tconfig.h): Pass USED_FOR_TARGET to mkconfig.sh
2215         * aclocal.m4 (GCC_TARGET_TEMPLATE, AH_TEMPLATE): New.
2216         * configure.ac (enable_checking): Fix typos in runtime_checking.
2217         (ENABLE_RUNTIME_CHECKING): Mark as target template.
2218         (xm_file): Prepend auto-host.h
2219         (HAVE_GAS_HIDDEN, HAVE_LD_EH_FRAME_HDR): Mark as target template.
2220         * mkconfig.sh: Do not automatically define USED_FOR_TARGET in
2221         tconfig.h.
2222         * crtstuff.c: Do not include auto-host.h.
2223         (IN_LIBGCC2): Do not define.
2224         * gcov-io.h: Include tconfig.h, not auto-host.h.
2225         * libgcc2.c: Do not include auto-host.h.
2226         (abort): Do not undefine.
2227         * libgcov.c: Remove unneeded comment about config.h.
2228         * unwind-dw2-fde-glibc.c: Do not inlude auto-host.h.
2229         * config.in, configure: Regenerated.
2230
2231 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
2232             Falk Hueffner  <falk@debian.org>
2233
2234         * config/alpha/alpha.c (tls_symbolic_operand_1): Use gcc_assert
2235         and gcc_unreachable as appropriate.
2236         (get_aligned_mem, get_unaligned_address,
2237         alpha_emit_set_long_const, alpha_emit_conditional_branch,
2238         alpha_emit_setcc, alpha_emit_conditional_move,
2239         alpha_lookup_xfloating_lib_func, alpha_compute_xfloating_mode_arg,
2240         alpha_emit_xfloating_libcall, alpha_split_tfmode_pair,
2241         alpha_expand_unaligned_load, alpha_expand_block_move,
2242         alpha_expand_zap_mask, get_trap_mode_suffix,
2243         get_round_mode_suffix, get_some_local_dynamic_name,
2244         print_operand_address, function_arg, alpha_return_in_memory,
2245         function_value, alpha_expand_builtin,
2246         alpha_initial_elimination_offset, alpha_expand_epilogue,
2247         summarize_insn, alpha_handle_trap_shadows, alphaev5_insn_pipe,
2248         alphaev5_next_group, alpha_align_insns,
2249         unicosmk_initial_elimination_offset, unicosmk_unique_section,
2250         unicosmk_ssib_name): Likewise.
2251         * config/alpha/alpha.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
2252         * config/alpha/unicosmk.h (TRAMPOLINE_TEMPLATE,
2253         ASM_OUTPUT_ADDR_DIFF_ELT, ASM_OUTPUT_ADDR_DIFF_VEC): Likewise.
2254         * config/alpha/vms.h (INITIAL_ELIMINATION_OFFSET,
2255         ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
2256         * config/alpha/alpha.md (*divmodsi_internal_er,
2257         *divmoddi_internal_er, ashldi3, *insxl, sibcall, call_osf,
2258         call_nt, call_umk, call_vms, call_value, sibcall_value,
2259         call_value_osf, call_value_nt, call_value_vms, call_value_umk,
2260         *call_vms_1, *movmemdi_1, *clrmemdi_1, *call_value_vms_1): Likewise.
2261         * config/alpha/predicates.md (input_operand): Likewise.
2262
2263 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
2264
2265         * config/frv/frv.c (frv_default_flags_for_cpu): Use gcc_assert and
2266         gcc_unreachable, as appropriate.
2267         (frv_function_prologue, frv_alloc_temp_reg,
2268         frv_initial_elimination_offset, frv_expand_block_move,
2269         frv_expand_block_clear, frv_print_operand_jump_hint,
2270         frv_legitimize_tls_address, unspec_got_name, frv_emit_move,
2271         frv_emit_movsi, frv_split_cond_move, frv_split_minmax,
2272         frv_ifcvt_modify_insn, frv_ifcvt_modify_final,
2273         frv_adjust_field_align, frv_insn_unit, frv_cond_flags,
2274         frv_sort_insn_group, frv_reorder_packet, frv_matching_accg_mode,
2275         frv_in_small_data_p, frv_asm_out_constructor,
2276         frv_asm_out_destructor, frv_output_dwarf_dtprel): Likewise.
2277         * config/frv/frv.md (reload_incc_fp, *cond_exec_si_binary1,
2278         *cond_exec_si_binary2, *cond_exec_si_divide, *cond_exec_si_unary1,
2279         *cond_exec_sf_conv, *cond_exec_sf_add, call, sibcall, call_value,
2280         sibcall_value, casesi): Likewise.
2281
2282         * config/mn10300/mn10300.c (print_operand): Use gcc_assert and
2283         gcc_unreachable as appropriate.
2284         (print_operand_address, mn10300_print_reg_list, expand_prologue,
2285         expand_epilogue, notice_update_cc, initial_offset,
2286         mn10300_address_cost_1): Likewise.
2287         * config/mn10300/mn10300.md: Likewise.
2288         (absdf2, abssf2, negdf2, negsf2): Likewise.
2289
2290 2005-05-08  Richard Sandiford  <rsandifo@redhat.com>
2291
2292         PR target/21416
2293         * config/mips/mips.c (mips_emit_compare): Don't reverse UNGE and UNGT
2294         comparisons.
2295         * config/mips/mips.md (swapped_fcond): New code macro and attribute.
2296         (sgt_<mode>, sge_<mode>): Generalize to all members of swapped_fcond,
2297         including sunge_<mode> and sungt_<mode>.
2298
2299 2005-05-08  Richard Sandiford  <rsandifo@redhat.com>
2300
2301         * integrate.h (get_hard_reg_initial_val): Change type of register
2302         parameter from int to unsigned int.
2303         (has_hard_reg_initial_val): Likewise.
2304         * integrate.c (get_hard_reg_initial_val): Likewise.
2305         (has_hard_reg_initial_val): Likewise.  Remove cast to unsigned int.
2306
2307 2005-05-08  Kazu Hirata  <kazu@cs.umass.edu>
2308
2309         * except.c (eh_status): Change the type of ttype_data to
2310         VEC(tree,gc)*.
2311         (add_ttypes_entry, assign_filter_values,
2312         output_function_exception_table): Use VEC instead of VARRAY.
2313
2314 2005-05-07  David Edelsohn  <edelsohn@gnu.org>
2315
2316         * config/rs6000/rs6000.md (popcount<mode>2): Fix non-C90 constant.
2317
2318 2005-05-07  Paul Brook  <paul@codesourcery.com>
2319
2320         * Makefile.in: Fix dependencies.
2321         (GCOV_IO_H, VARRAY_H): Set.
2322
2323 2005-05-07  Anthony Green  <green@redhat.com>
2324
2325         PR bootstrap/21403
2326         * configure.ac (STMP_FIXPROTO): Fix [ ] consumption problem in
2327         x$STMP_FIXPROTO test.
2328         * configure: Rebuilt.
2329
2330 2005-05-07  Joseph S. Myers  <joseph@codesourcery.com>
2331
2332         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Do not define
2333         inappropriate feature test macros if flag_iso.
2334
2335 2005-05-07  Joseph S. Myers  <joseph@codesourcery.com>
2336
2337         * config/ia64/hpux.h (NO_IMPLICIT_EXTERN_C): Define.
2338
2339 2005-05-07  Hans-Peter Nilsson  <hp@axis.com>
2340
2341         PR target/21441
2342         * config/cris/cris.md ("*movdi_insn", "*mov_sidesisf_biap")
2343         ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
2344         Handle moved operand being in special register.
2345         ("smulsi3_highpart", "umulsi3_highpart"): Change .error into
2346         presumed working insn.
2347         (mover2side): Add FIXME.
2348
2349 2005-05-07  Richard Sandiford  <rsandifo@redhat.com>
2350
2351         * integrate.c (get_func_hard_reg_initial_val): Delete.
2352         (has_func_hard_reg_initial_val): Delete.
2353         (get_hard_reg_initial_val): Inline the old implementation of
2354         get_func_hard_reg_initial_val.  Use has_hard_reg_initial_val
2355         instead of has_func_hard_reg_initial_val to test for an existing
2356         pseudo.  Only create an rtx if a new initial value entry is needed.
2357         (has_hard_reg_initial_val): Scan the initial value list directly.
2358         Don't create an rtx.
2359
2360 2005-05-07  David Edelsohn  <edelsohn@gnu.org>
2361
2362         * config.gcc ({powerpc,rs6000}-ibm-aix*): Remove rs6000/aix.opt
2363         from extra_options.
2364         * config.in (HAVE_AS_POPCNTB): New.
2365         * configure.ac (HAVE_AS_MFCRF): Add .machine "pwr5" to AIX test.
2366         (HAVE_AS_POPCNTB): New.
2367         * configure: Regenerated.
2368         * config/rs6000/aix.h (TARGET_XL_COMPAT): Delete.
2369         * config/rs6000/rs6000.c (rs6000_override_options, power5): Add
2370         MASK_POPCNTB.  Uncomment rs6000_sched_restricted_insns_priority
2371         and rs6000_sched_costly_dep.
2372         * config/rs6000/rs6000.h (TARGET_POPCNTB): New.
2373         (TARGET_XL_COMPAT): Delete.
2374         * config/rs6000/rs6000.md (UNSPEC_POPCNTB): New.
2375         (popcount<mode>2): New.
2376         (popcntb<mode>2): New.
2377         * config/rs6000/rs6000.opt (mpopcntb): New.
2378
2379         * opt-functions.awk (var_set): Emit OPTION_MASK_ for InverseMask
2380         if variable name exists.
2381
2382 2005-05-07  Matt Kraai  <kraai@ftbfs.org>
2383
2384         * Makefile.in (c-gimplify.o): Depend on $(RTL_H) instead of rtl.h.
2385
2386 2005-05-07  Richard Henderson  <rth@redhat.com>
2387
2388         PR target/21412
2389         * config/rs6000/rs6000.c (rs6000_emit_move): Look for tls addresses
2390         with constant offsets.
2391
2392 2005-05-07  Nathan Sidwell  <nathan@codesourcery.com>
2393
2394         * config/v850/v850.c (print_operand): Use gcc_assert and
2395         gcc_unreachable, as appropriate.
2396         (print_operand_address, v850_handle_data_area_attribute,
2397         v850_encode_data_area, construct_restore_jr, construct_save_jarl,
2398         v850_insert_attributes, construct_prepare_instruction): Likewise.
2399         * config/v850/v850.h (INITIAL_ELIMINATION_OFFSET): Likewise.
2400         * config/v850/v850.md (movsicc, *sasf_1): Likewise.
2401
2402 2005-05-07  Kazu Hirata  <kazu@cs.umass.edu>
2403
2404         * tree-ssa-loop-ivcanon.c, config/i386/i386.c,
2405         config/rs6000/rs6000.h: Fix comment typos.
2406
2407 2005-05-07  Richard Sandiford  <rsandifo@redhat.com>
2408
2409         * doc/invoke.texi: Remove documentation for MIPS' -mint64 option.
2410         * config/mips/mips.c (TARGET_SCALAR_MODE_SUPPORTED_P): Delete.
2411         (mips_scalar_mode_supported_p): Delete.
2412
2413 2005-05-06  Eric Christopher  <echristo@redhat.com>
2414
2415         * config/mips/mips.opt: Remove -mint64 option.
2416         * config/mips/mips.c (override_options): Remove -mint64
2417         handling.
2418         * config/mips/mips.h (INT_TYPE_SIZE): Define to 32.
2419         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Remove
2420         64-bit integer handling.
2421         * doc/invoke.texi (Option Summary): Remove -mint64 for
2422         mips.
2423
2424 2005-05-06  Zdenek Dvorak  <dvorakz@suse.cz>
2425
2426         PR tree-optimization/19401
2427         * tree-flow.h (tree_unroll_loops_completely): Declaration changed.
2428         * tree-ssa-loop-ivcanon.c (enum unroll_level): New.
2429         (estimated_unrolled_size): New function.
2430         (try_unroll_loop_completely, canonicalize_loop_induction_variables,
2431         tree_unroll_loops_completely): Always unroll loops if the code size
2432         does not increase.
2433         * tree-ssa-loop.c (tree_complete_unroll): Indicate whether all
2434         loops should be unrolled completely.
2435         (gate_tree_complete_unroll): Run complete unrolling unconditionally.
2436
2437 2005-05-06  Zdenek Dvorak  <dvorakz@suse.cz>
2438
2439         PR rtl-optimization/21254
2440         * loop-iv.c (iv_number_of_iterations): Simplify infiniteness
2441         assumptions for loops that otherwise do not roll.
2442         (find_simple_exit): Prefer # of iterations that is guaranteed
2443         not to be infinite.
2444         * loop-unroll.c (decide_peel_once_rolling,
2445         decide_peel_completely): Check whether the loop is infinite.
2446
2447 2005-05-06  Pat Haugen  <pthaugen@us.ibm.com>
2448
2449         * config/rs6000/sysv4.opt: Fix typo.
2450
2451 2005-05-06  Denis Vlasenko  <vda@port.imtp.ilyichevsk.odessa.ua>
2452             Jakub Jelinek  <jakub@redhat.com>
2453
2454         PR target/21329
2455         * config/i386/i386.c (ix86_expand_movmem): Don't use rep; movsb
2456         for -Os if (movsl;)*(movsw;)?(movsb;)? sequence is shorter.
2457         Don't use rep; movs{l,q} if the repetition count is really small,
2458         instead use a sequence of movs{l,q} instructions.
2459
2460 2005-05-06  Jeff Law  <law@redhat.com>
2461
2462         PR tree-optimization/21380
2463         * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
2464         thread through a block with no preds.
2465
2466 2005-05-06  Kazu Hirata  <kazu@cs.umass.edu>
2467
2468         * tree-ssa-operands.c (clobbered_v_may_defs, clobbered_vuses,
2469         ro_call_vuse, fini_ssa_operands, add_call_clobber_ops,
2470         add_call_read_ops): Use VEC instead of VARRAY.
2471
2472 2005-05-06  Nathan Sidwell  <nathan@codesourcery.com>
2473
2474         * config/mcore/mcore.c (mcore_print_operand_address): Use
2475         gcc_assert and gcc_unreachable as appropriate.
2476         (mcore_print_operand, mcore_gen_compare_reg, mcore_output_call,
2477         mcore_output_andn, output_inline_const, mcore_output_move,
2478         mcore_output_movedouble, mcore_expand_block_move,
2479         layout_mcore_frame, mcore_initial_elimination_offset,
2480         mcore_expand_prolog, mcore_mark_dllexport,
2481         mcore_mark_dllimport): Likewise.
2482         * config/mcore/mcore.h (switch_to_section): Likewise.
2483         * config/mcore/mcore.md: Likewise.
2484
2485 2005-05-06  Aldy Hernandez  <aldyh@redhat.com>
2486
2487         * config/rs6000/linux64.h: Remove MASK_PROFILE_KERNEL, and
2488         TARGET_PROFILE_KERNEL.
2489
2490         * config/rs6000/rs6000.c (output_profile_hook): Add comment to
2491         TARGET_PROFILE_KERNEL use.
2492
2493 2005-05-06  Nathan Sidwell  <nathan@codesourcery.com>
2494
2495         * config/m32r/m32r.c (m32r_encode_section_info): Use gcc_assert
2496         and gcc_unreachable, as appropriate.
2497         (gen_compare, gen_split_move_double, m32r_setup_incoming_varargs,
2498         m32r_expand_prologue, m32r_output_function_epilogue,
2499         m32r_legitimize_pic_address, m32r_print_operand_address,
2500         emit_cond_move, m32r_function_symbol,
2501         m32r_output_block_move): Likewise.
2502         * config/m32r/m32r.h (INITIAL_ELIMINATION_OFFSET): Likewise.
2503         * config/m32r/m32r.md ( *movsi_insn, *zero_branch_insn,
2504         *rev_zero_branch_insn): Likewise.
2505
2506 2005-05-06  Jakub Jelinek  <jakub@redhat.com>
2507
2508         PR c++/20961
2509         * varasm.c (merge_weak): Remove NEWDECL from WEAK_DECLS chain
2510         if both NEWDECL and OLDDECL are already weak.
2511
2512 2005-05-06  Richard Sandiford  <rsandifo@redhat.com>
2513
2514         * config/rs6000/sysv4.h (EXTRA_SUBTARGET_SWITCHES): Delete.
2515
2516 2005-05-05  J"orn Rennecke  <joern.rennecke@st.com>
2517             Kaz Kojima  <kkojima@gcc.gnu.org>
2518
2519         * config/sh/sh.c (sh_builtin_saveregs): Use copy_to_mode_reg
2520         and plus_constant.
2521
2522 2005-05-05  Aldy Hernandez  <aldyh@redhat.com>
2523             David Edelsohn  <edelsohn@gnu.org>
2524
2525         * config.gcc: Add .opt magic for the rs6000 ports.
2526
2527         * doc/invoke.texi: Document -mabi= option properly.  Document
2528         -misel and -mno-sel.  Document -mspe and -mno-spe.  Document
2529         -mvrsave and -mno-vrsave.  Document deprecation of -mspe= and
2530         -misel=.
2531
2532         * config/rs6000/aix.h: Remove XL_COMPAT stuff.  Remove
2533         SUBTARGET_SWITCHES and SUBSUBTARGET_SWITCHES.  Define
2534         TARGET_XL_COMPAT.
2535
2536         * config/rs6000/aix.opt: New.
2537         * config/rs6000/aix41.opt: New.
2538         * config/rs6000/aix64.opt: New.
2539         * config/rs6000/darwin.opt: New.
2540         * config/rs6000/linux64.opt: New.
2541         * config/rs6000/rs6000.opt: New.
2542         * config/rs6000/sysv4.opt: New.
2543
2544         * config/rs6000/sysv4.h: Delete definitions of MASK_* and
2545         associated TARGET_*.  Remove SUBTARGET_OPTIONS,
2546         SUBTARGET_SWITCHES.
2547         Define TARGET_USES_SYSV4_OPT.
2548         * config/rs6000/aix41.h: Remove SUBSUBTARGET_SWITCHES.
2549         * config/rs6000/aix43.h: Remove SUBSUBTARGET_SWITCHES.  Define
2550         TARGET_USES_AIX64_OPT.
2551         * config/rs6000/aix51.h: Same.
2552         * config/rs6000/aix52.h: Same.
2553         * config/rs6000/darwin.h: Remove SUBTARGET_SWITCHES,
2554         MASK_MACHO_DYNAMIC_NO_PIC, TARGET_MACHO_DYNAMIC_NO_PIC.
2555         Use TARGET_ALTIVEC_VRSAVE instead of rs6000_altivec_vrsave.
2556         Define TARGET_DYNAMIC_NO_PIC as TARGET_MACHO_DYNAMIC_NO_PIC.
2557         * config/rs6000/linux64.h: Use
2558         rs6000_explicit_options.  Remove EXTRA_SUBTARGET_SWITCHES.
2559
2560         * config/rs6000/rs6000.c: Remove definitions of
2561         rs6000_sched_restricted_insns_priority,
2562         rs6000_long_double_size_string, rs6000_altivec_vrsave,
2563         rs6000_altivec_vrsave_string, rs6000_isel, rs6000_spe,
2564         rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
2565         rs6000_abi_string, rs6000_warn_altivec_long, rs6000_longcall,
2566         rs6000_alignment_string.  Define rs6000_explicit_options.
2567         (rs6000_parse_abi_options): Remove.
2568         (rs6000_parse_alignment_option): Remove.
2569         (rs6000_parse_float_gprs_option): Remove.
2570         (rs6000_handle_option): New.  Define TARGET_HANDLE_OPTION.  Define
2571         TARGET_DEFAULT_TARGET_FLAGS.
2572         (rs6000_override_options): Revamp to use new .opt machinery.
2573
2574         * config/rs6000/rs6000.h: Remove old MASK_* and TARGET_* in favor
2575         of new .opt machinery.  Remove target_flags.  Redefine
2576         TARGET_MFCRF and TARGET_POWERPC64.  Remove TARGET_SWITCHES,
2577         SUBTARGET_SWITCHES, TARGET_OPTIONS, SUBTARGET_OPTIONS,
2578         rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
2579         rs6000_altivec_vrsave_string, rs6000_altivec_vrsave,
2580         rs6000_longcall_switch, rs6000_default_long_calls,
2581         rs6000_sched_costly_dep_str, rs6000_sched_costly_dep,
2582         rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch, and
2583         TARGET_ALTIVEC_VRSAVE.
2584
2585 2005-05-05  Ralf Corsepius  <ralf.corsepius@rtems.org>
2586
2587         * config.gcc (hppa1.1-*-rtems*): Remove.
2588         * config/pa/rtems.h: Remove.
2589
2590 2005-05-05  Ralf Corsepius  <ralf.corsepius@rtems.org>
2591
2592         * config/rs6000/t-rtems (MULTILIB_NEW_EXCEPTIONS_ONLY):
2593         Exclude roe/603e multilib variants.
2594
2595 2005-05-04  Denis Chertykov  <denisc@overta.ru>
2596
2597         PR target/21284
2598         * config/avr/avr.c (avr_output_addr_vec_elt): Use special section
2599         for output.
2600
2601 2005-05-05  Richard Sandiford  <rsandifo@redhat.com>
2602
2603         * config.gcc (arm*-wince-pe*, arm-*-pe*, strongarm-*-pe): Add
2604         arm/pe.opt to $extra_options.
2605         * config/arm/arm.h (target_flags, target_fpu_name, target_fpe_name)
2606         (target_float_abi_name, target_float_switch, target_abi_name)
2607         (ARM_FLAG_APCS_FRAME, ARM_FLAG_POKE, ARM_FLAG_FPE, ARM_FLAG_APCS_STACK)
2608         (ARM_FLAG_APCS_FLOAT, ARM_FLAG_APCS_REENT, ARM_FLAG_BIG_END)
2609         (ARM_FLAG_INTERWORK, ARM_FLAG_LITTLE_WORDS, ARM_FLAG_NO_SCHED_PRO)
2610         (ARM_FLAG_ABORT_NORETURN, ARM_FLAG_SINGLE_PIC_BASE)
2611         (ARM_FLAG_LONG_CALLS, ARM_FLAG_THUMB, THUMB_FLAG_BACKTRACE)
2612         (THUMB_FLAG_LEAF_BACKTRACE, THUMB_FLAG_CALLEE_SUPER_INTERWORKING)
2613         (THUMB_FLAG_CALLER_SUPER_INTERWORKING, CIRRUS_FIX_INVALID_INSNS)
2614         (TARGET_APCS_FRAME, TARGET_POKE_FUNCTION_NAME, TARGET_FPE)
2615         (TARGET_APCS_STACK, TARGET_APCS_FLOAT, TARGET_APCS_REENT)
2616         (TARGET_BIG_END, TARGET_INTERWORK, TARGET_LITTLE_WORDS)
2617         (TARGET_NO_SCHED_PRO, TARGET_ABORT_NORETURN, TARGET_SINGLE_PIC_BASE)
2618         (TARGET_LONG_CALLS, TARGET_THUMB, TARGET_CALLER_INTERWORKING)
2619         (TARGET_CIRRUS_FIX_INVALID_INSNS, SUBTARGET_SWITCHES, TARGET_SWITCHES)
2620         (TARGET_OPTIONS, arm_cpu_select, arm_select,  structure_size_string)
2621         (arm_pic_register_string): Delete.
2622         (TARGET_BACKTRACE): Redefine using TARGET_TPCS_LEAF_FRAME and
2623         TARGET_TPCS_FRAME.
2624         (TARGET_DEFAULT, CONDITIONAL_REGISTER_USAGE): Update mask names.
2625         * config/arm/coff.h (TARGET_DEFAULT): Likewise.
2626         * config/arm/elf.h (TARGET_DEFAULT): Likewise.
2627         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Likewise.
2628         * config/arm/netbsd.h (TARGET_DEFAULT): Likewise.
2629         * config/arm/semi.h (TARGET_DEFAULT): Likewise.
2630         * config/arm/uclinux-elf.h (TARGET_DEFAULT): Likewise.
2631         * config/arm/wince-pe.h (TARGET_DEFAULT): Likewise.
2632         * config/arm/pe.h (TARGET_DEFAULT): Likewise.
2633         (TARGET_FLAG_NOP_FUN, TARGET_NOP_FUN_DLLIMPORT): Delete.
2634         (SUBTARGET_SWITCHES): Delete.
2635         * config/arm/arm.c (target_float_switch): Delete.
2636         (arm_cpu_select): Moved from config/arm/arm.h.
2637         (target_fpu_name, target_fpe_name, target_float_abi_name)
2638         (target_abi_name, structure_size_string, arm_pic_register_string)
2639         (arm_select): Make static.
2640         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2641         (arm_handle_option): New function.
2642         (arm_override_options): Update target_flags checks for new mask names.
2643         Remove target_float_switch code.
2644         (arm_expand_prologue, thumb_expand_prologue): Check
2645         !TARGET_SCHED_PROLOG instead of TARGET_NO_SCHED_PRO.
2646         * config/arm/arm.opt, config/arm/pe.opt: New files.
2647
2648 2005-05-05  Nathan Sidwell  <nathan@codesourcery.com>
2649
2650         * config/arc/arc.c (get_arc_condition_code): Use gcc_assert &
2651         gcc_unreachable as appropriate.
2652         (arc_double_limm_p, arc_setup_incoming_varargs,
2653         arc_compute_function_type, arc_output_function_prologue,
2654         arc_output_function_epilogue, arc_eligible_for_epilogue_delay,
2655         output_shift, arc_print_operand, arc_print_operand_address,
2656         arc_final_prescan_insn): Likewise.
2657         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
2658
2659 2005-05-04  Geoffrey Keating  <geoffk@apple.com>
2660
2661         * config/rs6000/rs6000.md (P): Use TARGET_*BIT rather than
2662         comparing Pmode.
2663         (SDI): New.
2664         (cmp): Delete.
2665         (wd): New.
2666         (add<mode>3, add<mode>3_internal1, add<mode>3_internal2,
2667         add<mode>3_internal3, one_cmpl<mode>2, sub<mode>3, neg<mode>2,
2668         clz<mode>2, ctz<mode>2, ffs<mode>2): New.
2669         (addsi3, addsi3_internal1, addsi3_internal2, addsi3_internal3,
2670         (one_cmplsi2, subsi3, negsi2, clzsi2, ctzsi2, ffssi2): Remove.
2671         (adddi3, adddi3_internal1, adddi3_internal2, adddi3_internal3,
2672         (one_cmpldi2, subdi3, negdi2, clzdi2, ctzdi2, ffsdi2): Remove.
2673         (sync_compare_and_swap<mode>): Use <wd> rather than <cmp>.
2674
2675 2005-05-05  Paul Brook  <paul@codesourcery.com>
2676
2677         * Makefile.in: Replace dependencies on basic-block.h, c-pragma.h,
2678         cfgloop.h, diagnostic.h, insn-attr.h, langhooks-def.h, params.h,
2679         regs.h, system.h, tree-dump.h, tree-gimple.h, tree-scalar-evolution.h
2680         and tree-data-ref.h with *_H variables.
2681
2682 2005-05-05  Kelley Cook  <kcook@gcc.gnu.org>
2683
2684         * config/m32r/xm-m32r.h, config/m32r/xm-linux.h: Delete files.
2685
2686 2005-05-05  Kelley Cook  <kcook@gcc.gnu.org>
2687
2688         * system.h: Poison BYTEORDER and HOST_WORDS_BIG_ENDIAN.
2689
2690 2005-05-04  Gerald Pfeifer  <gerald@pfeifer.com>
2691
2692         * doc/contrib.texi (Contributors): Add Mostafa Hagog and Ayal Zaks.
2693
2694 2005-05-04 Fariborz Jahanian <fjahanian@apple.com>
2695
2696         * config/rs6000/rs6000.c (rs6000_emit_prologue): Emit
2697         setting of vrsave register for current function after
2698         call to save_world is emitted.
2699
2700 2005-05-05  Hans-Peter Nilsson  <hp@bitrange.com>
2701
2702         * config/mmix/predicates.md: New file.
2703         * config/mmix/mmix.c (mmix_symbolic_or_address_operand)
2704         (mmix_reg_or_constant_operand, mmix_reg_cc_operand)
2705         (mmix_foldable_comparison_operator, mmix_comparison_operator)
2706         (mmix_reg_or_0_operand, mmix_reg_or_8bit_operand): Remove.
2707         * config/mmix/mmix.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
2708         Don't define.
2709         * config/mmix/mmix.md: Include predicates.md.
2710         ("call", "call_value"): Force address to register if it isn't a
2711         mmix_symbolic_or_address_operand.
2712
2713 2005-05-04  Andrew MacLeod  <amacleod@redhat.com>
2714
2715         * tree-flow-inline.h (op_iter_init_use, op_iter_init_def): Assert that
2716         the flags are of appropriate types.
2717         (num_ssa_operands): Generalize using the generic interface.
2718         * tree-ssa-dce.c (remove_dead_stmt): Don't ask for kills on a DEF
2719         iterator.
2720
2721 2005-05-04  Richard Sandiford  <rsandifo@redhat.com>
2722
2723         * protoize.c (version_flag, quiet_flag, nochange_flag, nosave_flag)
2724         (keep_flag, local_flag, global_flag, cplusplus_flag): Make extern.
2725
2726 2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
2727
2728         * tree-outof-ssa.c (edge_leader, stmt_list,
2729         analyze_edges_for_bb): Use VEC instead of VARRAY.
2730         (init_analayze_edges_for_bb, fini_analayze_edges_for_bb): New.
2731         (perform_edge_inserts): Call init_analayze_edges_for_bb and
2732         fini_analayze_edges_for_bb.
2733
2734 2005-05-04  James E Wilson  <wilson@specifixinc.com>
2735
2736         PR driver/21112
2737         * gcc.c (process_command): In the second argv scan loop, ignore
2738         Xassembler and Xpreprocessor, along with their argument.
2739
2740 2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
2741
2742         * tree-flow-inline.h, tree-ssa-operands.c,
2743         tree-ssa-operands.h, tree-ssa-opfinalize.h:
2744         Likewise. tree-vn.c: Fix comment typos.
2745         * doc/passes.texi, doc/tree-ssa.texi: Fix typos.
2746
2747 2005-05-04  Paolo Bonzini  <bonzini@gnu.org>
2748
2749         * doc/tm.texi (Target Hooks): Document
2750         TARGET_RESOLVE_OVERLOADED_BUILTIN.
2751
2752 2005-05-04  Paul Brook  <paul@codesourcery.com>
2753
2754         * Makefile.in: Change dependencies on target.h to $(TARGET_H).
2755
2756 2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
2757
2758         * dwarf2out.c (incomplete_types, retry_incomplete_types,
2759         gen_struct_or_union_type_die, dwarf2out_init): Use VEC instead
2760         of VARRAY.
2761
2762         * loop-unroll.c (var_to_expand, analyze_insn_to_expand_var,
2763         get_expansion, expand_var_during_unrolling,
2764         insert_var_expansion_initialization,
2765         combine_var_copies_in_loop_exit, release_var_copies): Use VEC
2766         instead of VARRAY.
2767
2768         * tree-ssa-loop-ivopts.c (rewrite_address_base): Don't call
2769         update_stmt.
2770
2771 2004-05-03  Andrew Pinski  <pinskia@physics.uc.edu>
2772
2773         PR middle-end/15618
2774         * fold-const.c (fold_widened_comparison): Treat BOOLEAN_TYPE
2775         the same as INTEGER_TYPE.
2776         (fold_binary): Fold "bool_var != 0" to bool_var.
2777         Fold "bool_var == 1" to bool_var.
2778
2779 2004-05-03  Richard Henderson  <rth@redhat.com>
2780
2781         PR middle-end/21318
2782         * function.c (instantiate_virtual_regs_in_insn): Use the mode
2783         from recog_data instead of insn_data.
2784
2785 2005-05-03  DJ Delorie  <dj@redhat.com>
2786
2787         * common.opt (fdiagnostics-show-option): No variable is needed.
2788         * diagnostic.h (diagnostic_context): Add show_option_requested flag.
2789         * diagnostic.c (diagnostic_initialize): Initialize show_option_requested.
2790         (diagnostic_report_diagnostic): Test for enabled diagnostics here.
2791         Save and restore original message format.  Use flag in context
2792         instead of global.
2793         (warning): Don't test for enabled warnings here.
2794         * opts.c (common_handle_option): Handle -fdiagnostics-show-option
2795         here.
2796
2797 2005-05-04  Kelley Cook  <kcook@gcc.gnu.org>
2798
2799         * config/m32r/xm-m32r.h: Don't define HOST_WORDS_BIG_ENDIAN.
2800         * config/m32r/xm-linux.h: Don't undefine HOST_WORDS_BIG_ENDIAN.
2801         * mips-tfile.c: Use WORDS_BIG_ENDIAN instead of HOST_WORDS_BIG_ENDIAN.
2802         * aclocal.m4: Don't include accross.m4.
2803         * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
2804         Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
2805         * configure, config.in: Regenerate.
2806
2807 2005-05-04  Jakub Jelinek  <jakub@redhat.com>
2808
2809         PR middle-end/21265
2810         * expr.h (enum block_op_methods): Add BLOCK_OP_TAILCALL.
2811         (clear_storage): Add argument.
2812         * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall):
2813         Add tailcall argument, set CALL_EXPR_TAILCALL of the CALL_EXPR to
2814         tailcall.
2815         (emit_block_move): Handle BLOCK_OP_TAILCALL method.
2816         (clear_storage): Add method argument, handle BLOCK_OP_TAILCALL.
2817         (store_expr, store_constructor): Adjust callers.
2818         * builtins.c (expand_builtin_memcpy): Pass BLOCK_OP_TAILCALL
2819         to emit_block_move if CALL_EXPR_TAILCALL (exp).
2820         (expand_builtin_memmove): Add ORIG_EXP argument, copy
2821         CALL_EXPR_TAILCALL from ORIG_EXP to the new CALL_EXPR.
2822         (expand_builtin_bcopy): Replace ARGLIST and TYPE arguments
2823         with EXP.  Pass EXP to expand_builtin_memmove.
2824         (expand_builtin_memset): Add ORIG_EXP argument, pass
2825         BLOCK_OP_TAILCALL to clear_storage if CALL_EXPR_TAILCALL (orig_exp).
2826         (expand_builtin_bzero): Replace ARGLIST argument with EXP.
2827         Pass EXP to expand_builtin_memset.
2828         (expand_builtin_strcmp): Copy CALL_EXPR_TAILCALL from EXP to
2829         the new CALL_EXPR.
2830         (expand_builtin_strncmp): Likewise.
2831         (expand_builtin_printf): Replace ARGLIST argument with EXP.
2832         Copy CALL_EXPR_TAILCALL from EXP to the new CALL_EXPR.
2833         (expand_builtin_fprintf): Likewise.
2834         (expand_builtin): Adjust calls to
2835         expand_builtin_{memmove,bcopy,memset,bzero,{,f}printf}.
2836
2837         * config/i386/i386.c (ix86_expand_vector_set): Fix setting 3rd and 4th
2838         item in V4SF mode.
2839
2840         PR rtl-optimization/21239
2841         * combine.c (combine_simplify_rtx) <case VEC_SELECT>: Fix a typo.
2842
2843 2005-05-03  Kazu Hirata  <kazu@cs.umass.edu>
2844
2845         * tree-flow.h (tree_ann_common_d): Move aux to ...
2846         (stmt_ann_d): ... here.
2847         * tree-ssa-loop-im.c (LIM_DATA, determine_invariantness_stmt,
2848         move_computations_stmt, schedule_sm): Update references to
2849         aux.
2850         * tree-vectorizer.h (set_stmt_info, vinfo_for_stmt): Likewise.
2851
2852         * tree-cfg.c (remove_bb): Remove a redundant call to
2853         set_bb_for_stmt.
2854         * tree-if-conv.c (replace_phi_with_cond_modify_expr):
2855         Likewise.
2856
2857 2005-05-03  Richard Henderson  <rth@redhat.com>
2858
2859         * config/rs6000/rs6000.c: Remove conflict markers.
2860
2861         * cfg.c (dump_flow_info): Use max_reg_num, not max_regno.
2862
2863 2005-05-03  James E Wilson  <wilson@specifixinc.com>
2864
2865         * dwarf2out.c (lookup_filename): Call maybe_emit_file.
2866
2867 2005-05-03  DJ Delorie  <dj@redhat.com>
2868
2869         * c-decl.c (store_parm_decls_oldstyle): Let diagnostic machinery
2870         decide if the warning will be printed.
2871         * calls.c (expand_call): Likewise.
2872         * function.c (init-function_start): Likewise.
2873
2874         * common.opt (-fdiagnostics-show-option): New.
2875         * opts.c (option_enabled): Accept the option index instead of a
2876         pointer to the option descriptor.
2877         * opts.h (option_enabled): Likewise.
2878         * toplev.c (print_switch_values): Pass option index, not option
2879         descriptor.
2880         * diagnostic.h (diagnostic_info): Add option_index.
2881         * diagnostic.c: Include opts.h.
2882         (diagnostic_set_info): Initialize option_index.
2883         (diagnostic_report_diagnostic): Amend option name if appropriate.
2884         (warning): Check to see if the specified warning is enabled.
2885         Store option index.
2886         * doc/invoke.texi (-fdiagnostics-show-options): Document.
2887
2888 2005-05-03  Richard Henderson  <rth@redhat.com>
2889
2890         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Fix ALL_REGS and
2891         SPEC_OR_GEN_REGS definitions.
2892
2893 2005-05-03  Alexandre Oliva  <aoliva@redhat.com>
2894
2895         PR target/16888
2896         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Clear reg names
2897         for unavailable registers.
2898
2899 2005-05-03  Kazu Hirata  <kazu@cs.umass.edu>
2900
2901         * tree-cfg.c (tree_forwarder_block_p): Fix a typo.
2902
2903         * cfglayout.c (block_locators_blocks,
2904         insn_locators_initialize, insn_scope): Use VEC instead of
2905         VARRAY.
2906
2907         * tree-mudflap.c (deferred_static_decls, mudflap_enqueue_decl,
2908         mudflap_finish_file, mudflap_finish_file): Use VEC instead of
2909         VARRAY.
2910
2911 2005-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
2912
2913         * config/sparc/predicates.md (const_compl_high_operand): New.
2914         * config/sparc/sparc.c (sparc_emit_set_safe_HIGH64): Rename into
2915         gen_safe_HIGH64.
2916         (sparc_emit_set_const64_quick1): Adjust for above change.
2917         (sparc_emit_set_const64_quick2): Likewise.
2918         (sparc_emit_set_const64_longway): Likewise.
2919         (sparc_emit_set_const64): Likewise.
2920         * config/sparc/sparc.md (movhi_const64_special, movsi_const64_special,
2921         movdi_const64_special): Delete.
2922         (logical constant splitters): Use const_compl_high_operand.
2923
2924 2005-05-03  Richard Guenther  <rguenth@gcc.gnu.org>
2925
2926         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Use STRIP_TYPE_NOPS
2927         rather than STRIP_NOPS.
2928
2929 2005-05-03  Jakub Jelinek  <jakub@redhat.com>
2930
2931         PR rtl-optimization/21330
2932         * loop-unswitch.c (may_unswitch_on): Set *cinsn only when
2933         returning non-NULL.
2934         (unswitch_single_loop): Clear cinsn when retrying.
2935
2936         PR target/21297
2937         * config/i386/i386.c (legitimize_address): When canonicalizing
2938         ASHIFT into MULT, multiply by 1 << shift_count instead of
2939         1 << log2 (shift_count).
2940
2941 2005-05-03  Andrew MacLeod  <amacleod@redhat.com>
2942
2943         * lambda-code.c (gcc_loop_to_lambda_loop,
2944         lambda_loopnest_to_gcc_loopnest, phi_loop_edge_uses_def,
2945         stmt_is_bumper_for_loop, perfect_nest_p, replace_uses_of_x_with_y): Use
2946         generic operand interface.
2947         * tree-data-ref.c (find_data_references_in_loop): Use generic interface.
2948         * tree-dfa.c (collect_dfa_stats_r, mark_new_vars_to_rename): Use
2949         generic operand interface.
2950         * tree-flow-inline.h (delink_imm_use, link_imm_use_to_list,
2951         link_imm_use, link_imm_use_stmt, relink_imm_use, relink_imm_use_stmt,
2952         next_safe_imm_use, has_zero_uses, has_single_use, single_imm_use,
2953         num_imm_uses): Use ssa_use_operand_t.
2954         (get_def_ops, get_use_ops, get_v_may_def_ops, get_vuse_ops,
2955         get_v_must_def_ops): Delete.
2956         (get_def_from_ptr, get_phi_result_ptr): Get def directly now.
2957         (get_use_op_ptr, get_def_op_ptr, get_v_may_def_result_ptr,
2958         get_v_may_def_op_ptr, get_vuse_op_ptr, get_v_must_def_result_ptr,
2959         get_v_must_def_kill_ptr): Delete.
2960         (delink_stmt_imm_use): Move and use new operand interface.
2961         (op_iter_next_use, op_iter_next_def, op_iter_next_tree, op_iter_init,
2962         op_iter_next_tree): Use new operand implementation.
2963         (clear_and_done_ssa_iter): New.  Initialize a blank operand iterator.
2964         (op_iter_init_use, op_iter_init_def, op_iter_init_tree): Add iterator
2965         type check.
2966         (op_iter_next_mustdef, op_iter_next_maydef,
2967         op_iter_next_must_and_may_def): Delete. Replace with...
2968         (op_iter_next_maymustdef): New.  Combine must and may next operations.
2969         (op_iter_init_maydef, op_iter_init_mustdef,
2970         op_iter_init_must_and_may_def): Use new interface.
2971         (single_ssa_tree_operand ): New.  Process single operands only as trees.
2972         (single_ssa_use_operand): New.  Process single operands only as uses.
2973         (single_ssa_def_operand): New.  Process single operands only as defs.
2974         (zero_ssa_operands): New.  Return TRUE if there are zero operands of the
2975         specified types.
2976         (num_ssa_operands): New.  Count the number of specified operands.
2977         (compare_ssa_operands_equal): New.  Compare two statements' operands.
2978         (single_phi_def): New.  Return true if PHI has one def of the specified
2979         operand type.
2980         (op_iter_init_phiuse): New.  Initialize the iterator for PHI arguments.
2981         (op_iter_init_phidef): New.  Initialize the iterator for the PHI def.
2982         * tree-flow.h (struct immediate_use_iterator_d): Use ssa_use_operand_t.
2983         (struct stmt_ann_d): Operands field no longer require GTY().
2984         (vn_compute, vn_lookup_or_add, vn_add, vn_lookup): Change prototype.
2985         * tree-into-ssa.c (mark_def_sites): Use SSA_OP_VMUSTKILL.
2986         * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
2987         dump_replaceable_exprs, rewrite_trees): Use generic interface.
2988         * tree-phinodes.c (make_phi_node, release_phi_node, resize_phi_node):
2989         Use use_operand_p instead of ssa_imm_use_t *.
2990         * tree-pretty-print.c (dump_vops): check if operands are active before
2991         dumping virtual operands.
2992         * tree-sra.c (sra_walk_function): Use ZERO_SSA_OPERANDS.
2993         * tree-ssa-ccp.c (likely_value): Use ZERO_SSA_OPERANDS.
2994         (ccp_fold): Use new interface.
2995         (ccp_visit_stmt): Remove unused variables and code.
2996         (convert_to_gimple_builtin): Insert statements before calling
2997         mark_new_vars_to_rename.
2998         * tree-ssa-copy.c (stmt_may_generate_copy): Use ZERO_SSA_OPERANDS.
2999         (copy_prop_visit_cond_stmt): Use generic interface.
3000         * tree-ssa-dom.c (struct expr_hash_elt): Use stmt pointer, not the
3001         annotation in table.
3002         (thread_across_edge): Use generic interface.
3003         (initialize_hash_element): Initialzie with stmt, not annotation.
3004         (eliminate_redundant_computations): Use generic interface.
3005         (record_equivalences_from_stmt): Pass stmt, not annotation.
3006         (avail_expr_hash, real_avail_expr_hash, avail_expr_eq): Use generic
3007         interface.
3008         * tree-ssa-dse.c (dse_optimize_stmt): Use ZERO_SSA_OPERANDS.
3009         * tree-ssa-loop-ivopts.c (find_invariants_stmt,
3010         find_interesting_uses_stmt, protect_loop_closed_ssa_form_use): Use
3011         generic operand interface.
3012         * tree-ssa-loop-niter.c (chain_of_csts_start, get_val_for): Use generic
3013         interface.
3014         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Use Generic operand
3015         Interface.
3016         * tree-ssa-operands.c (struct opbuild_list_d): New.  Operand build type.
3017         (build_defs, build_uses, build_v_may_defs, build_vuses,
3018         build_v_must_defs): Change type to struct opbuild_list_d.
3019         (ops_active): New.  Operands active boolean.
3020         (operand_memory, operand_memory_index): New.  Operand memory managers.
3021         (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
3022         allocate_vuse_optype, allocate_v_must_def_optype): Delete.
3023         (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
3024         Change from functions to static variable list heads.
3025         (opbuild_initialize_virtual): New.  Initialize a virtual build list.
3026         (opbuild_initialize_real): New.  Initialize a virtual build list.
3027         (opbuild_free): New.  Free a build list.
3028         (opbuild_num_elems): New.  Number of items in a list.
3029         (opbuild_append_real): New.  Add a real (tree *) operand.
3030         (opbuild_append_virtual): New.  Add and sort a virtual (tree) operand.
3031         (opbuild_first): New.  Return first element index in a list.
3032         (opbuild_next): New.  Return next element in a list.
3033         (opbuild_elem_real): New.  Return real element.
3034         (opbuild_elem_virtual): New.  Return virtual element.
3035         (opbuild_elem_uid): New.  Return UID of virtual element.
3036         (opbuild_clear): New.  Reset an operand list.
3037         (opbuild_remove_elem): New.  Remove an element form a list.
3038         (ssa_operands_active): New.  Return true if operand cache is active.
3039         (init_ssa_operands, fini_ssa_operands): Initialize new implementation.
3040         (ssa_operand_alloc): New.  Allocate memory from an operand chunk.
3041         (correct_use_link): Use use_operand_p.
3042         (finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_defs,
3043         finalize_ssa_vuses, finalize_ssa_v_must_defs): New implmentation.
3044         (cleanup_v_may_defs): Use new implmentation.
3045         (finalize_ssa_stmt_operands, start_ssa_stmt_operands): New
3046         implementation.
3047         (append_def, append_use, append_v_may_def, append_vuse,
3048         append_v_must_def): Call opbuild_append routine instead of using varray.
3049         (build_ssa_operands): Simplify to simply use stmt, don't maintain a
3050         global parse_old_ops variable.
3051         (free_ssa_operands): New implementation.
3052         (update_stmt_operands): Move.  Change argument to build_ssa_operands.
3053         (copy_virtual_operands): Move. New generic implementation.
3054         (create_ssa_artficial_load_stmt): Move. New implementation.
3055         (swap_tree_operands): Update for new implementation.
3056         (get_expr_operands): Add stmt parameter to calls to swap_tree_operands.
3057         (add_call_clobber_ops, add_call_read_ops): Initialize opbuild list
3058         rather than a varray.
3059         (verify_imm_links): Use use_operand_p.
3060         (dump_immediate_uses_for): If the immediate use variable is a virtual
3061         variable, show the virtual ops in the stmt.
3062         * tree-ssa-operands.h (def_operand_p): No longer a structure.
3063         (NULL_DEF_OPERAND_P): Now a #define.
3064         (def_optype_d, use_optype_d, v_def_use_operand_type, v_may_def_optype_d,
3065         vuse_operand_type, vuse_optype_d, v_must_def_optype_d): Delete.
3066         (def_optype_d, use_optype_d, maydef_optype_d, vuse_optype_d,
3067         mustdef_optype_d): New.  Use Linked list representation.
3068         (SSA_OPERAND_MEMORY_SIZE): New.  Size of operand memory chunk.
3069         (struct ssa_operand_memory_d): New.  Allocated Chunk node.
3070         (struct stmt_operands_d): Change to new pointers that are not GTY.
3071         (STMT_USE_OPS, NUM_USES, SET_USE_OP, STMT_DEF_OPS, NUM_DEFS, SET_DEF_OP,
3072         STMT_V_MAY_DEF_OPS, NUM_V_MAY_DEFS, SET_V_MAY_DEF_RESULT,
3073         SET_V_MAY_DEF_OP, STMT_VUSE_OPS, NUM_VUSES, SET_VUSE_OP,
3074         STMT_V_MUST_DEF_OPS, NUM_V_MUST_DEFS, SET_V_MUST_DEF_RESULT,
3075         SET_V_MUST_DEF_KILL): Delete.
3076         (V_MAY_DEF_OPS, V_MAY_DEF_RESULT_PTR, V_MAY_DEF_RESULT,
3077         V_MAY_DEF_OP_PTR, V_MAY_DEF_OP): Rename to MAYDEF_*.
3078         (V_MUST_DEF_OPS, V_MUST_DEF_RESULT_PTR, V_MUST_DEF_RESULT,
3079         V_MUST_DEF_KILL_PTR, V_MUST_DEF_KILL): Rename to MUSTDEF_*.
3080         (enum ssa_op_iter_type): Operand iterator typechecking values.
3081         (struct ssa_operand_iterator_d): Use linked lists of operands.
3082         (SSA_OP_VMUSTDEFKILL): Rename to SSA_OP_VMUSTKILL.
3083         (FOR_EACH_SSA_MAYDEF_OPERAND, FOR_EACH_SSA_MUSTDEF_OPERAND,
3084         FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): Use op_iter_next_maymustdef.
3085         (FOR_EACH_PHI_ARG): New.  Iterate over PHI arguments.
3086         (FOR_EACH_PHI_OR_STMT_USE): New.  Iterate over PHI or stmt uses.
3087         (FOR_EACH_PHI_OR_STMT_DEF): New.  Iterate over PHI or stmt defs.
3088         (SINGLE_SSA_TREE_OPERAND, SINGLE_SSA_USE_OPERAND,
3089         SINGLE_SSA_DEF_OPERAND, ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): New.
3090         * tree-ssa-opfinalize.h: New.  Function templates for expansion.
3091         (FINALIZE_ALLOC): Expands into alloc_def, alloc_use, alloc_maydef,
3092         alloc_vuse, and alloc_mustdef.
3093         (FINALIZE_FUNC): Expands into finalize_ssa_def_ops,
3094         finalize_ssa_use_ops, finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
3095         and finalize_ssa_v_must_def_ops.
3096         * tree-ssa-pre.c (add_to_sets): Pass tree to vn_add.
3097         (create_value_expr_from): Use stmt not vuse_optype as a parameter. Pass
3098         stmt around.
3099         (compute_avail): Use generic iterator interface.
3100         * tree-ssa-propagate.c (first_vdef): Use generic operand interface.
3101         (stmt_makes_single_load, stmt_makes_single_store): Use
3102         ZERO_SSA_OPERANDS.
3103         * tree-ssa-sink.c (is_hidden_global_store): Use ZERO_SSA_OPERANDS.
3104         (statement_sink_location): Use generic interface.
3105         * tree-ssa.c (verify_ssa):  Use %p in fprintf.  Use generic interface.
3106         (delete_tree_ssa): Don't call release_defs.  Call release_ssa_name and
3107         reset the immediate use link nodes.
3108         (stmt_references_memory_p): Use ZERO_SSA_OPERANDS.
3109         * tree-ssanames.c (make_ssa_name): Use use_operand_p.
3110         * tree-tailcall.c (find_tail_calls): Use ZERO_SSA_OPERANDS.
3111         (eliminate_tail_call): Use generic operand interface.
3112         * tree-vect-analyze.c (vect_analyze_data_refs): Use ZERO_SSA_OPERANDS.
3113         (vect_mark_relevant, vect_mark_stmts_to_be_vectorized): Use generic
3114         interface.
3115         * tree-vect-transform.c (update_vuses_to_preheader): Use generic
3116         interface.
3117         * tree-vectorizer.c (rename_variables_in_bb): Use generic interface.
3118         * tree-vn.c (struct val_expr_pair_d): Cache statment pointer instead of
3119         vuse_optype.
3120         (vn_compute, val_expr_pair_hash, vn_add, vn_lookup, vn_lookup_or_add):
3121         Use statement pointer instead of vuse_optype.  Use generic interface.
3122         * tree-vrp.c (maybe_add_assert_expr): Use generic interface.
3123         (stmt_interesting_for_vrp, vrp_visit_stmt): Use ZERO_SSA_OPERANDS.
3124         * tree.h (struct ssa_imm_use_d): Renamed to ssa_use_operand_d.
3125         (tree_ssa_name, phi_arg_d): Use ssa_use_operand_d.
3126         * doc/tree-ssa.texi: Update documentation for operand interface.
3127
3128 2005-05-03  Nathan Sidwell  <nathan@codesourcery.com>
3129
3130         * config/darwin.c (machopic_define_symbol): Use gcc_assert or
3131         gcc_unreachable as appropriate.
3132         (machopic_function_base_name, machopic_indirect_data_reference,
3133         machopic_legitimize_pic_address, darwin_non_lazy_pcrel): Likewise.
3134         * config/host-darwin.c (darwin_gt_pch_use_address): Likewise
3135         * config/rs6000/altivec.md (*mov<mode>_internal,
3136         build_vector_mask_for_load): Likewise.
3137         * config/rs6000/darwin.md (movdf_low_si, movdf_low_di,
3138         *call_nonlocal_darwin64, *call_value_nonlocal_darwin64,
3139         *sibcall_symbolic_64, *sibcall_value_symbolic_64): Likewise.
3140         * config/rs6000/predicates.md (easy_fp_constant,
3141         logical_operand): Likewise.
3142         * config/rs6000/rs6000.c (spe_expand_predicate_builtin,
3143         compute_save_world_info, rs6000_emit_prologue,
3144         rs6000_output_mi_thunk): Reword comments to avoid 'abort'.
3145         * config/rs6000/host-darwin.c (segv_handler): Use fancy_abort
3146         directly.
3147
3148 2005-05-03  Uros Bizjak  <uros@kss-loka.si>
3149
3150         PR middle-end/21282
3151         * convert.c (convert_to_integer): Convert ceil and floor in
3152         c99 mode only.
3153
3154 2005-04-29  Geoffrey Keating  <geoffk@apple.com>
3155
3156         PR target/20813
3157         * config/rs6000/rs6000.md (floatsidf2_internal): Merge to create
3158         define_insn_and_split.  Split only when memory operand is
3159         offsettable.  Use adjust_address rather than plus_constant.
3160         (floatunssidf2_internal): Likewise.
3161         (fix_truncdfsi2_internal): Split only when memory operand is
3162         offsettable.  Use adjust_address rather than plus_constant.
3163         (fix_trunctfsi2_internal): Likewise.
3164         (floatsidf2_internal): Likewise.
3165
3166 2005-05-02  Diego Novillo  <dnovillo@redhat.com>
3167
3168         * tree-vrp.c (set_value_range_to_nonnull): Declare inline.
3169         (set_value_range_to_null): Likewise.
3170         (set_value_range_to_varying): New function.  Use it in all
3171         call sites that used to call set_value_range (vr, VR_VARYING, ...).
3172         (extract_range_from_assert): If the integral type has a
3173         super-type, and LIMIT is not within MIN and MAX values of that
3174         type, set the resulting range to VR_VARYING.
3175
3176 2005-05-02  Hans-Peter Nilsson  <hp@bitrange.com>
3177
3178         * config/mmix/mmix.opt: New file.
3179         * config/mmix/mmix.h: Move options-related comments to mmix.opt.
3180         (mmix_cc1_ignored_option): Don't declare.
3181         (TARGET_OPTIONS, TARGET_MASK_LIBFUNCS, TARGET_MASK_ABI_GNU)
3182         (TARGET_MASK_FCMP_EPSILON, TARGET_MASK_ZERO_EXTEND)
3183         (TARGET_MASK_KNUTH_DIVISION, TARGET_MASK_TOPLEVEL_SYMBOLS)
3184         (TARGET_MASK_BRANCH_PREDICT, TARGET_MASK_USE_RETURN_INSN)
3185         (TARGET_MASK_BASE_ADDRESSES, TARGET_LIBFUNC, TARGET_ABI_GNU,
3186         (TARGET_FCMP_EPSILON, TARGET_ZERO_EXTEND, TARGET_KNUTH_DIVISION)
3187         (TARGET_TOPLEVEL_SYMBOLS, TARGET_BRANCH_PREDICT)
3188         (TARGET_BASE_ADDRESSES, TARGET_USE_RETURN_INSN, TARGET_SWITCHES):
3189         Don't define.
3190         (TARGET_DEFAULT): Change TARGET_MASK_... to MASK_...
3191         * config/mmix/mmix.c (mmix_cc1_ignored_option): Remove.
3192         (TARGET_DEFAULT_TARGET_FLAGS): Override default.
3193
3194 2005-05-02  Joseph S. Myers  <joseph@codesourcery.com>
3195
3196         PR c/15698
3197         * c-tree.h (C_DECL_BUILTIN_PROTOTYPE): New.
3198         * c-decl.c (current_function_prototype_built_in,
3199         current_function_prototype_arg_types): New.
3200         (merge_decls): Keep source location of prototype followed by
3201         nonprototype declaration.  Update C_DECL_BUILTIN_PROTOTYPE.
3202         (builtin_function): Set C_DECL_BUILTIN_PROTOTYPE.
3203         (start_function): Always set current_function_prototype_locus,
3204         current_function_prototype_built_in and
3205         current_function_prototype_arg_types.  Check for external
3206         prototype whether or not visible for external function and set
3207         current_function_prototype_arg_types accordingly.
3208         (store_parm_decls_oldstyle): Use
3209         current_function_prototype_arg_types for checking old-style
3210         definition against prototype.  Give warnings only if
3211         current_function_prototype_built_in).
3212
3213 2005-05-02  Daniel Jacobowitz  <dan@codesourcery.com>
3214
3215         * ggc.h (ggc_alloc_zone_pass_stat): New macro.
3216         (ggc_alloc_zone_stat): Don't define.
3217         * ggc-zone.c (ggc_alloc_typed_stat, ggc_alloc_stat): Use
3218         ggc_alloc_zone_pass_stat.
3219         * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Likewise.
3220         * tree.c (make_node_stat, copy_node_stat, make_tree_binfo_stat)
3221         (make_tree_vec_stat, tree_cons_stat, build1_stat): Likewise.
3222
3223 2005-05-02  Daniel Jacobowitz  <dan@codesourcery.com>
3224
3225         * calls.c (expand_call): Handle current_function_pretend_args_size
3226         when checking for sibcalls.
3227
3228 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
3229
3230         PR tree-optimization/21294
3231         * tree-vrp.c (vrp_expr_computes_nonzero): New.
3232         (extract_range_from_expr): Call vrp_expr_computes_nonzero.
3233
3234 2005-05-02  Janis Johnson  <janis187@us.ibm.com>
3235
3236         PR 19985
3237         * gcov-io.h: Declare gcov external functions hidden.
3238
3239 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
3240
3241         * tree-ssa-uncprop.c (equiv_hash_elt, remove_equivalence,
3242         record_equiv, tree_ssa_uncprop, uncprop_into_successor_phis):
3243         Use VEC instead of VARRAY.
3244         (equiv_free): New.
3245
3246         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Factor
3247         out common code.
3248
3249 2005-05-02  Paolo Bonzini  <bonzini@gnu.org>
3250
3251         * c-common.c (resolve_overloaded_builtin): Forward to target
3252         hook for BUILT_IN_MD built-ins.
3253         * c-typeck.c (finish_call_expr): Call resolve_overloaded_builtin
3254         for all types of built-in.
3255         * target-def.h (TARGET_RESOLVE_OVERLOADED_BUILTIN): New.  Use it
3256         in the definition of the target hooks struct.
3257         * target.h (struct gcc_target): Add resolve_overloaded_builtin.
3258         * config/rs6000/altivec.h: Rewritten.
3259         * config/rs6000/rs6000-c.c (struct altivec_builtin_types,
3260         altivec_resolve_overloaded_builtin, altivec_build_resolved_builtin,
3261         rs6000_builtin_type, rs6000_builtin_type_compatible,
3262         altivec_overloaded_builtins, rs6000_builtin_type,
3263         rs6000_builtin_type_compatible): New.
3264         * config/rs6000/rs6000.c (rs6000_builtin_types, rs6000_builtin_decls):
3265         New.
3266         (def_builtin): Turn into a function.  Check for duplicates and store
3267         the builtin into rs6000_builtin_decls.
3268         (bdesc_3arg, bdesc_dst, bdesc_altivec_preds, bdesc_2arg,
3269         bdesc_1arg): Add overloaded builtins.
3270         (altivec_expand_builtin): Check for unresolved overloaded builtins,
3271         do not support ALTIVEC_COMPILETIME_ERROR.
3272         (rs6000_init_builtins): Add opaque 128-bit vector, and internal
3273         nodes to represent front-end types.
3274         (altivec_init_builtins, rs6000_common_init_builtins): Create builtins
3275         with opaque arguments and/or return values.
3276         * config/rs6000/rs6000.h (enum rs6000_builtins): Remove
3277         ALTIVEC_COMPILETIME_ERROR and add Altivec overloaded builtins.
3278         (rs6000_builtin_type_index): New.
3279         (is_ev64_opaque_type): Rename to...
3280         (rs6000_is_opaque_type): ... this.
3281         (rs6000_cpu_cpp_builtins): Install the resolve_overloaded_builtin
3282         target hook.
3283
3284 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
3285
3286         * function.c (reorder_blocks, reorder_blocks_1): Use VEC
3287         instead of VARRAY.
3288
3289 2005-05-02  Nathan Sidwell  <nathan@codesourcery.com>
3290             Bernd Schmidt  <bernd.schmidt@analog.com>
3291
3292         * config/bfin/bfin.c (emit_link_insn, effective_address_32bit_p,
3293         print_address_operand, print_operand, legitimize_pic_address,
3294         asm_conditional_branch, bfin_gen_compare, output_push_multiple,
3295         output_pop_multiple): Use gcc_assert or gcc_unreachable as
3296         appropriate.
3297         * config/bfin/bfin.md (movsf splitter, beq, bne): Likewise.
3298
3299 2005-05-02  Dorit Naishlos  <dorit@il.ibm.com>
3300
3301         * doc/passes.texi: Document vectorization pass.
3302
3303 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
3304
3305         * tree-scalar-evolution.c (get_exit_conditions_rec,
3306         select_loops_exit_conditions,
3307         number_of_iterations_for_all_loops,
3308         analyze_scalar_evolution_for_all_loop_phi_nodes,
3309         scev_analysis): Use VEC instead of VARRAY.
3310
3311 2005-05-02  Michael Matz  <matz@suse.de>
3312
3313         PR c++/19542
3314         * c-common.c (c_common_nodes_and_builtins): Create global null_node.
3315         (warn_strict_null_sentinel): Define.
3316         (check_function_sentinel): Check for null_node as valid sentinel too.
3317         * c-common.h (c_tree_index): Added CTI_NULL.
3318         (null_node) Define global_tree[CTI_NULL].
3319         (warn_strict_null_sentinel): Declare.
3320         * c-opts.c: (c_common_handle_option): Handle -Wstrict-null-sentinel.
3321         * c.opt: (Wstrict-null-sentinel): New C++ option.
3322         * doc/invoke.texi (C++ Options): Document -Wstrict-null-sentinel.
3323
3324 2005-05-01  Kazu Hirata  <kazu@cs.umass.edu>
3325
3326         * gimplify.c (gimplify_compound_lval): Use VEC instead of
3327         VARRAY.
3328
3329         * global.c (calculate_reg_pav): Use VEC instead of VARRAY.
3330
3331         * dwarf2out.c (decl_scope_table, push_decl_scope,
3332         pop_decl_scope, scope_die_for, dwarf2out_init): Use VEC
3333         instead of VARRAY.
3334
3335 2005-05-01  Mark Mitchell  <mark@codesourcery.com>
3336
3337         PR C++/14391
3338         * c-cppbuiltin.c (c_cpp_builtins): Do not define __GXX_WEAK__ to 1
3339         if !flag_weak.
3340         * doc/cpp.texi (__DEPRECATED): Document.
3341         (__EXCEPTIONS): Likewise.
3342         (__GXX_WEAK__): Likewise.
3343
3344         * function.c (INVOKE__main): Do not define.
3345         (expand_main_function): Check HAS_INIT_SECTION when determining
3346         whether or not to call __main.
3347
3348 2005-05-01  Kazu Hirata  <kazu@cs.umass.edu>
3349
3350         * tree-ssa-loop-ivopts.c: Fix a comment typo.
3351
3352 2005-01-05  Paul Brook  <paul@codesourcery.com>
3353
3354         * config/arm/arm.h (ARM_EMIT_TRAMPOLINE_CACHE_CLEAR): Define.
3355         (INITIALIZE_TRAMPOLINE): Use it.
3356         * config/arm/linux-gas.h (INITIALIZE_TRAMPOLINE): Remove.
3357         * config/arm/netbsd.h (INITIALIZE_TRAMPOLINE): Remove.
3358         * config/arm/netbsd-elf.h (INITIALIZE_TRAMPOLINE): Remove.
3359
3360 2005-05-01  Gerald Pfeifer  <gerald@pfeifer.com>
3361
3362         * doc/install.texi (Specific): Omit dots in the @anchors names
3363         for i?86-*-sco3.2v5*, i?86-*-solaris2.10, and sparc-sun-solaris2.7.
3364         Omit underscores for x86_64-*-* and the "all ELF targets" entry.
3365
3366 2005-05-01  Zdenek Dvorak  <dvorakz@suse.cz>
3367
3368         PR tree-optimization/18316
3369         PR tree-optimization/19126
3370         * tree.c (build_int_cst_type): Avoid shift by size of type.
3371         * tree-scalar-evolution.c (simple_iv): Add allow_nonconstant_step
3372         argument.
3373         * tree-scalar-evolution.h (simple_iv): Declaration changed.
3374         * tree-ssa-loop-ivopts.c (struct iv_cand): Add depends_on
3375         field.
3376         (dump_cand): Dump depends_on information.
3377         (determine_biv_step): Add argument to simple_iv call.
3378         (contains_abnormal_ssa_name_p): Handle case expr == NULL.
3379         (find_bivs, find_givs_in_stmt_scev): Do not require step to be a
3380         constant.
3381         (add_candidate_1): Record depends_on for candidates.
3382         (tree_int_cst_sign_bit, constant_multiple_of): New functions.
3383         (get_computation_at, get_computation_cost_at, may_eliminate_iv):
3384         Handle ivs with nonconstant step.
3385         (iv_ca_set_remove_invariants, iv_ca_set_add_invariants): New functions.
3386         (iv_ca_set_no_cp, iv_ca_set_cp): Handle cand->depends_on.
3387         (create_new_iv): Unshare the step before passing it to create_iv.
3388         (free_loop_data): Free cand->depends_on.
3389         (build_addr_strip_iref): New function.
3390         (find_interesting_uses_address): Use build_addr_strip_iref.
3391         (strip_offset_1): Split the recursive part from strip_offset.
3392         Strip constant offset component_refs and array_refs.
3393         (strip_offset): Split the recursive part to strip_offset_1.
3394         (add_address_candidates): Removed.
3395         (add_derived_ivs_candidates): Do not use add_address_candidates.
3396         (add_iv_value_candidates): Add candidates with stripped constant
3397         offset.  Consider all candidates with initial value 0 important.
3398         (struct affine_tree_combination): New.
3399         (aff_combination_const, aff_combination_elt, aff_combination_scale,
3400         aff_combination_add_elt, aff_combination_add,
3401         tree_to_aff_combination, add_elt_to_tree, aff_combination_to_tree,
3402         fold_affine_sum): New functions.
3403         (get_computation_at): Use fold_affine_sum.
3404         * tree-ssa-loop-manip.c (create_iv): Handle ivs with nonconstant step.
3405         * tree-ssa-loop-niter.c (number_of_iterations_exit): Add argument
3406         to simple_iv call.
3407
3408 2005-04-30  Michael Matz  <matz@suse.de>
3409
3410         * config/i386/i386.md (movmemsi): Also active when
3411         TARGET_INLINE_ALL_STRINGOPS.
3412
3413 2005-04-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
3414
3415         PR bootstrap/20633
3416         * config/freebsd-spec.h (FBSD_CPP_SPEC): Add %(cpp_arch).
3417
3418 2005-04-30  Paul Brook  <paul@codesourcery.com>
3419
3420         * config/arm/bpabi.h (RENAME_LIBRARY_SET): Always use .thumb_set in
3421         thumb mode.
3422         * config/arm/ieee754-df.S: Use __INTERWORKING_STUBS__.
3423         * config/arm/ieee754-sf.S: Ditto.
3424         * config/arm/lib1funcs.asm: Define and use __INTERWORKING_STUBS__.
3425         (FUNC_ALIAS): Use .thumb_set for thumb routines.
3426
3427 2005-04-30  Kazu Hirata  <kazu@cs.umass.edu>
3428
3429         * tree-ssanames.c: Fix a comment typo.
3430         * doc/options.texi: Fix a typo.
3431
3432 2005-04-30  Nathan Sidwell  <nathan@codesourcery.com>
3433
3434         * config/h8300/h8300.c (byte_reg): Use gcc_assert and
3435         gcc_unreachable as appropriate.
3436         (split_adds_subs, cond_string, print_operand,
3437         h8300_initial_elimination_offset, h8300_classify_operand,
3438         h8300_unary_length, h8300_short_immediate_length,
3439         h8300_bitfield_length, h8300_binary_length,
3440         h8300_insn_length_from_table, compute_mov_length, output_plussi,
3441         compute_plussi_length, compute_plussi_cc, output_logical_op,
3442         compute_logical_op_length, compute_logical_op_cc,
3443         output_h8sx_shift, get_shift_alg, h8300_shift_needs_scratch_p,
3444         output_a_shift, compute_a_shift_length, compute_a_shift_cc,
3445         output_a_rotate, compute_a_rotate_length, fix_bit_operand,
3446         h8300_regs_ok_for_stm): Likewise.
3447         * config/h8300/h8300.md (*movsi_h8300, *movsf_h8300,
3448         monitor_prologue): Likewise.
3449
3450 2005-04-30  Kazu Hirata  <kazu@cs.umass.edu>
3451
3452         * loop-invariant.c (invariants, create_new_invariant,
3453         get_inv_cost, best_gain_for_invariant,
3454         find_invariants_to_move, move_invariants,
3455         init_inv_motion_data, free_inv_motion_data): Use VEC instead
3456         of VARRAY.
3457
3458 2005-04-29  Richard Henderson  <rth@redhat.com>
3459
3460         * function.c (instantiate_decls): Remove valid_only argument.
3461         (instantiate_decls_1, instantiate_decl): Likewise.
3462         (instantiate_virtual_regs_1): Delete.
3463         (instantiate_virtual_regs_lossage): Delete.
3464         (instantiate_virtual_regs_in_rtx): New.
3465         (safe_insn_predicate): New.
3466         (instantiate_virtual_regs_in_insn): New.
3467         (instantiate_virtual_regs): Update to match all that.  Only run
3468         instantiate_decls once.
3469
3470 2005-04-29  Richard Henderson  <rth@redhat.com>
3471             Daniel Jacobowitz  <dan@codesourcery.com>
3472
3473         * gengtype.c (write_func_for_structure): Split out ...
3474         (output_type_enum): ... new function.  Fix thinko accessing
3475         TYPE_PARAM_STRUCT data.
3476
3477 2005-04-29  Tom Tromey  <tromey@redhat.com>
3478
3479         * tree.c (build_block): Removed unused 'tags' argument.
3480         * tree.h (build_block): Removed argument.
3481
3482 2005-04-29  Michael Matz  <matz@suse.de>
3483
3484         PR rtl-optimization/21144
3485         * postreload.c (reload_cse_move2add): Check for VOIDmode.
3486
3487 2005-04-29  Bob Wilson  <bob.wilson@acm.org>
3488
3489         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Define to disable
3490         flag_reorder_blocks.
3491
3492 2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
3493
3494         PR tree-optimization/21030
3495         * tree-vrp.c (adjust_range_with_scev): Do not create invalid
3496         ranges where VR->MAX is smaller than VR->MIN.
3497
3498 2005-04-29  Devang Patel  <dpatel@apple.com>
3499
3500         PR tree-optimization/21272
3501         PR tree-optimization/21266
3502         * tree-if-conv.c (find_phi_replacement_condition): Fix think-o.
3503
3504 2005-04-29  Kazu Hirata  <kazu@cs.umass.edu>
3505
3506         * tree-flow-inline.h: Fix a comment typo.
3507         * doc/tree-ssa.texi: Fix a typo.
3508
3509         * tree-flow-inline.h, tree-ssa-operands.c: Fix comment typos.
3510
3511 2005-04-29  Nathan Sidwell  <nathan@codesourcery.com>
3512
3513         * config/fr30/fr30.c (fr30_expand_prologue): Use gcc_assert and
3514         gcc_unreachable as appropriate.
3515         (fr30_expand_epilogue, fr30_setup_incoming_varargs,
3516         fr30_print_operand, fr30_move_double): Likewise.
3517         * config/fr30/fr30.md (*movsi_internal, *movsf_internal): Likewise.
3518
3519 2005-04-29  Mark Mitchell  <mark@codesourcery.com>
3520
3521         * config/arm/arm.h (ARM_EABI_CTORS_SECTION_OP): Do not define if a
3522         definition has already been provided.
3523         (ARM_EABI_DTORS_SECTION_OP): Likewise.
3524         * config/arm/symbian.h (ARM_EABI_CTORS_SECTION_OP): Define.
3525         (ARM_EABI_DTORS_SECTION_OP): Likewise.
3526
3527 2005-04-29  Jim Tison  <jtison@us.ibm.com>
3528
3529         * config/s390/s390.md ("prologue_tpf", "epilogue_tpf"): Alter
3530         trace hooks calls to improve performance.
3531
3532 2005-04-29  Julian Brown  <julian@codesourcery.com>
3533             Mark Mitchell  <mark@codesourcery.com>
3534             Paul Brook  <paul@codesourcery.com>
3535
3536         * crtstuff.c: Handle targets that use .init_array.
3537         * function.c (HAS_INIT_SECTION): Do not define. Instead, make sure
3538         that INVOKE__main is set correctly.
3539         (expand_main_function): Test INVOKE__main.
3540         * libgcc2.c: Do not define __main when using .init_array.
3541         * config/arm/arm.c (arm_elf_asm_constructor): New function.
3542         * config/arm/arm.h (CTORS_SECTION_ASM_OP): Define, with specialized
3543         libgcc version.
3544         (DTORS_SECTION_ASM_OP): Likewise.
3545         (CTOR_LIST_BEGIN): Define specially when in libgcc.
3546         (CTOR_LIST_END): Likewise.
3547         (DTOR_LIST_BEGIN): Likewise.
3548         (DTOR_LIST_END): Likewise.
3549         * config/arm/bpapi.h (INIT_SECTION_ASM_OP): Do not define it.
3550         (FINI_SECTION_ASM_OP): Likewise.
3551         (INIT_ARRAY_SECTION_ASM_OP): Define.
3552         (FINI_ARRAY_SECTION_ASM_OP): Likewise.
3553         * config/arm/elf.h (TARGET_ASM_CONSTRUCTOR): Define.
3554         (SUPPORTS_INIT_PRIORITY): Evaluate to false for EABI based targets.
3555         * doc/tm.texi (INIT_ARRAY_SECTION_ASM_OP): Document.
3556         (FINI_ARRAY_SECTION_ASM_OP): Likewise.
3557
3558 2005-04-29  Nathan Sidwell  <nathan@codesourcery.com>
3559
3560         * config/m68k/m68k.c (m68k_initial_elimination_offset): Use
3561         gcc_assert and gcc_unreachable as appropriate.
3562         (output_dbcc_and_branch, output_scc_di, legitimize_pic_address,
3563         const_int_cost, output_move_const_into_data_reg,
3564         output_move_qimode, output_move_double, find_addr_reg,
3565         print_operand, print_operand_address): Likewise.
3566         * config/m68k/m68k.md (adddi3, subdi3, negsf2, negdf2, abssf2,
3567         absdf2, sordered, sunordered, suneq, sunge, sungt, sunle, sunlt,
3568         sltgt, bordered, bunordered, buneq, bunge, bungt, bunle, bunlt,
3569         bltgt, *bordered_rev, *bunordered_rev, *buneq_rev, *bunge_rev,
3570         *bunle_rev, *bunlt_rev, *bltgt_rev, negxf2, absxf2,
3571         conditional_trap): Likewise.
3572         * config/m68k/m68kelf.h (ASM_OUTPUT_ALIGN): Remove unreachable code.
3573
3574 2005-04-29  Nathan Sidwell  <nathan@codesourcery.com>
3575
3576         * config/xtensa/xtensa.c (gen_int_relational): Use gcc_assert and
3577         gcc_unreachable as appropriate.
3578         (gen_conditional_move, xtensa_split_operand_pair,
3579         xtensa_split_operand_pair, xtensa_copy_incoming_a7,
3580         xtensa_copy_incoming_a7, xtensa_copy_incoming_a7,
3581         xtensa_copy_incoming_a7, xtensa_output_literal,
3582         xtensa_output_literal, xtensa_output_literal): Likewise.
3583         * config/xtensa/xtensa.h (INITIAL_ELIMINATION_OFFSET): Likewise.
3584         * config/xtensa/xtensa.md (*btrue, *bfalse, *ubtrue, *ubfalse,
3585         *bittrue, *bitfalse, *masktrue, *maskfalse, movsicc_internal0,
3586         movsicc_internal1, movsfcc_internal0,
3587         movsfcc_internal1): Likewise.
3588
3589 2005-04-28  James E Wilson  <wilson@specifixinc.com>
3590
3591         * config/i386/i386.h (HI_REGISTER_NAMES): Fix typos in comment.
3592         (ADDITIONAL_REGISTER_NAMES): Delete obsolete mmx register entries.
3593
3594 2005-04-28  DJ Delorie  <dj@redhat.com>
3595
3596         * opt-functions.awk (var_set): Emit proper initializer for
3597         non-target bitfields.
3598
3599 2005-04-28  Devang Patel  <dpatel@apple.com>
3600
3601         * dbxout.c (have_used_extensions): Remove.
3602         (dbxout_type_fileds, dbxout_type, dbxout_symbol): Remove use of
3603         have_used_extensions.
3604
3605 2005-04-28  James E Wilson  <wilson@specifixinc.com>
3606
3607         * doc/install.texi: Update -enable-languages info.  Correct path to
3608         html docs.
3609
3610 2005-04-28  DJ Delorie  <dj@redhat.com>
3611
3612         * optc-gen.awk (END): Make sure no variable is defined more
3613         than once.
3614         * opth-gen.awk (END): Allocate bits on a per-variable basis.
3615         Allow for bitfield variables other than target_flags.
3616         * doc/options.text (Mask): Document that you may specify a
3617         variable other than target_flags.
3618
3619 2005-04-28  Martin Koegler <mkoegler@auto.tuwien.ac.at>
3620
3621         PR rtl-optimization/18877
3622         * reload.c (decompose) <case REG, case SUBREG>: Handle pseudo reg
3623         number in val.start.
3624
3625 2005-04-28  David Edelsohn  <edelsohn@gnu.org>
3626
3627         PR target/20813
3628         * config/rs6000/aix43.h (SUBSUBTARGET_SWITCHES, aix64): Add
3629         MASK_PPC_GFXOPT.
3630         * config/rs6000/aix51.h (SUBSUBTARGET_SWITCHES, aix64): Same.
3631         * config/rs6000/aix52.h (SUBSUBTARGET_SWITCHES, aix64): Same.
3632         * config/rs6000/sysv4.h (SUBTARGET_SWITCHES, 64): Same.
3633
3634 2005-04-28  Richard Earnshaw  <richard.earnshaw@arm.com>
3635
3636         * arm.c (legitimize_pic_address): Fix sense of assertion test for
3637         creating pseudos when the base offset is too large.
3638
3639 2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
3640
3641         * global.c (earlyclobber_regclass): Change the type to
3642         VEC(int,heap).
3643         (check_earlyclobber): Update uses of earlyclobber_regclass.
3644         (mark_reg_use_for_earlyclobber): Likewise.
3645         (calculate_local_reg_bb_info): Allocate and free
3646         earlyclobber_regclass using the VEC API.
3647
3648 2005-04-28  Nathan Sidwell  <nathan@codesourcery.com>
3649
3650         * tree-ssa-alias.c (push_fields_onto_fieldstack): Remove bogus
3651         assert.
3652
3653 2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
3654
3655         * modulo-sched.c, tree-stdarg.c: Use targetm.foo instead of
3656         (*targetm.foo).
3657
3658         * config.gcc: Obsolete c4x-* and tic4x-*.
3659
3660         * tree.h (edge_def): Remove.
3661
3662         * bt-load.c, cfgexpand.c, dwarf2out.c, emit-rtl.c, expr.c,
3663         function.c, global.c, lcm.c, loop-invariant.c, optabs.c,
3664         reorg.c, resource.c, tree-ssa-loop-ivopts.c, value-prof.c: Use
3665         JUMP_P, LABEL_P, REG_P, MEM_P, NONJUMP_INSN_P, and INSN_P
3666         where appropriate.
3667
3668         * attribs.c, c-pragma.c, caller-save.c, cfghooks.h,
3669         coverage.c, cselib.h, domwalk.c, domwalk.h, errors.c,
3670         errors.h, gcov-dump.c, gcov-io.c, gcov-io.h, gen-protos.c,
3671         genattrtab.h, genextract.c, gthr-win32.h, insn-notes.def,
3672         integrate.c, lambda-mat.c, lambda.h, libgcov.c, local-alloc.c,
3673         machmode.def, mips-tfile.c, params.c, pretty-print.c,
3674         print-rtl.c, protoize.c, regmove.c, sched-vis.c, tree-chrec.h,
3675         tree-data-ref.h, vec.h, config/darwin-c.c, config/sol2-c.c,
3676         config/sol2.c, config/arm/arm-cores.def, config/arm/cirrus.md,
3677         config/arm/symbian.h, config/c4x/c4x.c, config/c4x/c4x.h,
3678         config/i386/cygming.h, config/i386/djgpp.h,
3679         config/i386/lynx.h, config/i386/netware.c,
3680         config/i386/winnt.c, config/ia64/ia64-c.c,
3681         config/iq2000/iq2000.c, config/m32r/little.h,
3682         config/m68k/m68k-protos.h, config/m68k/m68k.h,
3683         config/m68k/m68k.md, config/mcore/mcore.c,
3684         config/mcore/mcore.h, config/mmix/mmix.c, config/mmix/mmix.md,
3685         config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
3686         config/mn10300/mn10300.h, config/ns32k/netbsd.h,
3687         config/ns32k/ns32k.c, config/ns32k/ns32k.h,
3688         config/pa/pa-hpux11.h, config/pdp11/pdp11.c,
3689         config/pdp11/pdp11.h, config/rs6000/darwin.h,
3690         config/rs6000/default64.h, config/rs6000/rs6000-c.c,
3691         config/s390/2064.md, config/s390/2084.md,
3692         config/s390/s390-modes.def, config/s390/s390-protos.h,
3693         config/s390/tpf.h, config/sh/sh.h, config/sh/symbian.c,
3694         config/stormy16/stormy16.c, config/vax/vax-protos.h,
3695         config/vax/vax.c, config/vax/vax.h,
3696         config/xtensa/lib1funcs.asm, config/xtensa/xtensa.md: Update
3697         copyright.
3698
3699 2005-04-28  Joseph S. Myers  <joseph@codesourcery.com>
3700
3701         * c-typeck.c (build_compound_expr): Correct logic in last change.
3702
3703 2005-04-27  James E. Wilson  <wilson@specifixinc.com>
3704
3705         * config/ia64/ia64.c (update_set_flags): Delete ppred and pcond
3706         parameters.  Replace conditional move code with assert checking for
3707         ar.lc.  Delete obsolete comments.
3708         (set_src_needs_barrier): Delete cond parameter, and code using it.
3709         (rtx_needs_barrier): Delete initialization of cond.  Fix typo in
3710         assert checking for PR_REGS.  Fix calls to update_set_flags and
3711         set_src_needs_barrier.
3712         (group_barrier_needed): Renamed from group_barrier_needed_p.  Fix all
3713         callers.  Rewrite explanatory comment before the function.
3714         (safe_group_barrier_needed): Renamed from safe_group_barrier_needed_p.
3715         Fix all callers.
3716
3717 2005-04-27  Mike Stump  <mrs@apple.com>
3718
3719         * doc/cpp.texi: gcc now implements universal character names.
3720
3721 2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
3722
3723         PR c/21159
3724         * c-typeck.c (build_compound_expr): Don't warn for left-hand side
3725         being a compound expression whose right-hand side is cast to void.
3726
3727 2005-04-27  Caroline Tice  <ctice@apple.com>
3728
3729         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
3730         Remove targetm.have_named_sections test.
3731         (fix_edges_for_rarely_executed_code): Likewise.
3732         (insert_section_boundary_note): Likewise.
3733         (reorder_basic_blocks): Check partitioning flag before calling
3734         verify_hot_cold_block_grouping.
3735         * dbxout.c (dbxout_function_end): Get hot/cold section labels from
3736         the function struct rather than global variables.
3737         * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
3738         (COLD_END_LABEL): Likewise
3739         (cold_text_section_label): New static global variable.
3740         (cold_end_label): Likewise.
3741         (dwarf2out_switch_text_section): Get hot/cold section labels from
3742         the function struct rather than global variables; test to make sure
3743         cfun is defined.
3744         (output_aranges): Use cold_text_section_label and cold_end_label;
3745         check partitioning flag before putting out delta.
3746         (output_ranges): Remove incorrect code attempting to use
3747         hot/cold labels.
3748         (output_line_info): Get cold section label from function struct; test
3749         to make sure cfun is defined.
3750         (add_location_or_const_value_attribute): Likewise.
3751         (dwarf2out_var_location): Likewise.
3752         (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
3753         write out cold_text_section_label if partition flag is set.
3754         (dwarf2out_finish): Write out cold_end_label if partition flag is set;
3755         * function.h (struct function): Add new fields to point to hot/cold
3756         section labels: hot_section_label, cold_section_label,
3757         hot_section_end_label and cold_section_end_label; also add new field
3758         for cold text section name, unlikely_text_section_name.
3759         * opts.c (decode_options): Turn off partitioning flag if
3760         !targetm.have_named_sections.
3761         * output.h (hot_section_label): Remove.
3762         (hot_section_end_label): Remove.
3763         (cold_section_end_label): Remove.
3764         (unlikely_section_label): Remove.
3765         (unlikely_text_section_name): Remove.
3766         * passes.c (rest_of_handle_final):  Remove extra blank line.
3767         * varasm.c (unlikely_section_label): Remove.
3768         (hot_section_label): Remove.
3769         (hot_section_end_label): Remove.
3770         (cold_section_end_label): Remove.
3771         (unlikely_text_section_name):  Remove.
3772         (initialize_cold_section_name): Modify to call
3773         targetm.strip_name_encoding; to store cold section name in current
3774         function struct, if it exists; and to only use the decl_section_name
3775         if flag_named_sections is true.
3776         (unlikely_text_section): Modify to get section name out of current
3777         function struct, if there is one; otherwise build it from
3778         UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
3779         (in_unlikely_text_section): Likewise.
3780         (named_section): Modify to get/put cold section name in current function
3781         struct, if there is one.
3782         (function_section):  Change 'bool unlikely' to 'int reloc'; check
3783         targetm.have_named_sections before calling named_section.
3784         (current_function_section): Likewise.
3785         (assemble_start_function): Modify to get/put unlikely_text_section_name
3786         in current function struct; modify to get hot/cold section labels
3787         from function struct; initialize labels using
3788         ASM_GENERATE_INTERNAL_LABEL;
3789         test partitioning flag before writing out hot section label.
3790         (assemble_end_function): Test partitioning flag before writing out
3791         hot/cold section labels.
3792         (default_section_type_flags_1):  Get cold text section name from
3793         function struct if there is one; Set flags correctly for
3794         cold text section if there is not a current function struct.
3795
3796 2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
3797
3798         * tree-ssa-propagate.c (set_rhs): Revert last change.
3799
3800 2005-04-27  Steve Ellcey  <sje@cup.hp.com>
3801
3802         * explow.c (convert_memory_address): Add gcc_assert.
3803
3804 2005-04-27  Mark Mitchell  <mark@codesourcery.com>
3805
3806         * configure.ac: Check for ld --sysroot support.
3807         * gcc.c: Document %R specifier for specs.
3808         (SYSROOT_SPEC): New macro.
3809         (sysroot_spec): New variable.
3810         (static_specs): Add sysroot_spec.
3811         (main): Pass the sysroot spec to the linker if appropriate.
3812         * configure: Regenerated.
3813         * config.in: Likewise.
3814
3815 2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
3816
3817         * fold-const.c (fold_binary): Use build_fold_addr_expr
3818         for address calculation and INDIRECT_REF handling.
3819
3820 2005-04-27  Andrew Haley  <aph@redhat.com>
3821
3822         * postreload-gcse.c (hash_scan_set): Remove bogus assertion.
3823
3824 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
3825
3826         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Reserve arm frame
3827         pointer when thumb backtracing is on.
3828
3829         * config/fp-bit.c (abort): Revert change.
3830
3831 2005-04-27  Ian Lance Taylor  <ian@airs.com>
3832
3833         * c-semantics.c (add_stmt): Don't test STATEMENT_CODE_P.
3834
3835 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
3836
3837         * tree-ssa-dce.c: Fix a comment typo.
3838
3839 2005-04-27  David S. Miller  <davem@davemloft.net>
3840
3841         * explow.c (allocate_dynamic_stack_space SETJMP_VIA_SAVE_AREA):
3842         Kill setjmpless_size.  current_function_calls_setjmp is completely
3843         computed when we are called, so just use the optimized size value
3844         instead of using REG_SAVE_AREA notes.
3845         (optimize_save_area_alloca): Delete....
3846         * rtl.h (optimize_save_area_alloca): Likewise...
3847         * passes.c (rest_of_compilation): and don't call it any more.
3848         * reg-notes.def (SAVE_AREA): Delete.
3849
3850 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
3851
3852         * config/fp-bit.c (abort): Add noreturn attribute.
3853
3854         * config/avr/avr.c (avr_naked_function_p): Use gcc_assert and
3855         gcc_unreachable as appropriate.
3856         (ptrreg_to_str, cond_string, avr_normalize_condition): Likewise.
3857         * config/avr/avr.h (ASM_OUTPUT_REG_PUSH,
3858         ASM_OUTPUT_REG_POP): Likewise.
3859
3860 2005-04-27  Paolo Bonzini  <bonzini@gnu.org>
3861
3862         * tree-complex.c (expand_vector_operations_1): Do not build
3863         VIEW_CONVERT_EXPR's for the lhs.
3864
3865 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
3866
3867         * config/pa/pa.h (PRINT_OPERAND_ADDRESS): Use gcc_assert, remove
3868         unnecessary noncanonical RTL handling.
3869         * config/pa/pa64-linux.h (INITIAL_ELIMINATION_OFFSET): Use
3870         gcc_assert and gcc_unreachable.
3871
3872         * config/arm/arm.h (ARM_PRINT_OPERAND_ADDRESS): Use gcc_assert and
3873         gcc_unreachable as appropriate.
3874         (THUMB_PRINT_OPERAND_ADDRESS): Likewise.
3875         * config/arm/arm.c (arm_override_options, arm_compute_func_type,
3876         use_return_insn, const_ok_for_op, arm_gen_constant,
3877         arm_canonicalize_comparison, legitimize_pic_address,
3878         thumb_find_work_register, arm_load_pic_register, arm_rtx_costs_1,
3879         arm_cirrus_insn_p, cirrus_reorg, minmax_code,
3880         load_multiple_sequence, emit_ldm_seq, store_multiple_sequence,
3881         emit_stm_seq, arm_gen_movmemqi, arm_select_dominance_cc_mode,
3882         arm_select_cc_mode, arm_reload_in_hi, arm_reload_out_hi,
3883         move_minipool_fix_forward_ref, move_minipool_fix_backward_ref,
3884         dump_minipool, create_fix_barrier, push_minipool_fix, arm_reorg,
3885         fp_immediate_constant, fp_const_from_val, vfp_output_fstmx,
3886         output_call, output_mov_long_double_fpa_from_arm,
3887         output_mov_long_double_arm_from_fpa,
3888         output_mov_double_fpa_from_arm, output_mov_double_arm_from_fpa,
3889         output_move_double, arithmetic_instr, shift_op, int_log2,
3890         output_return_instruction, arm_output_function_prologue,
3891         arm_output_epilogue, arm_output_function_epilogue,
3892         emit_multi_reg_push, arm_get_frame_offsets,
3893         arm_compute_initial_elimination_offset, arm_expand_prologue,
3894         arm_print_operand, arm_assemble_integer, get_arm_condition_code,
3895         arm_final_prescan_insn, arm_init_iwmmxt_builtins,
3896         arm_expand_binop_builtin, thumb_pushpop, thumb_far_jump_used_p,
3897         thumb_compute_initial_elimination_offset,
3898         thumb_output_function_prologue, thumb_load_double_from_address,
3899         thumb_output_move_mem_multiple, thumb_reload_out_hi,
3900         arm_emit_vector_const, arm_dbx_register_number): Likewise.
3901         * config/arm/pe.c (arm_mark_dllexport, arm_mark_dllimport): Likewise.
3902         * config/arm/arm.md (thumb_extendhisi2,
3903         *thumb_extendhisi2_insn_v6, *thumb_extendqisi2,
3904         *thumb_extendqisi2_v6, movhi, *thumb_movhi_insn,
3905         thumb_movhi_clobber, movqi, *arm_buneq, *arm_bltgt,
3906         *arm_buneq_reversed, *arm_bltgt_reversed, suneq, sltgt): Likewise.
3907         * config/arm/cirrus.md (*cirrus_arm_movdi,
3908         *cirrus_movdf_hard_insn): Likewise.
3909         * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
3910
3911 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
3912
3913         * tree-flow.h (ssa_names): Change the type to VEC(tree,gc).
3914         (num_ssa_names): Use VEC_length.
3915         (ssa_names): Use VEC_index.
3916         * tree-ssanames.c (ssa_names): Change the type to
3917         VEC(tree,gc).
3918         (init_ssanames, fini_ssa_names, make_ssanames,
3919         release_ssa_name): Update uses of ssa_names.
3920
3921         * dojump.c, emit-rtl.c, expmed.c, expr.c, stmt.c, stor-layout.c:
3922         Use fold_buildN instead of fold (buildN (...)).
3923
3924 2005-04-27  Devang Patel <dpatel@apple.com>
3925
3926         * dbxout.c (dbxout_type): Check use_gnu_debug_info_extensions.
3927
3928 2005-04-27  Matt Thomas <matt@3am-software.com>
3929             Jan-Benedict Glaw <jbglaw@microdata-pos.de>
3930
3931         * config/vax/vax.c (vax_rtx_costs): Whitespace cleanup.
3932         (vax_output_mi_thunk): Ditto.
3933         (vax_notice_cc_update): Ditto.
3934         (INDEX_REGISTER_P): Add trailing \.
3935         (BASE_REGISTER_P): Add trailing \.
3936         (legitimate_address_p): Whitespace cleanup.  Remove trailing \.
3937
3938 2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
3939
3940         * tree-ssa-propagate.c (set_rhs): Check operand of
3941         ADDR_EXPR for gimpliness, too.
3942
3943 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
3944
3945         * tree-ssa-pre.c: Fix a comment typo.
3946
3947 2005-04-27  Zdenek Dvorak  <dvorakz@suse.cz>
3948
3949         PR tree-optimization/21171
3950         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not
3951         record address uses if the reference is volatile.
3952
3953 2004-04-27  Paolo Bonzini  <bonzini@gnu.org>
3954
3955         * tree-complex.c (expand_vector_operation): New, extracted from
3956         expand_vector_operations_1.
3957         (tree_vec_extract): Build a NOP_EXPR.
3958         (expand_vec_parallel): Do not care about returning the correct type.
3959         (expand_vector_operations_1): Call expand_vector_operation.
3960         Build the VIEW_CONVERT_EXPR on the left side of MODIFY_EXPRs.
3961
3962         * tree-complex.c (gate_expand_vector_operations): New.
3963         (pass_lower_vector_ssa): Use it.
3964         * tree-optimize.c (init_tree_optimization_passes): Include
3965         pass_lower_vector_ssa.
3966         * tree-vect-transform.c (vect_min_worthwhile_factor): New.
3967         (vectorizable_operation): Use it.
3968         * tree-vectorizer.c (get_vectype_for_scalar_type): Accept
3969         integer modes for the vector type.
3970
3971         * defaults.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
3972         * tree-vect-analyze.c (vect_enhance_data_refs_alignment):
3973         Do not cope with UNITS_PER_SIMD_WORD == 0.
3974         * tree-vectorizer.c (get_vectype_for_scalar_type): Check
3975         if the scalar type is not bigger than UNITS_PER_SIMD_WORD.
3976         (vectorize_loops): Do not check that UNITS_PER_SIMD_WORD > 0.
3977         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
3978         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
3979         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
3980         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
3981
3982         * config/alpha/alpha.h (UNITS_PER_SIMD_WORD): Remove.
3983         * config/bfin/bfin.h (UNITS_PER_SIMD_WORD): Remove.
3984         * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): Remove.
3985
3986         * doc/tm.texi (UNITS_PER_WORD): Rephrase more accurately.
3987         (UNITS_PER_SIMD_WORD): New.
3988
3989 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
3990
3991         * config/ia64/ia64.c (ia64_encode_addr_area): Use gcc_assert and
3992         gcc_unreachable as appropriate.
3993         (ia64_expand_load_address, ia64_expand_tls_address,
3994         ia64_split_tmode, ia64_split_tmode_move, ia64_expand_compare,
3995         ia64_expand_vecint_compare, ia64_expand_vecint_minmax,
3996         next_scratch_gr_reg, ia64_initial_elimination_offset,
3997         ia64_expand_prologue, ia64_expand_epilogue,
3998         ia64_output_dwarf_dtprel, ia64_print_operand,
3999         ia64_register_move_cost, first_instruction, rws_access_regno,
4000         update_set_flags, rtx_needs_barrier, group_barrier_needed_p,
4001         ia64_sched_init, ia64_variable_issue,
4002         ia64_first_cycle_multipass_dfs_lookahead_guard,
4003         ia64_dfa_new_cycle, issue_nops_and_insn, get_template, bundling,
4004         ia64_st_address_bypass_p, ia64_ld_address_bypass_p, process_set,
4005         process_for_unwind_directive, ia64_hpux_file_end): Likewise.
4006         * config/ia64/ia64.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
4007         * config/ia64/ia64.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
4008         * config/ia64/predicates.md (got_symbolic_operand,
4009         sdata_symbolic_operand): Likewise.
4010         * config/ia64/vect.md (vcondv2sf): Likewise.
4011
4012 2005-04-27  Matt Thomas <matt@3am-software.com>
4013
4014         * config/vax/vax.c (legitimate_constant_address_p): New.  Formerly
4015         CONSTANT_ADDRESS_P in config/vax/vax.h
4016         (legitimate_constant_p): Added.  Formerly CONSTANT_P in vax.h.
4017         (INDEX_REGISTER_P): New.
4018         (BASE_REGISTER_P): New.
4019         (indirectable_constant_address_p): New.  Adapted from
4020         INDIRECTABLE_CONSTANT_ADDRESS_P in vax.h. Use SYMBOL_REF_LOCAL_P.
4021         (indirectable_address_p): New.  Adapted from
4022         INDIRECTABLE_ADDRESS_P in vax.h.
4023         (nonindexed_address_p): New.  Adapted from
4024         GO_IF_NONINDEXED_ADDRESS in vax.h.
4025         (index_temp_p): New.  Adapted from INDEX_TERM_P in vax.h.
4026         (reg_plus_index_p): New.  Adapted from GO_IF_REG_PLUS_INDEX in vax.h.
4027         (legitimate_address_p): New.  Adapted from
4028         GO_IF_LEGITIMATE_ADDRESS in vax.h.
4029         (vax_mode_dependent_address_p): New.  Adapted from
4030         GO_IF_MODE_DEPENDENT_ADDRESS in vax.h.
4031         * config/vax/vax.h (CONSTANT_ADDRESS_P): Use
4032         legitimate_constant_address_p.
4033         (CONSTANT_P): Use legitimate_constant_p.
4034         (INDIRECTABLE_CONSTANT_ADDRESS_P): Removed.
4035         (INDIRECTABLE_ADDRESS_P): Removed.
4036         (GO_IF_NONINDEXED_ADDRESS): Removed.
4037         (INDEX_TEMP_P): Removed.
4038         (GO_IF_REG_PLUS_INDEX): Removed.
4039         (GO_IF_LEGITIMATE_ADDRESS): Use legitimate_address_p. Two
4040         definitions, depending on whether REG_OK_STRICT is defined.
4041         (GO_IF_MODE_DEPENDENT_ADDRESS): Use vax_mode_dependent_address_p.
4042         Two definitions, depending on whether REG_OK_STRICT is defined.
4043         * config/vax/vax-protos.h (legitimate_constant_address_p): Prototype
4044         added.
4045         (legitimate_constant_p): Prototype added.
4046         (legitimate_address_p): Prototype added.
4047         (vax_mode_dependent_address_p): Prototype added.
4048
4049 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
4050
4051         * tree.h (phi_arg_d): Expand a comment in phi_arg_d.
4052
4053 2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
4054
4055         PR c/21213
4056         * c-decl.c (finish_struct): Don't dereference NULL TYPE_FIELDS of
4057         transparent union.
4058
4059 2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
4060
4061         PR c/20740
4062         * c-format.c (init_dynamic_asm_fprintf_info): Give errors, not
4063         assertion failures, if __gcc_host_wide_int__ is not properly
4064         defined.
4065         (init_dynamic_diag_info): Give errors, not assertion failures, if
4066         location_t, tree or __gcc_host_wide_int__ are not properly
4067         defined.
4068
4069 2005-04-26  Kazu Hirata  <kazu@cs.umass.edu>
4070
4071         * tree-ssa-loop-ivopts.c (ivopts_data, decl_rtl_to_reset,
4072         n_iv_uses, iv_use, n_iv_cands, iv_cand,
4073         tree_ssa_iv_optimize_init, record_use, add_candidate_1,
4074         prepare_decl_rtl, free_loop_data,
4075         tree_ssa_iv_optimize_finalize): Use the VEC API instead of
4076         VARRAY.
4077
4078         * tree.h (tree_phi_node): Add a comment about the order of PHI
4079         arguments.
4080
4081 2005-04-26  Paul Brook  <paul@codesourcery.com>
4082
4083         * config/arm/arm.md (thumb_mulsi3): Use two-operand assembly form.
4084
4085 2005-04-26  Nathan Sidwell  <nathan@codesourcery.com>
4086
4087         * config/mips.mips.c (mips_legitimize_tls_address): Use
4088         gcc_unreachable.
4089
4090         * config/mmix/mmix.c (mmix_assemble_integer): Use gcc_assert.
4091         * config/mmix/crti.asm (_init): Reword comment to avoid 'abort'.
4092         * config/mmix/mmix.md (nonlocal_goto_receiver): Likewise.
4093
4094         * config/sparc/sparc.h (enum reg_class): Reword comment to avoid
4095         'abort'.
4096
4097 2005-04-26  Jeff Law  <law@redhat.com>
4098
4099         * tree-flow-inline.h (op_iter_next_must_and_may_def): New.
4100         (op_iter_init_must_and_may_def): Likewise.
4101         (unmodifiable_var_p): Move to a later point in the file.
4102         * tree-ssa-operands.h (FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): New.
4103         * tree-ssa-dse.c (need_imm_uses_for): Remove, no longer needed.
4104         (dse_record_phis): Directly check for virtual operands rather than
4105         using need_imm_uses_for.
4106         (dse_optimize_stmt): Handle V_MUST_DEF operands.  Handle case where
4107         store has multiple V_{MAY,MUST}_DEF operands.
4108
4109 2005-04-26  Andrew MacLeod  <amacleod@redhat.com>
4110
4111         * tree-cfg.c (bsi_replace): Delink immediate uses for the original
4112         stmt.
4113
4114 2005-04-26  Kazu Hirata  <kazu@cs.umass.edu>
4115
4116         * tree-cfg.c (lv_adjust_loop_header_phi): Speed up moving a
4117         call to find_edge outside a loop to go through a PHI chain.
4118
4119 2004-04-26  Richard Guenther  <rguenth@gcc.gnu.org>
4120
4121         PR tree-optimization/17598
4122         * fold-const.c (fold_binary): Fold comparisons of addresses
4123         of COMPONENT_REFs which reference the same field to
4124         comparisons of the addresses of the base objects.
4125
4126 2005-04-26  Julian Brown  <julian@codesourcery.com>
4127
4128         * config/arm/arm.c (arm_return_in_msb): New function.
4129         (arm_must_pass_in_stack): New function.
4130         (TARGET_RETURN_IN_MSB): Define target hook.
4131         (TARGET_MUST_PASS_IN_STACK): Define target hook.
4132         (arm_function_value): Pad small aggregate return.
4133         (arm_pad_arg_upward): New function.
4134         (arm_pad_reg_upward): New function.
4135         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Include complex values.
4136         (FUNCTION_ARG_PADDING): Define macro.
4137         (BLOCK_REG_PADDING): Define macro.
4138         (PAD_VARARGS_DOWN): Correct padding for AAPCS.
4139         * config/arm/arm-protos.h (arm_pad_arg_upward): Declare function.
4140         (arm_pad_reg_upward): Declare function.
4141
4142 2005-04-26  Kazu Hirata  <kazu@cs.umass.edu>
4143
4144         * basic-block.h (ei_cond): New.
4145         (FOR_EACH_EDGE): Call ei_cond.
4146
4147         PR tree-optimization/21047
4148         * fold-const.c (fold_binary): Abort on ASSERT_EXPR.
4149         (fold): Don't handle ASSERT_EXPR.
4150
4151 2005-04-25  Roger Sayle  <roger@eyesopen.com>
4152
4153         * sched-deps.c (sched_analyze_1): On STACK_REGS targets, x87, treat
4154         all writes to any stack register as a read/write dependency on
4155         FIRST_STACK_REG.
4156         (sched_analyze_2): Likewise, for reads from any stack register.
4157
4158 2005-04-25  Richard Henderson  <rth@redhat.com>
4159
4160         * final.c (output_addr_const): Revert 2005-04-09 change.
4161
4162 2005-04-25  Mike Stump  <mrs@apple.com>
4163
4164         * config/darwin.c (darwin_encode_section_info): Always set
4165         MACHO_SYMBOL_STATIC for all ! TREE_PUBLIC symbols.
4166
4167 2005-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4168
4169         * collect2.c, gcc.c, gcov-dump.c, gcov.c, gen-protos.c,
4170         gensupport.c, protoize.c, toplev.c: Replace calls to
4171         `unlock_stream' with `unlock_std_streams'.
4172
4173 2005-04-25  Devang Patel <dpatel@apple.com>
4174
4175         * dbxout.c (dbxout_type): Emit attribute vector.
4176
4177 2005-04-05  Paul Brook  <paul@codesourcery.com>
4178
4179         * target-def.h (TARGET_CXX_USE_AEABI_ATEXIT): Define.
4180         * target.h (struct gcc_target): Add cxx.use_aeabi_atexit.
4181         * config/arm/arm.c (arm_cxx_atexit_name): New function.
4182         (TARGET_CXX_USE_AEABI_ATEXIT): New macro.
4183         * cp/decl.c (get_atexit_node): Reorder arguments for __aeabi_atexit.
4184         (register_dtor_fn): Likewise.
4185         * doc/tm.texi: Document TARGET_CXX_USE_AEABI_ATEXIT.
4186
4187 2005-04-25  Ian Lance Taylor  <ian@airs.com>
4188
4189         * c-common.def (EXPR_STMT): Remove, moved to C++ frontend.
4190         * c-common.h (EXPR_STMT_EXPR): Don't define.
4191         (c_common_stmt_codes): Don't define.
4192         * c-dump.c (c_dump_tree): Remove EXPR_STMT case.
4193         * c-gimplify.c (gimplify_expr_stmt): Remove.
4194         (c_gimplify_expr): Remove EXPR_STMT case.
4195         * c-objc-common.c (c_objc_common_init): Remove stmt_codes and call
4196         to INIT_STATEMENT_CODES.
4197         * c-pretty-print.c (pp_c_statement): Just call dump_generic_node.
4198
4199 2005-04-25  Jan Hubicka  <jh@suse.cz>
4200
4201         * tree-cfg.c (tree_duplicate_bb): Duplicate EH region too.
4202
4203         * except.c: Include diagnostic.h
4204         (dump_eh_tree, verify_eh_tree): New functions.
4205         * except.h (verify_eh_tree, dump_eh_tree, verify_eh_edges): Declare.
4206         * tree-cfg.c (tree_verify_flow_info): verify eh edges.
4207         (dump_function_to_file): dump eh tree.
4208         * tree-eh.c (mark_eh_edge): New function.
4209         (mark_eh_edge_found_error): New static variable.
4210         (verify_eh_edges): New function.
4211
4212 2005-04-25  Nathan Sidwell  <nathan@codesourcery.com>
4213
4214         * tree-ssa-alias.c (fieldoff_t): Remove.
4215         (fieldoff_s): typedef the structure itself.  Create a vector of
4216         objects.
4217         (push_fields_onto_fieldstack): Return count of fields pushed.
4218         Remove peeling of first field.  Adjust.
4219         (fieldoff_compare): Adjust.
4220         (create_overlap_variables_for): Adjust.
4221
4222 2005-04-25  Joseph S. Myers  <joseph@codesourcery.com>
4223
4224         * doc/invoke.texi (Blackfin Options): Avoid empty @opindex line.
4225
4226 2005-04-25  Joseph S. Myers  <joseph@codesourcery.com>
4227
4228         PR bootstrap/21215
4229         * doc/install.texi: Document correct assembler and linker to use
4230         on i?86-*-solaris2.10.
4231
4232 2005-04-25  Steven Bosscher  <stevenb@suse.de>
4233
4234         Fix PR tree-optimization/21173
4235
4236         * tree-ssa-pre.c (create_expression_by_pieces): Simplify code.
4237         Unshare expression we pass to force_gimple_operand.
4238
4239 2005-04-25  J"orn Rennecke <joern.rennecke@st.com>
4240             Stephen Clarke <stevec@superh.com>
4241             Roger Sayle <roger@eyesopen.com>
4242
4243         PR rtl-optimization/20413
4244         * cfgrtl.c (redirect_edge_and_branch): Use Pmode instead of
4245         VOIDmode for LABEL_REF.
4246         * final.c (shorten_branches): Likewise.
4247         * jump.c (mark_all_labels, redirect_exp_1): Likewise.
4248         * loop.c (reg_dead_after_loop): Likewise.
4249         * varasm.c (decode_addr_const): Likewise.
4250         * doc/rtl.texi: Document mode requirement for LABEL_REF.
4251
4252 2005-04-25  Ralf Corsepius  <ralf.corsepius@rtems.org>
4253
4254         * config.gcc (avr-*-*): Remove redundant "case".
4255
4256 2005-04-25  Kazu Hirata  <kazu@cs.umass.edu>
4257
4258         * tree-vect-analyze.c (vect_mark_relevant): Take
4259         VEC(tree,heap) instead of varray_type as an argument.
4260         (vect_mark_stmts_to_be_vectorized): Change the type of
4261         worklist to VEC(tree,heap).  Adjust uses of worklist.
4262
4263 2005-04-24  Devang Patel  <dpatel@apple.com>
4264
4265         *  config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
4266
4267 2005-04-24  Ian Lance Taylor  <ian@airs.com>
4268
4269         * c-semantics.c (build_stmt): Remove test of specific tree codes
4270         for TREE_SIDE_EFFECTS handling.
4271
4272 2005-04-24  Per Bothner  <per@bothner.com>
4273
4274         * c-opts.c (finish_options):  Make the line-number of the <built-in>
4275         location 0, as assumed elsewhere, rather than 1.
4276
4277 2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
4278
4279         * tree-ssa-uncprop.c (equiv_stack): Change the type o
4280         VEC(tree,heap).
4281         (tree_ssa_uncprop, uncprop_finalize_block,
4282         uncprop_initialize_block): Update uses of equiv_stack.
4283
4284 2005-04-24  Richard Henderson  <rth@redhat.com>
4285
4286         PR rtl-opt/21163
4287         * simplify-rtx.c (simplify_binary_operation) <IOR>: Check
4288         for SCALAR_INT_MODE_P instead of not MODE_CC before returning
4289         constm1_rtx.
4290         <AND, LSHIFTRT, UMIN>: Use CONST0_RTX.
4291         <UDIV, UMOD>: Use CONST0_RTX and CONST1_RTX.
4292         <DIV, MOD>: Likewise.
4293
4294 2005-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4295
4296         * collect2.c (main): Unlock the stdio streams.
4297         * gcc.c (main): Likewise.
4298         * gcov-dump.c (main): Likewise.
4299         * gcov.c (main): Likewise.
4300         * gen-protos.c (main): Likewise.
4301         * gensupport.c (init_md_reader_args_cb): Likewise.
4302         * protoize.c (main): Likewise.
4303         * toplev.c (general_init): Likewise.
4304
4305 2005-04-24  Jakub Jelinek  <jakub@redhat.com>
4306
4307         PR middle-end/20991
4308         * cgraph.h (cgraph_local_info): Add vtable_method field.
4309         * varasm.c (mark_decl_referenced): If cgraph_global_info_ready
4310         and node is vtable_method, finalized and not reachable, don't do
4311         anything.
4312
4313 2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
4314
4315         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Use
4316         COMPARISON_CLASS_P.
4317         * tree-ssa-pre.c (create_value_expr_from): Use
4318         CONSTANT_CLASS_P and REFERENCE_CLASS_P.
4319         * tree-ssa-propagate.c (stmt_makes_single_load,
4320         stmt_makes_single_store): Use REFERENCE_CLASS_P.
4321         * tree-vect-transform.c (vect_is_simple_cond): Use
4322         COMPARISON_CLASS_P.
4323         * tree-vrp.c (extract_range_from_assert,
4324         build_assert_expr_for, fp_predicate, has_assert_expr): Use
4325         COMPARISON_CLASS_P.
4326
4327         * tree-ssa-live.c (build_tree_conflict_graph): Change the type
4328         of tpa_to_clear to VEC(int,heap).  Update uses of
4329         tpa_to_clear.  Free tpa_to_clear at the end.
4330
4331 2005-04-24  Andrew Pinski  <pinskia@physics.uc.edu>
4332
4333         * tree.h (TREE_THIS_VOLATILE): Document the effect on a
4334         function decl.
4335
4336 2005-04-24  Nathan Sidwell  <nathan@codesourcery.com>
4337
4338         * config/rs6000/rs6000.c (rs6000_override_options): Use gcc_assert
4339         and gcc_unreachable as appropriate.
4340         (num_insns_constant, output_vec_const_move,
4341         build_mask64_2_operands, rs6000_output_dwarf_dtprel,
4342         rs6000_emit_set_const, rs6000_emit_move,
4343         spe_build_register_parallel, function_arg,
4344         rs6000_move_block_from_reg, altivec_expand_predicate_builtin,
4345         spe_expand_predicate_builtin, spe_expand_evsel_builtin,
4346         rs6000_expand_builtin, spe_init_builtins, altivec_init_builtins,
4347         rs6000_common_init_builtins, expand_block_clear,
4348         expand_block_move, validate_condition_mode, ccr_bit, extract_MB,
4349         extract_ME, rs6000_get_some_local_dynamic_name,
4350         rs6000_output_function_entry, print_operand,
4351         print_operand_address, rs6000_generate_compare, rs6000_emit_sCOND,
4352         output_cbranch, output_e500_flip_gt_bit,
4353         rs6000_emit_vector_compare, rs6000_emit_vector_compare,
4354         rs6000_emit_cmove, rs6000_emit_minmax, rs6000_split_multireg_move,
4355         compute_save_world_info, rs6000_stack_info,
4356         rs6000_emit_load_toc_table, rs6000_frame_related,
4357         spe_synthesize_frame_save, rs6000_emit_epilogue,
4358         rs6000_output_function_epilogue, rs6000_hash_constant, output_toc,
4359         output_function_profiler, rs6000_trampoline_size,
4360         rs6000_initialize_trampoline, find_addr_reg,
4361         rs6000_machopic_legitimize_pic_address,
4362         rs6000_initial_elimination_offset,
4363         rs6000_dbx_register_number): Likewise.
4364         * config/rs6000/rs6000.md (*fix_truncdfsi2_internal,
4365         *movdf_hardfloat32, *movdf_softfloat32, *fix_trunctfsi2_internal,
4366         *movti_power, *movti_string, call, call_value, sibcall,
4367         sibcall_value): Likewise.
4368         * config/rs6000/spe.md (*movdf_e500_double,
4369         *movv2si_internal): Likewise.
4370         * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): Remove 'abort'
4371         from comment.
4372
4373 2005-04-24  Richard Henderson  <rth@redhat.com>
4374
4375         PR target/21101
4376         * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Move guts to ...
4377         * config/i386/i386.c (ix86_cannot_change_mode_class): ... here.
4378         Deny modes smaller than 4 bytes.
4379         * config/i386/i386-protos.h: Update.
4380
4381 2005-04-24  Ralf Corsepius  <ralf.corsepius@rtems.org>
4382
4383         * config.gcc (h8300-*-rtems*): Add h8300-*-rtemscoff*.
4384         Switch h8300-*-rtems* to ELF.
4385
4386 2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
4387
4388         * vec.h (VEC_safe_grow): Replace grow with safe_grow.
4389
4390 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
4391
4392         * ipa-inline.c, tree-ssa-operands.h: Fix comment typos.
4393
4394 2005-04-23  Richard Guenther  <rguenth@gcc.gnu.org>
4395
4396         PR middle-end/21082
4397         * fold-const.c: Fold &a[i]-&a[j] to i-j.
4398
4399 2005-04-23  Zdenek Dvorak  <dvorakz@suse.cz>
4400
4401         * tree-ssa-loop-niter.c (tree_simplify_using_condition): Expand simple
4402         definitions of ssa names in condition.  Split recusive part to ...
4403         (tree_simplify_using_condition_1): New function.
4404         (expand_simple_operations): New function.
4405
4406 2005-04-23  Zdenek Dvorak  <dvorakz@suse.cz>
4407
4408         * tree-ssa-loop-ivopts.c (struct cost_pair): Add value field.
4409         (find_interesting_uses_cond): Do not use integer_zerop and
4410         integer_nonzerop to check for integer constants.
4411         (set_use_iv_cost): Record the value field.
4412         (determine_use_iv_cost_generic, determine_use_iv_cost_address,
4413         determine_use_iv_cost_outer): Set the value field of the cost pair.
4414         (may_eliminate_iv): Do not return the comparison code.
4415         (iv_elimination_compare): New function.
4416         (determine_use_iv_cost_condition): Set the value field.  Record
4417         noneliminable invariants correctly.
4418         (rewrite_use_compare, rewrite_use_outer): Use the value field.
4419
4420 2005-04-23  DJ Delorie  <dj@redhat.com>
4421
4422         * diagnostic.c (warning): Accept parameter to classify warning option.
4423         (warning0): New, for when a pointer to an error() like function is needed.
4424         * errors.c (warning): Likewise.
4425         * errors.h (warning, warning0): Adjust prototypes.
4426         * toplev.h (warning, warning0): Likewise.
4427
4428         * attribs.c, builtins.c, c-common.c, c-decl.c, c-format.c,
4429         c-gimplify.c, c-lex.c, c-objc-common.c, c-opts.c, c-parser.c,
4430         c-pragma.c, c-typeck.c, calls.c, cgraph.c, coverage.c, emit-rtl.c,
4431         fold-const.c, fortran/trans-decl.c, function.c, gcse.c,
4432         genautomata.c, haifa-sched.c, opts.c, passes.c, regclass.c,
4433         reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
4434         tree-dump.c, tree-inline.c, tree-mudflap.c, tree-optimize.c,
4435         tree-ssa.c, tree.c, varasm.c: Adjust warning() callers.
4436
4437         * config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
4438         config/avr/avr.c, config/bfin/bfin.c, config/c4x/c4x-c.c,
4439         config/c4x/c4x.c, config/cris/cris.c, config/darwin-c.c,
4440         config/darwin.c, config/darwin.h, config/h8300/h8300.c,
4441         config/i386/cygming.h, config/i386/djgpp.h, config/i386/i386.c,
4442         config/i386/winnt.c, config/ia64/ia64-c.c, config/ia64/ia64.c,
4443         config/ip2k/ip2k.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c,
4444         config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.c,
4445         config/mmix/mmix.c, config/ns32k/ns32k.c, config/pa/pa-hpux11.h,
4446         config/pa/pa.c, config/rs6000/aix43.h, config/rs6000/aix51.h,
4447         config/rs6000/aix52.h, config/rs6000/darwin.h,
4448         config/rs6000/rs6000-c.c, config/rs6000/rs6000.c,
4449         config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
4450         config/sh/symbian.c, config/sol2-c.c, config/sol2.c,
4451         config/stormy16/stormy16.c, config/v850/v850-c.c,
4452         config/v850/v850.c, config/xtensa/xtensa.c: Adjust warning()
4453         callers.
4454
4455 2005-04-23  Richard Henderson  <rth@redhat.com>
4456
4457         PR rtl-opt/21102
4458         * simplify-rtx.c (simplify_binary_operation): Fix mode check before
4459         performing some integral scalar simplifications.
4460
4461 2005-04-23  Richard Henderson  <rth@redhat.com>
4462
4463         PR target/21099
4464         * config/i386/i386.c (ix86_split_to_parts): Use proper mode when
4465         simplifying CONST_VECTOR.
4466
4467 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
4468
4469         * tree-ssa-live.c (live_worklist): Take a stack allocated on
4470         heap as an argument.  Update uses of stack.
4471         (calculate_live_on_entry): Allocate stack on heap.
4472
4473         * tree-ssa-live.c (build_tree_conflict_graph): Allocate
4474         partition_link and tpa_nodes on heap.
4475
4476         * tree-ssa-dce.c (worklist): Change to VEC(tree,heap).
4477         (mark_stmt_necessary, propagate_necessity,
4478         mark_really_necessary_kill_operand_phis): Update uses of
4479         worklist.
4480         (tree_dce_init): Allocate worklist using VEC_alloc.
4481         (tree_dce_done): Free worklist using VEC_free.
4482
4483 2005-04-23  Mike Stump  <mrs@apple.com>
4484
4485         * config/darwin.c (machopic_indirection_name): Don't use
4486         quotes needlessly.
4487         (darwin_emit_unwind_label): Use user_label_prefix instead of
4488         "_".
4489
4490 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
4491
4492         * final.c, ipa-inline.c, varasm.c: Fix comment typos.
4493
4494 2005-04-23  Hans-Peter Nilsson  <hp@axis.com>
4495
4496         * config.gcc <cris-*>: Specify .opt files.
4497         * config/cris/cris.opt, config/cris/elf.opt, config/cris/aout.opt,
4498         config/cris/linux.opt: New files.
4499         * config/cris/aout.h (CRIS_SUBTARGET_SWITCHES)
4500         (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
4501         (TARGET_ELF): Override to 0.
4502         (CRIS_SUBTARGET_HANDLE_OPTION): Override to handle -melinux and
4503         -melinux-stacksize=N.
4504         * config/cris/cris.c: (cris_handle_option): New function.
4505         (TARGET_DEFAULT_TARGET_FLAGS): Override.
4506         (TARGET_HANDLE_OPTION): Override to cris_handle_option.
4507         (cris_override_options): Use MASK_*, not TARGET_MASK_*.
4508         * config/cris/cris.h (TARGET_MASK_SVINTO, TARGET_SVINTO,
4509         (TARGET_MASK_CCINIT, TARGET_CCINIT, TARGET_MASK_PDEBUG)
4510         (TARGET_PDEBUG, TARGET_MASK_SIDE_EFFECT_PREFIXES)
4511         (TARGET_SIDE_EFFECT_PREFIXES, TARGET_MASK_EXPAND_MUL)
4512         (TARGET_EXPAND_MUL, TARGET_MASK_STACK_ALIGN, TARGET_STACK_ALIGN)
4513         (TARGET_MASK_CONST_ALIGN, TARGET_CONST_ALIGN)
4514         (TARGET_MASK_DATA_ALIGN, TARGET_DATA_ALIGN)
4515         (TARGET_MASK_PROLOGUE_EPILOGUE, TARGET_PROLOGUE_EPILOGUE)
4516         (TARGET_MASK_ETRAX4_ADD, TARGET_ETRAX4_ADD)
4517         (TARGET_MASK_ALIGN_BY_32, TARGET_ALIGN_BY_32, TARGET_MASK_ELF)
4518         (TARGET_ELF, TARGET_MASK_LINUX, TARGET_LINUX)
4519         (TARGET_MASK_AVOID_GOTPLT, TARGET_AVOID_GOTPLT)
4520         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG, TARGET_SWITCHES)
4521         (CRIS_SUBTARGET_SWITCHES, TARGET_OPTIONS)
4522         (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
4523         (TARGET_LINUX): Define 0.
4524         (TARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
4525         (CRIS_SUBTARGET_DEFAULT): Define to 0, not TARGET_MASK_ELF.
4526         (CRIS_SUBTARGET_DEFAULT): New empty default macro.
4527         * config/cris/linux.h (CRIS_SUBTARGET_SWITCHES): Don't define.
4528         (TARGET_LINUX): Override to 1.
4529         (CRIS_SUBTARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
4530
4531 2005-04-23  Nathan Sidwell  <nathan@codesourcery.com>
4532
4533         * haifa-sched.c (schedule_block): Fix thinko in previous
4534         assertification patch.
4535
4536 2005-04-23  Richard Sandiford  <rsandifo@redhat.com>
4537
4538         * config.gcc (hppa[12]*-*-hpux10*): Add pa/pa-hpux.opt to
4539         $extra_options.  Also add pa/pa-hpux1010.opt for hpux10.[1-9]*.
4540         (hppa*64*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file.  Add
4541         pa/pa-hpux.opt, pa/pa-hpux1010.opt and pa/pa64-hpux.opt to
4542         $extra_options.  Also add pa/pa-hpux1111.opt for hpux11.[1-9]*.
4543         (hppa[12]*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file.  Add
4544         pa/pa-hpux.opt to $extra_options.  Also add pa/pa-hpux1111.opt
4545         for hpux11.[1-9]*.
4546         * config/pa/pa.h (architecture_type, rtx_def, pa_arch_string, pa_arch)
4547         (pa_fixed_range_string, pa_cpu_string, pa_unix_string, target_flags)
4548         (MASK_PA_11, MASK_DISABLE_FPREGS, TARGET_DISABLE_FPREGS)
4549         (MASK_NO_SPACE_REGS, TARGET_NO_SPACE_REGS, MASK_JUMP_IN_DELAY)
4550         (TARGET_JUMP_IN_DELAY, MASK_DISABLE_INDEXING, TARGET_DISABLE_INDEXING)
4551         (MASK_PORTABLE_RUNTIME, TARGET_PORTABLE_RUNTIME, MASK_GAS, TARGET_GAS)
4552         (MASK_SOFT_FLOAT, TARGET_SOFT_FLOAT, MASK_LONG_LOAD_STORE)
4553         (TARGET_LONG_LOAD_STORE, MASK_FAST_INDIRECT_CALLS)
4554         (TARGET_FAST_INDIRECT_CALLS, MASK_BIG_SWITCH, TARGET_BIG_SWITCH)
4555         (MASK_PA_20, MASK_SIO, TARGET_SIO, MASK_GNU_LD, TARGET_GNU_LD)
4556         (MASK_LONG_CALLS, TARGET_LONG_CALLS, TARGET_PA_11, TARGET_PA_20)
4557         (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS)
4558         (SUBTARGET_OPTIONS): Delete.
4559         (TARGET_PA_10): Redefine in terms of TARGET_PA_11 and TARGET_PA_20.
4560         (TARGET_SCHED_DEFAULT): Define to a PROCESSOR_* enum (PROCESSOR_8000)
4561         instead of a string.
4562         * config/pa/pa.c (pa_arch, pa_arch_string, pa_fixed_range_string)
4563         (pa_cpu_string, pa_unix_string): Delete.
4564         (pa_cpu): Initialize to TARGET_SCHED_DEFAULT.
4565         (flag_pa_unix): Initialize based on TARGET_HPUX_11_11 and
4566         TARGET_HPUX_10_10.
4567         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
4568         (pa_handle_option): New function.
4569         (override_options): Remove handling of -march=, -mfixed-range=,
4570         -mschedule= and -munix=.
4571         * config/pa/pa-hpux.h (SUBTARGET_SWITCHES): Delete.
4572         * config/pa/pa-hpux1010.h (SUBTARGET_OPTIONS): Delete.
4573         * config/pa/pa-hpux10.h (SUBTARGET_OPTIONS): Delete.
4574         * config/pa/pa-hpux1111.h (SUBTARGET_OPTIONS): Delete.
4575         * config/pa/pa-hpux11.h (SUBTARGET_OPTIONS): Delete.
4576         * config/pa/pa64-hpux.h (SUBTARGET_SWITCHES): Delete.
4577         * config/pa/pa64-start.h (TARGET_PA_11, TARGET_PA_20): #undef before
4578         redefining.
4579         * config/pa/pa.opt: New file.
4580         * config/pa/pa-hpux.opt: New file.
4581         * config/pa/pa-hpux1010.opt: New file.
4582         * config/pa/pa-hpux1111.opt: New file.
4583         * config/pa/pa64-hpux.opt: New file.
4584
4585 2005-04-22  David S. Miller  <davem@davemloft.net>
4586
4587         * rtl.h (CONST_DOUBLE): Fix comment, a CONST_DOUBLE holds an
4588         integer when it's mode is VOIDmode not DImode.
4589
4590 2005-04-22  Geoffrey Keating  <geoffk@apple.com>
4591
4592         * config/rs6000/rs6000.md (sync_add<mode>_internal,
4593         sync_addshort_internal, sync_sub<mode>_internal, sync_andsi_internal,
4594         sync_anddi_internal, sync_boolsi_internal, sync_booldi_internal,
4595         sync_boolc<mode>_internal, sync_boolc<mode>_internal2,
4596         sync_boolcc<mode>_internal, sync_lock_test_and_set<mode>): Use
4597         "bne- $-xxx" rather than local labels.
4598         (sync_lock_release<mode>): Add second operand.
4599         (lwsync): Use .long rather than a more meaningful opcode.
4600         * doc/md.texi (Standard Names): Add description of second
4601         parameter to sync_lock_test_and_set.
4602
4603 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
4604
4605         PR tree-optimization/21088
4606         * fold-const.c (fold_unary, fold_binary, fold_ternary):
4607         Export.
4608         * tree-vrp.c (compare_values): Use fold_binary to compare
4609         pointers.  Use boolean_type_node as the type of a comparison
4610         expression being folded.
4611         * tree.h: Add prototypes for fold_unary, fold_binary,
4612         fold_ternary.
4613
4614         * tree-ssa-dom.c: Fix formatting.
4615
4616 2005-04-22  Diego Novillo  <dnovillo@redhat.com>
4617
4618         * Makefile.in (tree-into-ssa.o): Add dependency on PARAMS_H.
4619         * lambda-code.c (perfect_nestify): Mark virtual operands in
4620         the moved statement for renaming.
4621         * params.def (PARAM_MIN_VIRTUAL_MAPPINGS): Define.
4622         (PARAM_VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
4623         * params.h (MIN_VIRTUAL_MAPPINGS): Define.
4624         (VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
4625         * tree-flow.h (struct var_ann_d): Update comments.
4626         (rewrite_to_new_ssa_names_bb, rewrite_to_new_ssa_names,
4627         allocate_ssa_names, find_phi_node_for, dump_tree_ssa,
4628         debug_tree_ssa, debug_def_blocks, dump_tree_ssa_stats,
4629         debug_tree_ssa_stats, rewrite_ssa_into_ssa,
4630         dump_repl_tbl, debug_repl_tbl, dump_names_replaced_by,
4631         debug_names_replaced_by): Remove declarations.
4632         (delete_update_ssa, get_current_def, set_current_def): Declare.
4633         (rewrite_into_loop_closed_ssa): Add new argument.  Update
4634         all callers.
4635         * tree-into-ssa.c: Include params.h.
4636         (old_virtual_ssa_names): Remove.  Update all users.
4637         (need_to_replace_names_p): Remove.  Update all users.
4638         (struct update_ssa_stats_d): Declare.
4639         (update_ssa_stats): New local.
4640         (dump_tree_ssa, debug_tree_ssa, debug_def_blocks,
4641         dump_tree_ssa_stats, debug_tree_ssa_stats,
4642         dump_update_ssa, debug_update_ssa,
4643         dump_names_replaced_by, debug_names_replaced_by): Declare.
4644         (get_current_def, set current_def): Make extern.
4645         (is_old_name, is_new_name): Protect against references
4646         past the end of the sets.
4647         (add_new_name_mapping): Assert that OLD and NEW are
4648         different SSA names for the same symbol.
4649         When adding a virtual mapping, update stats for virtual
4650         mapping heuristic.
4651         (insert_phi_nodes_for): If UPDATE_P is true, create the
4652         LHS of the new PHI by duplicating SSA name VAR.
4653         (insert_phi_nodes_1): Remove.  Update all users.
4654         (insert_phi_nodes): Remove second argument.  Update all
4655         users.
4656         (maybe_replace_use, maybe_replace_def): New.
4657         (rewrite_update_stmt): Call them.
4658         (mark_def_interesting): Remove calls to is_gimple_reg.
4659         (prepare_phi_args_for_update): Remove.  Update all users.
4660         (prepare_block_for_update): Only process virtual operands
4661         and GIMPLE registers in normal form.
4662         (prepare_use_sites_for): New.
4663         (prepare_names_to_update): Rename from prepare_def_sites.
4664         Call prepare_use_sites_for.
4665         (dump_update_ssa): Rename from dump_repl_tbl.
4666         Update all users.
4667         Show statistics for virtual mapping heuristic.
4668         (debug_update_ssa): Rename from debug_debug_repl_tbl.
4669         (init_update_ssa): Initialize UPDATE_SSA_STATS.
4670         (delete_update_ssa): Make extern.
4671         (mark_set_for_renaming): If the set is empty, do nothing.
4672         (release_ssa_name_after_update_ssa): Update comment.
4673         (insert_updated_phi_nodes_for): Do not remove existing
4674         PHI nodes for symbols.
4675         (switch_virtuals_to_full_rewrite_p): New.
4676         (switch_virtuals_to_full_rewrite): New.
4677         (update_ssa): Call them.
4678         Clear REWRITE_THIS_STMT and REGISTER_DEFS_IN_THIS_STMT
4679         for every statement before updating.
4680         If all the names in NEW_SSA_NAMES have been marked for
4681         removal, do nothing.
4682         Only start at the top of the CFG if there are symbols in
4683         SYMS_TO_RENAME.
4684         (ssa_rewrite_finalize_block): Remove.
4685         (ssa_register_new_def): Remove.
4686         (ssa_rewrite_stmt): Remove.
4687         (ssa_rewrite_phi_arguments): Remove.
4688         (ssa_rewrite_initialize_block): Remove.
4689         (ssa_mark_def_sites): Remove.
4690         (ssa_mark_def_sites_initialize_block): Remove.
4691         (ssa_mark_phi_uses): Remove.
4692         (rewrite_ssa_into_ssa): Remove.
4693         * tree-phinodes.c (find_phi_node_for): Remove.
4694         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
4695         Call update_ssa.
4696         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops):
4697         Remove calls to verify_dominators and
4698         verify_loop_structure.
4699         (tree_unswitch_single_loop): Call update_ssa.
4700         * tree-ssa.c (verify_ssa): Assert that need_ssa_update_p
4701         returns false.
4702         Call verify_stmts.
4703         (delete_tree_ssa): Assert that need_ssa_update_p returns
4704         false.
4705         * tree-vect-transform.c (vect_transform_loop): Call update_ssa.
4706         * tree-vectorizer.c (allocate_new_names, rename_def_op,
4707         free_new_names): Remove.  Update all users.
4708         (rename_use_op): Call get_current_def.
4709         (rename_variables_in_bb): Do not handle any real or
4710         virtual definition.
4711         (slpeel_update_phis_for_duplicate_loop): Call
4712         get_current_def and set_current_def instead of using
4713         SSA_NAME_AUX.
4714         (slpeel_update_phi_nodes_for_guard2): Reformat comments.
4715         (slpeel_can_duplicate_loop_p): Call need_ssa_update_p,
4716         ssa_names_to_replace and delete_update_ssa.
4717         * doc/invoke.texi: Document --param min-virtual-mappings
4718         and --param virtual-mappings-ratio.
4719
4720 2005-04-22  Diego Novillo  <dnovillo@redhat.com>
4721
4722         * tree-cfg.c (tree_duplicate_bb): Call create_new_def_for
4723         for newly created PHI nodes.
4724         Call create_new_def_for for every new V_MAY_DEF and
4725         V_MUST_DEF on the copied statement.
4726         (struct ssa_name_map_entry): Remove.
4727         (ssa_name_map_entry_hash): Remove.
4728         (ssa_name_map_entry_eq): Remove.
4729         (allocate_ssa_names): Remove.
4730         (rewrite_to_new_ssa_names_def): Remove.
4731         (rewrite_to_new_ssa_names_use): Remove.
4732         (rewrite_to_new_ssa_names_bb): Remove.
4733         (rewrite_to_new_ssa_names): Remove.
4734         (tree_duplicate_sese_region): Remove variables ver,
4735         definitions, phi, ssa_name_map and bi.
4736         Call need_ssa_update_p instead of any_marked_for_rewrite_p.
4737         Call update_ssa.
4738         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
4739         update_ssa instead of rewrite_ssa_into_ssa.
4740         * tree-ssa-loop-manip.c (add_exit_phis_edge): Call
4741         create_new_def_for.
4742         (find_uses_to_rename_use): Add argument 'need_phis'.
4743         (find_uses_to_rename_stmt): Do not scan virtual operands.
4744         (find_uses_to_rename): Only scan PHI nodes for
4745         non-virtual names.
4746         (rewrite_into_loop_closed_ssa): Call update_ssa.
4747         (check_loop_closed_ssa_use): Ignore virtual operands.
4748         (check_loop_closed_ssa_stmt): Likewise.
4749         (verify_loop_closed_ssa): Do nothing if CURRENT_LOOPS is
4750         NULL.
4751         (rename_variables, set_phi_def_stmts): Remove.
4752         (tree_duplicate_loop_to_header_edge): Reformat comment.
4753         Remove variables BB, I and DEFINITIONS.
4754         Call need_ssa_update_p.
4755         Call update_ssa.
4756         (lv_adjust_loop_header_phi): Reformat comment.
4757         * tree-ssanames.c (ssa_names_to_rewrite): Remove.
4758         (marked_for_rewrite_p, any_marked_for_rewrite_p,
4759         mark_for_rewrite, unmark_all_for_rewrite,
4760         marked_ssa_names): Remove.  Update all users.
4761         (release_ssa_name): If VAR has been registered for SSA
4762         updating, do nothing.
4763         * tree-vrp.c (new_ssa_names, old_ssa_names): Remove.
4764         (build_assert_expr_for): Call register_new_name_mapping.
4765         (insert_range_assertions): Update call to update_ssa.
4766         * tree.h (mark_for_rewrite, unmark_all_for_rewrite,
4767         marked_for_rewrite_p, any_marked_for_rewrite_p,
4768         marked_ssa_names): Remove.
4769
4770 2005-04-22  Jeff Law  <law@redhat.com>
4771
4772         * tree-ssa-dom.c (block_defs_stack): Remove, no longer needed.
4773         (restore_currdefs_to_original_value): Likewise.
4774         (register_definitions_for_stmt): Likewise.
4775         (tree_ssa_dominator_optimize): No longer initialize CURRENT_DEF
4776         for each variable.  Do not allocate/free block_defs_stack either.
4777         Do not iterate if we just thread jumps.  Only iterate if the
4778         tree_cleanup_cfg does useful work (temporary).
4779         (dom_opt_initialize_block): No longer push a marker on
4780         BLOCK_DEFS_STACK.
4781         (dom_opt_finalize_block): Removal call to restore currdefs.
4782         Relax restrictions for recording edge equivalences.
4783         (record_equivalences_from_phis): No longer need to track
4784         CURRENT_DEF.
4785         (optimize_stmt): Similarly.
4786         (thread_across_edge): Simplify by removing the requirement that
4787         statements in the block we are threading through must be nops.
4788         (initialize_hash_element): Handle GOTO_EXPR.
4789
4790 2005-04-22  David S. Miller  <davem@davemloft.net>
4791
4792         * sched-vis.c (print_value): Use CONST_DOUBLE_LOW and
4793         CONST_DOUBLE_HIGH.
4794         * config/sparc/sparc.c (sparc_rtx_costs): Likewise, and
4795         fix check on CONST_DOUBLE mode.  It should be VOIDmode
4796         when it is representing an integer.
4797
4798 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
4799
4800         * builtins.c (gimplify_va_arg_expr): Reword comments to avoid
4801         'abort'. Use gcc_assert and gcc_unreachable as appropriate.
4802         * c-format.c (get_constant, decode_format_attr, get_flag_spec,
4803         find_char_info_specifier_index,
4804         find_length_info_modifier_index): Likewise.
4805         * c-typeck.c (composite_type, pop_init_level): Likewise.
4806         * combine.c (cant_combine_insn_p, try_combine): Likewise.
4807         * cse.c (cse_insn): Likewise
4808         * dominance.c (calc_dfs_tree): Likewise
4809         dwarf2out.c (loc_descriptor_from_tree_1,
4810         add_abstract_origin_attribute, force_decl_die,
4811         force_type_die): Likewise
4812         emit-rtl.c (operand_subword_force): Likewise
4813         explow.c (hard_function_value): Likewise
4814         expmed.c (store_bit_field, expand_divmod,
4815         emit_store_flag_force): Likewise
4816         expr.c (emit_move_multi_word, store_expr,
4817         expand_expr_real_1): Likewise
4818         final.c (this_is_asm_operands, shorten_branches, final_scan_insn,
4819         output_operand): Likewise
4820         flow.c (recompute_reg_usage): Likewise
4821         * function.c (assign_stack_temp_for_type, assign_temp,
4822         handle_epilogue_set): Likewise
4823         * genextract.c (main): Likewise
4824         * gimplify.c (mostly_copy_tree_r, gimplify_return_expr,
4825         gimplify_modify_expr_rhs, gimplify_expr): Likewise
4826         * haifa-sched.c (ready_lastpos, ready_remove_first, ready_element,
4827         ready_remove, rm_line_notes, rm_other_notes,
4828         schedule_block): Likewise
4829         mips-tfile.c (copy_object, out_of_bounds): Likewise
4830
4831 2005-04-22 David Edelsohn  <edelsohn@gnu.org>
4832
4833         PR target/20813
4834         * config/rs6000/default64.h (TARGET_DEFAULT): Add MASK_PPC_GFXOPT.
4835         * config/rs6000/rs6000.c (processor_target_table): Rename rs64a to
4836         rs64.  Add MASK_PPC_GFXOPT to powerpc64 and rs64.
4837         (rs6000_init_libfuncs): Set TFmode optabs to xlq names if
4838         TARGET_XL_COMPAT.
4839         * doc/invoke.texi (PowerPC options): Change rs64a to rs64.
4840
4841 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
4842
4843         * lambda-code.c: Define VEC(int,heap), VEC(lambda_loop,heap).
4844         (gcc_tree_to_linear_expression): Convert to heap allocated
4845         vectors.
4846         (gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
4847         lbv_to_gcc_expression, lle_to_gcc_expression,
4848         lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest,
4849         perfect_nestify): Likewise.
4850         lambda.h (gcc_loopnest_to_lambda_loopnest,
4851         lambda_loopnest_to_gcc_loopnest): Likewise.
4852         tree-loop-linear.c (linear_transform_loops): Likewise.
4853
4854 2005-04-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
4855
4856         * config/sparc/predicates.md (arith_double_operand): Use
4857         trunc_int_for_mode if HOST_BITS_PER_WIDE_INT >=64.
4858         * config/sparc/sparc.md (movqi, movhi, movsi, movqi): Use gen_int_mode.
4859         (DImode, DFmode constant splitters): Likewise.  Remove code for
4860         TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT < 64.
4861         (logical constant splitters): Use const_int_operand predicate.
4862         (lshrsi3_extend): Remove code for TARGET_ARCH64 &&
4863         HOST_BITS_PER_WIDE_INT < 64.
4864
4865 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
4866
4867         * config/pa/pa.c (legitimize_pic_address): Use gcc_assert and
4868         gcc_unreachable as appropriate.
4869         (force_mode, emit_move_sequence, singlemove_string,
4870         output_move_double, output_fp_move_double, find_addr_reg,
4871         output_block_move, output_block_clear, output_and,
4872         output_64bit_and, output_ior, output_64bit_ior, store_reg_modify,
4873         pa_adjust_cost, pa_issue_rate, print_operand,
4874         output_global_address, output_arg_descriptor, output_cbranch,
4875         output_lbranch, output_bb, output_bvb, output_dbra, output_movb,
4876         output_call): Likewise.
4877         * config/pa/pa.md (call, call_value, sibcall, sibcall_value,
4878         prefetch, prefetch_cc, prefetch_nocc): Likewise.
4879
4880 2005-04-22  Zdenek Dvorak  <dvorakz@suse.cz>
4881
4882         * Makefile.in (LIBGCOV): Add _gcov_interval_profiler,
4883         _gcov_pow2_profiler and _gcov_one_value_profiler.
4884         (tree-profile.o): Add GGC_H and gt-tree-profile.h dependency.
4885         (GTFILES): Add $(srcdir)/tree-profile.c.
4886         * gcov-io.h (__gcov_interval_profiler, __gcov_pow2_profiler,
4887         __gcov_one_value_profiler): Declare.
4888         * gimplify.c (force_gimple_operand): Check whether the statements
4889         should be produced in ssa form.
4890         (force_gimple_operand_bsi): New function.
4891         * libgcov.c (__gcov_interval_profiler, __gcov_pow2_profiler,
4892         __gcov_one_value_profiler): New functions.
4893         * rtl-profile.c (rtl_gen_pow2_profiler): Only measure whether
4894         the profiled value is a power of two or not.
4895         * tree-cfg.c (tree_block_ends_with_condjump_p): Handle empty blocks.
4896         * tree-flow.h (in_ssa_p): Declare.
4897         (force_gimple_operand_bsi): Declare.
4898         * tree-into-ssa.c (in_ssa_p): New variable.
4899         (rewrite_into_ssa): Set in_ssa_p.
4900         * tree-outof-ssa.c (rewrite_out_of_ssa): Set in_ssa_p.
4901         * tree-profile.c: Include ggc.h and gt-tree-profile.h.
4902         (gcov_type_node, tree_interval_profiler_fn, tree_pow2_profiler_fn,
4903         tree_one_value_profiler_fn): New variables.
4904         (tree_init_edge_profiler): Initialize the profiler function decls.
4905         (tree_gen_edge_profiler): Use global gcov_type_node.
4906         (prepare_instrumented_value): New function.
4907         (tree_gen_interval_profiler, tree_gen_interval_profiler,
4908         tree_gen_one_value_profiler): Call the library functions instead of
4909         creating instrumentation code.
4910         * tree.c (build_fn_decl): New function.
4911         * tree.h (build_fn_decl): Declare.
4912         * value-prof.c (rtl_divmod_values_to_profile,
4913         rtl_find_values_to_profile, rtl_mod_pow2_value_transform,
4914         tree_mod_pow2_value_transform, tree_find_values_to_profile):
4915         Do not handle may_be_other and precise values of exponents at pow2
4916         profiler.
4917         (tree_mod_subtract_transform): Reflect that value field of
4918         histogram has changed meaning.
4919         (tree_divmod_values_to_profile): Record the values correctly.
4920         (tree_values_to_profile): Update comment.
4921         * value-prof.h (struct histogram_value_t): Remove pow2 data.
4922
4923 2005-04-22  Joseph S. Myers  <joseph@codesourcery.com>
4924
4925         * varasm.c (do_assemble_alias): Return early if TREE_ASM_WRITTEN
4926         (decl).
4927
4928 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
4929
4930         * config/i386/i386.md (length_immediate): Use gcc_assert or
4931         gcc_unreachable, as appropriate.
4932         (*movsi_1, *movqi_1, reload_outqi, *movdi_1_rex64, *pushsf,
4933         *pushsf_rex64, *truncxfsf2_mixed, *truncxfsf2_i387,
4934         *truncxfdf2_mixed, *truncxfdf2_i387, *adddi_1_rex64,
4935         *adddi_2_rex64, *adddi_3_rex64, *adddi_4_rex64, *adddi_5_rex64,
4936         *addsi_1, addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
4937         *addsi_3_zext, *addsi_4, *addsi_5, *addhi_1_lea, *addhi_1,
4938         *addhi_2, *addhi_3, *addhi_4, *addhi_5, *addqi_1_lea, *addqi_1,
4939         *addqi_1_slp, *addqi_2, *addqi_3, *addqi_4, *addqi_5, addqi_ext_1,
4940         *addqi_ext_1_rex64, *anddi_1_rex64, *andsi_1, *andhi_1,
4941         *ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashlsi3_1, *ashlsi3_1_zext,
4942         *ashlsi3_cmp, *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1,
4943         *ashlhi3_cmp, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
4944         pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64,
4945         pro_epilogue_adjust_stack_rex64_2, prefetch, *prefetch_sse,
4946         *prefetch_sse_rex): Likewise.
4947         * config/i386/predicates.md (x86_64_immediate_operand,
4948         x86_64_zext_immediate_operand, symbolic_operand,
4949         no_seg_address_operand, aligned_operand,
4950         memory_displacement_operand): Likewise.
4951         * config/i386/sse.md (*mov<mode>_internal,
4952         *movv2df_internal): Likewise.
4953
4954 2005-04-22  Jan Hubicka  <jh@suse.cz>
4955
4956         * Makefile.in (ipa.o, ipa-inline.o): New files.
4957         * cgraph.h (cgraph_remove_unreachable_nodes, cgraph_postorder,
4958         cgraph_decide_inlining_incrementally, cgraph_clone_inlined_nodes,
4959         cgraph_mark_inline_edge, cgraph_default_inline_p): Declare.
4960         * cgraphunit.c (cgraph_default_inline_p,
4961         cgraph_decide_inlining_incrementally,  ncalls_inlined,
4962         nfunctions_inlined, initial_insns, overall_insns,
4963         cgraph_estimate_size_after_inlining, cgraph_estimate_growth,
4964         cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
4965         cgraph_mark_inline, cgraph_check_inline_limits,
4966         cgraph_default_inline_p, cgraph_recursive_inlining_p,
4967         update_callee_keys, lookup_recursive_calls,
4968         cgraph_decide_recursive_inlining, cgraph_set_inline_failed,
4969         cgraph_decide_inlining_of_small_functions, cgraph_decide_inlining,
4970         cgraph_decide_inlining_incrementally, cgraph_gate_inlining,
4971         pass_ipa_inline): Move to ipa-inline.c
4972         (cgraph_postorder, cgraph_remove_unreachable_nodes): Move to ipa.c
4973         * ipa.c: New file.
4974         * ipa-inline.c: New file.
4975
4976 2005-04-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
4977
4978         * doc/invoke.texi (SPARC options): Document that -mapp-regs
4979         is turned off by default on Solaris.
4980
4981 2005-04-21  Roger Sayle  <roger@eyesopen.com>
4982
4983         * c-common.h (objc_build_method_signature): Update prototype.
4984         * stub-objc.c (objc_build_method_signature): Update the stub
4985         implementation to accept and ignore additional parameter.
4986         * c-parser.c (c_parser_objc_method_decl): Reorgnize to pass
4987         the value of ellipsis to objc_build_method_signature instead
4988         of setting TREE_OVERFLOW on the parms TREE_LIST node.
4989
4990 2005-04-21  Geoffrey Keating  <geoffk@apple.com>
4991
4992         * config/rs6000/rs6000-protos.h (rs6000_emit_sync): New.
4993         * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Use
4994         gen_rtx_* not gen_rtx_fmt_*.
4995         (rs6000_emit_vector_select): Likewise.
4996         (rs6000_emit_sync): New.
4997         * config/rs6000/rs6000.md (GPR, INT, INT1): New mode macros.
4998         (larx, stcx, cmp): New mode substitutions.
4999         (UNSPEC_SYNC, UNSPEC_SYNC_OP, UNSPEC_SYNC_SWAP, UNSPEC_LWSYNC,
5000         UNSPEC_ISYNC): New constants.
5001         (rlwinm): Give name.
5002         (memory_barrier, isync, lwsync): New insns.
5003         (sync_compare_and_swap<mode>, sync_lock_test_and_set<mode>): New insn.
5004         (sync_lock_release<mode>): New expander.
5005         (sync_add<mode>, sync_sub<mode>, sync_ior<mode>, sync_and<mode>,
5006         sync_xor<mode>, sync_nand<mode>, sync_old_add<mode>,
5007         sync_old_sub<mode>, sync_old_ior<mode>, sync_old_and<mode>,
5008         sync_old_xor<mode>, sync_old_nand<mode>, sync_new_add<mode>,
5009         sync_new_sub<mode>, sync_new_ior<mode>, sync_new_and<mode>,
5010         sync_new_xor<mode>, sync_new_nand<mode>): New expanders.
5011         (sync_add<mode>_internal, sync_addshort_internal,
5012         sync_sub<mode>_internal, sync_andsi_internal, sync_anddi_internal,
5013         sync_boolsi_internal, sync_booldi_internal, sync_boolc<mode>_internal,
5014         sync_boolc<mode>_internal2, sync_boolcc<mode>_internal): New insns.
5015
5016         * doc/md.texi (Standard Names): sync_compare_and_swap's operand 0
5017         is the memory before, not after, the operation.  Clarify
5018         barrier requirements.
5019
5020 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
5021
5022         * cfghooks.h (struct cfg_hooks): Reword comments to avoid 'abort'.
5023         * lambda.h (lambda_vector_min_nz): Likewise.
5024         * langhooks.h (struct lang_hooks_for_types,
5025         struct lang_hooks): Likewise.
5026         * output.h (assemble_integer, this_is_asm_operands): Likewise.
5027         * tree.h: Likewise.
5028         * vec.h: Likewise.
5029         * tree-flow-inline.h (relink_imm_use): Use gcc_assert.
5030
5031         * optabs.c (prepare_cmp_insn, emit_cmp_and_jump_insns): Reword
5032         comments to avoid 'abort'.  Use gcc_assert as necessary.
5033         * opts.c (common_handle_option): Likewise.
5034         * pretty-print.c (pp_base_format_text): Likewise.
5035         * print-rtl.c (print_rtx): Likewise.
5036         * read-rtl.c (read_rtx_filename, read_rtx_1): Likewise.
5037         * regmove.c (try_auto_increment): Likewise.
5038         * reload.c (find_valid_class, find_reloads_toplev,
5039         find_equiv_reg): Likewise.
5040         * reload1.c (reload, forget_old_reloads_1, function_invariant_p,
5041         merge_assigned_reloads): Likewise.
5042         * tree-inline.c (inline_forbidden_p_1,
5043         estimate_num_insns_1): Likewise.
5044         * tree-optimize.c (execute_todo): Likewise.
5045         * tree-outof-ssa.c (eliminate_phi): Likewise.
5046         * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
5047         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Likewise.
5048         * tree-ssa-operands.c (parse_ssa_operands,
5049         get_indirect_ref_operands, create_ssa_artficial_load_stmt): Likewise.
5050         * tree-ssa-pre.c (find_or_generate_expression): Likewise.
5051         * tree-ssanames.c (release_ssa_name): Likewise.
5052         * tree.c (int_bit_position, int_byte_position, tree_low_cst,
5053         walk_tree): Likewise.
5054
5055         * tree-ssa-operands.c (verify_abort): Fold into ..
5056         (verify_imm_links): ... here.
5057
5058 2005-04-21  Richard Henderson  <rth@redhat.com>
5059
5060         * config/alpha/sync.md (sync_new_nand<I48MODE>): Fix constraints
5061         on non-memory operand for previous inversion.
5062
5063 2005-04-21  Devang Patel  <dpatel@apple.com>
5064
5065         PR optimization/20994
5066         * tree-if-conv.c (find_phi_replacement_condition): Avoid generating
5067         x = !(a == b) : p , q;.
5068         (pass_if_conversion): Verify stmts and flow.
5069
5070 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
5071
5072         * optabs.c (gen_conditional_trap): Restore #define.
5073
5074         * alias.c (true_dependence): Remove 'abort' from comments. Use
5075         gcc_assert and gcc_unreachable as appropriate.
5076         (canon_true_dependence): Likewise.
5077         * bb-reorder.c (connect_traces): Likewise.
5078         * c-common.c (c_add_case_label): Likewise.
5079         * c-decl.c (finish_function): Likewise.
5080         * caller-save.c (insert_restore, insert_save): Likewise.
5081         * cfg.c (update_bb_profile_for_threading): Likewise.
5082         * cfganal.c (flow_active_insn_p): Likewise.
5083         * cfgexpand.c (add_reg_br_prob_note): Likewise.
5084         * cfgrtl.c (rtl_redirect_edge_and_branch_force, rtl_split_edge,
5085         cfg_layout_merge_blocks): Likewise.
5086         * ifcvt.c (cond_exec_process_insns, merge_if_block,
5087         find_if_block): Likewise.
5088         * integrate.c (allocate_initial_values): Likewise.
5089         * jump.c (reverse_condition, reverse_condition_maybe_unordered,
5090         swap_condition, unsigned_condition, signed_condition,
5091         mark_jump_label, invert_jump_1, rtx_renumbered_equal_p,
5092         reg_or_subregno): Likewise.
5093         * lambda-code.c (lambda_compute_auxillary_space,
5094         lambda_transform_legal_p): Likewise.
5095         * lambda-mat.c (lambda_matrix_inverse_hard): Likewise.
5096         * langhooks.c (lhd_set_decl_assembler_name, lhd_type_promotes_to,
5097         lhd_incomplete_type_error, lhd_expand_expr,
5098         lhd_types_compatible_p, lhd_tree_size): Likewise.
5099         * lcm.c (create_pre_exit, optimize_mode_switching): Likewise.
5100         * local-alloc.c (update_equiv_regs): Likewise.
5101         * loop-unroll.c (peel_loop_completely
5102         unroll_loop_constant_iterations, unroll_loop_runtime_iterations,
5103         peel_loop_simple, unroll_loop_stupid,
5104         analyze_iv_to_split_insn): Likewise.
5105         * loop.c (gen_prefetch, find_and_verify_loops,
5106         basic_induction_var): Likewise.
5107         * modulo-sched.c (normalize_sched_times, check_nodes_order): Likewise.
5108         * value-prof.c (tree_find_values_to_profile): Likewise.
5109         * varasm.c (named_section, default_assemble_integer,
5110         decode_addr_const): Likewise.
5111
5112 2005-04-21 Alan Modra  <amodra@bigpond.net.au>
5113            Fariborz Jahanian <fjahanian@apple.com>
5114
5115         * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Fix size of
5116         portion of argument passed in fpr.
5117         * expr.c (emit_push_insn): Fix computation of 'offset' used to
5118         decide on partial argument save on stack.
5119
5120 2005-04-21  Kazu Hirata  <kazu@cs.umass.edu>
5121
5122         * config/sparc/predicates.md, config/sparc/sparc.md: Fix
5123         comment typos.
5124
5125 2005-04-21  Jan Hubicka  <jh@suse.cz>
5126
5127         * cgraphunit.c: Include tree-pass.h
5128         (cgraph_decide_recursive_inlining,
5129         cgraph_decide_inlining_of_small_function, cgraph_set_inline_failed,
5130         cgraph_decide_inlining): Dump goes to dump_file.
5131         (cgraph_optimize): Call ipa passes instead of inliner.
5132         (cgraph_gate_inlining, pass_ipa_inline): New.
5133         * tree-optimize.c (all_ipa_passes): New static variable.
5134         (register_one_dump_file): Dead with IPA passes.
5135         (register_dump_files): Likewise.
5136         (init_tree_optimization_passes): Initialize IPA passes.
5137         (execute_todo): Do cgraph dump when asked to, do not dump function body
5138         for IPA pass.
5139         * tree-pass.h (TODO_dump_cgraph): New macro.
5140         (ipa_passes): Declare.
5141         * Makefile.in (cgraphunit.o): Add dependency on cgraphunit.h
5142
5143 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
5144
5145         * config/i386/i386.c (type_natural_mode): Use gcc_unreachable and
5146         gcc_assert instead of abort.
5147         (classify_argument, examine_argument, construct_container,
5148         contains_128bit_aligned_vector_p, ix86_check_movabs,
5149         standard_80387_constant_opcode, standard_80387_constant_rtx,
5150         ix86_initial_elimination_offset, ix86_compute_frame_layout,
5151         pro_epilogue_adjust_stack, ix86_expand_epilogue,
5152         ix86_address_cost, legitimate_address_p, legitimize_pic_address,
5153         legitimize_tls_address, output_pic_addr_const,
5154         i386_output_dwarf_dtprel, put_condition_code, print_reg,
5155         get_some_local_dynamic_name, print_operand, print_operand_address,
5156         output_387_binary_op, emit_i387_cw_initialization,
5157         output_fix_trunc, output_fp_compare, ix86_output_addr_vec_elt,
5158         ix86_expand_clear, ix86_expand_binary_operator,
5159         ix86_expand_unary_operator, ix86_match_ccmode, ix86_cc_mode,
5160         ix86_cc_modes_compatible, ix86_fp_comparison_codes,
5161         ix86_fp_comparison_arithmetics_cost, ix86_expand_fp_compare,
5162         ix86_expand_branch, ix86_expand_setcc,
5163         ix86_expand_carry_flag_compare, ix86_expand_fp_movcc,
5164         ix86_expand_int_addcc, ix86_split_to_parts, ix86_split_long_move,
5165         ix86_expand_movmem, ix86_expand_call, assign_386_stack_local,
5166         memory_address_length, ix86_attr_length_immediate_default,
5167         ix86_attr_length_address_default, ix86_agi_dependant,
5168         x86_initialize_trampoline, ix86_init_mmx_sse_builtins,
5169         ix86_expand_binop_builtin, ix86_force_to_memory,
5170         ix86_secondary_memory_needed, ix86_avoid_jump_misspredicts,
5171         x86_emit_floatuns): Likewise.
5172         * config/i386/netware.c (gen_regparm_prefix,
5173         i386_nlm_strip_name_encoding): Likewise.
5174         * config/i386/winnt.c (i386_pe_mark_dllexport): Likewise.
5175
5176 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
5177
5178         * optabs.c (gen_condiational_trap): Remove #define.
5179         (add_equal_note): Assertify. Remove explicit indirection from
5180         call via function pointer.
5181         (expand_ternary_op, expand_simple_binop, expand_binop,
5182         expand_twoval_unop, expand_twoval_binop,
5183         expand_twoval_binop_libfunc, expand_simple_unop expand_unop,
5184         emit_unop_insn,  emit_no_conflict_block,  prepare_cmp_insn,
5185         prepare_operand emit_cmp_and_jump_insn_1, emit_cmp_and_jump_insns,
5186         prepare_float_lib_cmp, emit_conditional_move,
5187         emit_conditional_add, gen_add2_insn, gen_add3_insn,
5188         have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn,
5189         expand_float, expand_fix, debug_optab_libfuncs, gen_cond_trap,
5190         vector_compare_rtx, expand_vec_cond_expr): Likewise.
5191
5192 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
5193
5194         * vec.h: Update API to separate allocation mechanism from type.
5195         (VEC_safe_grow): New.
5196         * vec.c (calculate_allocation): New.
5197         (vec_gc_o_reserve, vec_heap_o_reserve): Adjust.
5198         (vec_gc_free, vec_heap_free): Remove.
5199         * gengtype-lex.l (DEF_VEC_): Process mult-argument macros.  Adjust.
5200         (VEC): Likewise.
5201         (mangle_macro_name): New.
5202         (struct macro_def): New.
5203         (struct macro): Add multiple argument values.
5204         (macro_expans_end): New.
5205         (push_macro_expansion):  Chain on new macro. Process multiple
5206         args, create follow on expansion. Return follow on argument.
5207         (macro_input): Deal with multiple arguments.
5208
5209         * tree.h: Define VEC(tree,heap) and VEC(tree,gc).
5210         (struct tree_binfo): Adjust.
5211         * basic-block.h: Define VEC(edge,gc).
5212         (struct edge_def): Adjust.
5213         (struct basic_block_def, struct edge_iterator): Likewise.
5214         (ei_container, ei_start_1, ei_last_1): Likewise.
5215         * cfg.c (connect_src, connect_dest): Likewise.
5216         * cfgrtl.c (force_nonfallthru_and_redirect)
5217         * dbxout.c (dbxout_type)
5218         * dwarf2out.c (gen_member_die)
5219         * lambda-code.c: Define VEC(int,gc), VEC(lambda_loop,gc).
5220         (gcc_tree_to_linear_expression): Adjust.
5221         (gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
5222         lbv_to_gcc_expression, lle_to_gcc_expression,
5223         lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest,
5224         perfect_nestify): Likewise.
5225         * lambda.h (gcc_loopnest_to_lambda_loopnest,
5226         lambda_loopnest_to_gcc_loopnest): Adjust prototypes.
5227         * profile.c (instrument_values): Adjust.
5228         * tree-cfg.c (modified_noreturn_calls): Adjust.
5229         (remove_fallthru_edge): Likewise.
5230         * tree-dump.c (dequeue_and_dump): Adjust.
5231         * tree-flow-inline.h (mark_stmt_modified): Adjust.
5232         * tree-flow.h (modified_noreturn_calls): Adjust.
5233         (tree_on_heap): Remove. (yay!)
5234         (register_new_def): Adjust.
5235         * tree-into-ssa.c: Define VEC(int,heap).
5236         (block_defs_stack): Adjust.
5237         (find_idf, insert_phi_nodes, register_new_def,
5238         rewrite_initialize_block, rewrite_finalize_block,
5239         register_new_update_single, rewrite_update_init_block,
5240         rewrite_update_fini_block, rewrite_blocks,
5241         ssa_rewrite_finalize_block, ssa_register_new_def,
5242         ssa_rewrite_initialize_block, rewrite_ssa_into_ssa): Likewise.
5243         * tree-loop-linear.c (linear_transform_loops): Adjust.
5244         * tree-ssa-alias.c: Define VEC(fieldoff_t,heap).
5245         (push_fields_onto_fieldstack, create_overlap_variables_for): Adjust.
5246         * tree-ssa-dom.c (avail_exprs_stack, block_defs_stack,
5247         stmts_to_rescan, const_and_copies_stack, nonzero_vars_stack,
5248         vrp_variables_stack): Adjust declarations.
5249         (tree_ssa_dominator_optimize): Adjust.
5250         (dom_opt_initialize_block, remove_local_expressions_from_table,
5251         restore_nonzero_vars_to_original_value,
5252         restore_vars_to_original_value,
5253         restore_currdefs_to_original_value, dom_opt_finalize_block,
5254         record_var_is_nonzero, record_cond, record_const_or_copy_1,
5255         optimize_stmt, update_rhs_and_lookup_avail_expr,
5256         lookup_avail_expr, record_range): Likewise.
5257         * tree-ssa-pre.c: Define VEC(basic_block,heap).
5258         (compute_antic_aux): Adjust.
5259         (inserted_exprs, create_expression_by_pieces,
5260         insert_into_preds_of_block, eliminate, mark_operand_necessary,
5261         remove_dead_inserted_code, fini_pre): Likewise.
5262         * tree-ssa-propagate.c (interesting_ssa_edges): Adjust.
5263         (varying_ssa_edges, add_ssa_edge, process_ssa_edge_worklist.
5264         ssa_prop_init): Likewise.
5265         * tree-ssa.c: Define VEC(bitmap,heap).
5266         (verify_name_tags): Adjust.
5267         * value-prof.c (rtl_divmod_values_to_profile): Adjust.
5268         (insn_prefetch_values_to_profile, rtl_find_values_to_profile,
5269         tree_divmod_values_to_profile, tree_find_values_to_profile,
5270         value_profile_transformations): Likewise.
5271         * value-prof.h: Define VEC(histogram_value,heap).
5272         * varasm.c: Remove alias_pair pointer typedef, define
5273         VEC(alias_pair,gc).
5274         (finish_aliases_1, finish_aliases_2, assemble_alias): Adjust.
5275
5276         * config/pa/pa.c (typedef extern_symbol): Typedef the structure,
5277         not a pointer to it.  Create an object vector.
5278         (extern_symbols): Turn into an object vector.
5279         (pa_hpux_asm_output_external, pa_hpux_file_end): Adjust.
5280
5281 2005-04-21  Sebastian Pop  <pop@cri.ensmp.fr>
5282
5283         PR/20742
5284         * Makefile.in (tree-chrec.o): Depend on params.h.
5285         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): New parameter with
5286         default value 20.
5287         * tree-chrec.c: Depend on params.h.  Replace build with buildN,
5288         and fold build with fold_buildN.
5289         (chrec_fold_plus_1): Fail with a chrec_don_know when the size of
5290         the expression exceeds PARAM_SCEV_MAX_EXPR_SIZE.
5291         (tree_contains_chrecs): Compute an estimation of the size of the
5292         given expression.
5293         * tree-chrec.h (tree_contains_chrecs): Modify its declaration.
5294         (tree_does_not_contain_chrecs): Update the use of tree_contains_chrecs.
5295         * tree-scalar-evolution.c (simple_iv): Ditto.
5296         * doc/invoke.texi (scev-max-expr-size): Documented.
5297
5298 2005-04-21  Richard Sandiford  <rsandifo@redhat.com>
5299
5300         * config.gcc (*-*-darwin*): Add darwin.opt to $extra_options.
5301         (i[34567]86-pc-msdosdjgpp*): Likewise i386/djgpp.opt.
5302         (i[34567]86-*-lynxos*, powerpc-*-lynxos*): Likewise lynx.opt.
5303         (i[34567]86-*-sco3.2v5*): Likewise i386/sco5.opt.
5304         (i[34567]86-*-pe, i[34567]86-*-cygwin*, i[34567]86-*-mingw32*)
5305         (i[34567]86-*-uwin*): Likewise i386/cygming.opt.
5306         * config/darwin.h (darwin_one_byte_bool, darwin_fix_and_continue)
5307         (darwin_fix_and_continue_switch, SUBTARGET_OPTIONS): Delete.
5308         * config/darwin.c (darwin_one_byte_bool, darwin_fix_and_continue)
5309         (darwin_fix_and_continue_switch): Delete.
5310         * config/lynx.h (SUBTARGET_OS_LYNX_SWITCHES): Delete.
5311         (SUBTARGET_SWITCHES): Delete.
5312         * config/i386/i386.h (target_flags, MASK_80387, MASK_RTD)
5313         (MASK_ALIGN_DOUBLE, MASK_SVR3_SHLIB, MASK_IEEE_FP, MASK_FLOAT_RETURNS)
5314         (MASK_NO_FANCY_MATH_387, MASK_OMIT_LEAF_FRAME_POINTER)
5315         (MASK_STACK_PROBE, MASK_NO_ALIGN_STROPS, MASK_INLINE_ALL_STROPS)
5316         (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS, MASK_MMX)
5317         (MASK_SSE, MASK_SSE2, MASK_SSE3, MASK_3DNOW, MASK_3DNOW_A)
5318         (MASK_128BIT_LONG_DOUBLE, MASK_64BIT, MASK_MS_BITFIELD_LAYOUT)
5319         (MASK_TLS_DIRECT_SEG_REFS, MASK_NO_RED_ZONE, TARGET_80387)
5320         (TARGET_RTD, TARGET_ALIGN_DOUBLE, TARGET_PUSH_ARGS)
5321         (TARGET_ACCUMULATE_OUTGOING_ARGS, TARGET_SVR3_SHLIB, TARGET_IEEE_FP)
5322         (TARGET_128BIT_LONG_DOUBLE, TARGET_NO_FANCY_MATH_387)
5323         (TARGET_USE_FANCY_MATH_387, TARGET_OMIT_LEAF_FRAME_POINTER)
5324         (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Delete.
5325         (TARGET_FLOAT_RETURNS_IN_80387): Make an alias of TARGET_FLOAT_RETURNS.
5326         (TARGET_64BIT): Undef before redefining.
5327         (TARGET_TLS_DIRECT_SEG_REFS, TARGET_STACK_PROBE)
5328         (TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS, TARGET_SSE)
5329         (TARGET_SSE2, TARGET_SSE3, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A)
5330         (TARGET_RED_ZONE, TARGET_USE_MS_BITFIELD_LAYOUT, TARGET_SWITCHES)
5331         (TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS)
5332         (ix86_fpmath_string, ix86_tls_dialect_string, ix86_cmodel_string)
5333         (ix86_asm_string, ix86_regparm, ix86_regparm_string)
5334         (ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
5335         (ix86_debug_arg_string, ix86_debug_addr_string)
5336         (ix86_align_loops_string, ix86_align_jumps_string)
5337         (ix86_align_funcs_string): Delete.
5338         * config/i386/cygming.h (MASK_NOP_FUN_DLLIMPORT)
5339         (TARGET_NOP_FUN_DLLIMPORT, SUBTARGET_SWITCHES): Delete.
5340         * config/i386/djgpp.h (MASK_BNU210, SUBTARGET_SWITCHES): Delete.
5341         (SUBTARGET_OVERRIDE_OPTIONS): Check TARGET_BNU210.
5342         * config/i386/lynx.h (SUBTARGET_SWITCHES): Delete.
5343         * config/i386/sco5.h (MASK_COFF, TARGET_ELF)
5344         (SUBTARGET_SWITCHES): Delete.
5345         * config/i386/i386.c (ix86_debug_arg_string): Delete.
5346         (ix86_debug_addr_string): Delete.
5347         (ix86_cmodel_string, ix86_asm_string, ix86_tls_dialect_string)
5348         (ix86_fpmath_string, ix86_regparm_string, ix86_regparm)
5349         (ix86_align_loops_string, ix86_align_jumps_string)
5350         (ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
5351         (ix86_align_funcs_string): Make static.
5352         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
5353         (ix86_handle_option): New function.
5354         (TARGET_USE_MS_BITFIELD_LAYOUT): Delete.
5355         (ix86_ms_bitfield_layout_p): Check TARGET_MS_BITFIELD_LAYOUT.
5356         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove handling
5357         of darwin_fix_and_continue_switch.
5358         (darwin_one_byte_bool): Delete.
5359         * config/rs6000/lynx.h (EXTRA_SUBTARGET_SWITCHES): Delete.
5360         * config/rs6000/rs6000.c (rs6000_override_options): Update assignment
5361         to darwin_one_byte_bool.
5362         * config/darwin.opt, config/lynx.opt, config/i386/cygming.opt,
5363         * config/i386/djgpp.opt, config/i386/i386.opt,
5364         * config/i386/sco5.opt: New files.
5365
5366 2005-04-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
5367
5368         * config/sparc/sparc.c (reg_or_0_operand, const1_operand,
5369         fp_zero_operand, fp_register_operand, intreg_operand,
5370         fcc_reg_operand, fcc0_reg_operand, icc_or_fcc_reg_operand,
5371         call_operand, call_operand_address, tgd_symbolic_operand,
5372         tld_symbolic_operand, tie_symbolic_operand, tle_symbolic_operand,
5373         symbolic_operand, symbolic_memory_operand, label_ref_operand,
5374         sp64_medium_pic_operand, data_segment_operand,
5375         text_segment_operand, splittable_symbolic_memory_operand,
5376         reg_or_nonsymb_mem_operand, splittable_immediate_memory_operand,
5377         eq_or_neq, normal_comp_operator, noov_compare_op,
5378         noov_compare64_op, v9_regcmp_op, extend_op, cc_arithop,
5379         cc_arithopn, arith_operand, arith_4096_operand, arith_add_operand,
5380         const64_operand, const64_high_operand, arith11_operand,
5381         arith10_operand, arith_double_operand, arith_double_4096_operand,
5382         arith_double_add_operand, arith11_double_operand,
5383         arith10_double_operand, small_int, small_int_or_double,
5384         uns_small_int, uns_arith_operand, clobbered_register,
5385         input_operand, compare_operand): Delete.
5386         (sparc_emit_set_const32): Use predicates in assertion.  Remove special
5387         code for TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT != 64.
5388         (sparc_emit_set_const64): Call gcc_unreachable if H_B_P_W_I == 32.
5389         (GEN_HIGHINT64, GEN_INT64): Delete.
5390         (sparc_emit_set_safe_HIGH64, gen_safe_SET64, gen_safe_OR64,
5391         gen_safe_XOR64): Adjust for above deletion.
5392         (sparc_emit_set_const64): Support only H_B_P_W_I == 64 and CONST_INTs.
5393         Use 'unsigned HOST_WIDE_INT' instead of 'long' for bitmask.
5394         (legitimate_constant_p): Use const_zero_operand instead.
5395         (sparc_extra_constraint_check): Likewise.
5396         * config/sparc/sparc.h (CONST_DOUBLE_OK_FOR_LETTER_P): Remove 'O'.
5397         (PREFERRED_RELOAD_CLASS): Use const_zero_operand.
5398         (PREDICATE_CODES): Delete.
5399         * config/sparc/sparc.md: Include predicates.md.
5400         (All patterns): Adjust for new predicate names.
5401         (cmpdi, cmpdi_sp64): Use arith_operand predicate.
5402         (movhi_const64_special, movsi_const64_special): Add 'K' constraint.
5403         (movdi): Use general_operand predicate.
5404         (movdi_sp64_dbl): Delete.
5405         (movdi_const64_special): Add 'N' constraint.
5406         (movdicc): Use arith10_operand predicate.
5407         (movdi_cc_sp64, movdi_cc_sp64_trunc): Use arith11_operand predicate.
5408         (movdi_cc_reg_sp64): Use arith10_operand predicate.
5409         (movdi_cc_reg_sp64_trunc): Delete.
5410         (cmp_zero_extract, cmp_zero_extract_sp64): Use small_int_operand.
5411         (adddi3_sp64, cmp_ccx_plus, cmp_ccx_plus_set): Use arith_operand.
5412         (subdi3_sp32): Delete.
5413         (subdi3_insn_sp32): Change to define_insn_and_split.
5414         (subdi3_sp64, cmp_minus_ccx, cmp_minus_ccx_set): Use arith_operand.
5415         (muldi3, muldi3_sp64, muldi3_v8plus): Likewise.
5416         (smulsi3_highpart_v8plus, const_smulsi3_highpart_v8plus,
5417         umulsi3_highpart_v8plus, const_umulsi3_highpart_v8plus): Use
5418         small_int_operand predicate.
5419         (divdi3, udivdi3): Use arith_operand predicate.
5420         (udivsi3, udivsi3_sp32, udivsi3_sp64): Use nonimmediate_operand.
5421         (and<V64I>3_sp64, ior<V64I>3_sp64, xor<V64I:mode>3_sp64,
5422         xor_not_<V64I:mode>_sp64) : Use arith_operand predicate.
5423         (xordi3_sp64_dbl): Delete.
5424         (cmp_ccx_arith_op, cmp_ccx_arith_op_set, cmp_ccx_xor_not,
5425         cmp_ccx_xor_not_set, cmp_ccx_arith_op_not, cmp_ccx_arith_op_not_set,
5426         cmp_ccx_neg, cmp_ccx_set_neg, one_cmpl<V64I>2_sp64, cmp_ccx_not,
5427         cmp_ccx_set_not): Use arith_operand predicate.
5428         (ashrsi3_extend2, lshrsi3_extend2 et al.): Use small_int_operand.
5429         * config/sparc/predicates.md: New file.
5430
5431 2005-04-21  Kazu Hirata  <kazu@cs.umass.edu>
5432
5433         PR tree-optimization/14846
5434         * fold-const.c (fold_single_bit_test_into_sign_test): New,
5435         split out from ...
5436         (fold_single_bit_test): ... here.
5437         (fold_binary): Call fold_single_bit_test_into_sign_test
5438         instead of fold_single_bit_test.
5439
5440 2005-04-20  James E Wilson  <wilson@specifixinc.com>
5441
5442         PR c++/20805
5443         * dwarf2out.c (gen_variable_die): Don't emit a specification if this
5444         is another declaration.
5445
5446 2005-04-21  Hans-Peter Nilsson  <hp@axis.com>
5447
5448         * config/cris/predicates.md: New file.
5449         * config/cris/cris-protos.h (cris_store_multiple_op_p)
5450         (cris_movem_load_rest_p): Declare.
5451         * config/cris/cris.c (cris_store_multiple_op): Return bool, not int.
5452         (cris_movem_load_rest_p): Ditto.  Globalize.
5453         (cris_bdap_operand, cris_bdap_biap_operand,
5454         cris_orthogonal_operator, cris_commutative_orth_op,
5455         cris_operand_extend_operator,
5456         cris_additive_operand_extend_operator, cris_extend_operator,
5457         cris_plus_or_bound_operator, cris_mem_op,
5458         cris_general_operand_or_symbol,
5459         cris_general_operand_or_gotless_symbol,
5460         cris_general_operand_or_plt_symbol, cris_mem_call_operand,
5461         cris_load_multiple_op): Remove predicate functions.
5462         (cris_symbol, cris_gotless_symbol) <case UNSPEC>: Return 0, don't
5463         abort, for UNSPECs other than CRIS_UNSPEC_PLT.
5464         * config/cris/cris.h (PREDICATE_CODES): Don't define.
5465         * config/cris/cris.md: Include predicates.md.
5466         ("call", "call_value"): Generate CONSTs of Pmode, not VOIDmode.
5467
5468 2005-04-20  Ian Lance Taylor  <ian@airs.com>
5469
5470         * c-common.def: Remove STMT_EXPR (moved to cp/cp-tree.def).
5471         * c-common.h (STMT_EXPR_STMT): Don't define.
5472         (STMT_EXPR_NO_SCOPE): Don't define.
5473         * c-dump.c (c_dump_tree): Don't handle STMT_EXPR.
5474         * c-pretty-print.c (pp_c_primary_expression): Likewise.
5475         (pp_c_expression): Likewise.
5476
5477 2005-04-20  Richard Henderson  <rth@redhat.com>
5478
5479         PR target/21100
5480         * config/i386/mmx.md (push<MMXMODE>1): Fix predicate thinko.
5481
5482 2005-04-20  Jeff Law  <law@redhat.com>
5483
5484         * reload1.c (reload): Ignore equivalences between pseudos and
5485         read only memory.
5486
5487 2005-04-20  Joseph S. Myers  <joseph@codesourcery.com>
5488
5489         PR c/12913
5490         * c-tree.h (struct c_label_list): Update comment.
5491         (struct c_label_context): Rename to struct c_label_context_se.
5492         (label_context_stack): Rename to label_context_stack_se.
5493         (C_DECL_UNJUMPABLE_VM, C_DECL_UNDEFINABLE_VM, struct
5494         c_label_context_vm, label_context_stack_vm, c_begin_vm_scope,
5495         c_end_vm_scope): New.
5496         (C_DECL_DECLARED_BUILTIN, C_DECL_USED): Use FUNCTION_DECL_CHECK.
5497         * c-decl.c (pop_scope): Call c_end_vm_scope.
5498         (pushdecl): Call c_begin_vm_scope for variably modified
5499         declarations.
5500         (define_label): Check for jumping into scope of identifier with
5501         variably modified type.  Push label on stack for those defined at
5502         current context of identifiers with variably modified type.
5503         (start_function): Create stack level for context of identifiers
5504         with variably modified type.
5505         (finish_function): Pop stack level for context of identifiers with
5506         variably modified type.
5507         * c-typeck.c (label_context_stack): Rename to
5508         label_context_stack_se.
5509         (label_context_stack_vm, c_begin_vm_scope, c_end_vm_scope): New.
5510         (c_finish_goto_label): Check for jumping into scope of identifier
5511         with variably modified type.  Push label on stack for those jumped
5512         to from current context of identifiers with variably modified
5513         type.
5514         (struct c_switch): Add blocked_vm.
5515         (c_start_case): Initialize blocked_vm.
5516         (do_case): Check blocked_vm.
5517         (c_finish_case): Add comment.
5518         (c_begin_stmt_expr, c_finish_stmt_expr): Update for renamed
5519         variable label_context_stack.
5520
5521 2005-04-20  Kazu Hirata  <kazu@cs.umass.edu>
5522
5523         * tree-ssa-phiopt.c (tree_ssa_phi_opt): Update calls to
5524         conditional_replacement, value_replacement, abs_replacement,
5525         minmax_replacement.
5526         (replace_phi_edge_with_variable): Remove argument BB.
5527         (conditional_replacement, value_replacement,
5528         minmax_replacement, abs_replacement): Remove argument PHI_BB.
5529         Update a call to replace_phi_edge_with_variable.
5530
5531         * tree-ssa-phiopt.c: Fix comments.
5532
5533 2005-04-20  Michael Matz  <matz@suse.de>
5534
5535         PR20973
5536         * reload.c (push_reload, find_dummy_reload): Check for uninitialized
5537         pseudos.
5538
5539 2005-04-20  Kazu Hirata  <kazu@cs.umass.edu>
5540
5541         * tree-ssa-phiopt.c: Fix comment typos.
5542
5543         PR tree-optimization/21116
5544         * tree-ssa-phiopt.c: Fix a typo.
5545
5546 2005-04-19  Richard Henderson  <rth@redhat.com>
5547
5548         * builtins.c (expand_builtin_sync_operation): Revert last change.
5549         * optabs.c (expand_bool_compare_and_swap): Compare vs old value,
5550         not vs new value.
5551         (expand_compare_and_swap_loop): Likewise.
5552         (expand_sync_operation): Remove fallback from NAND to AND; invert
5553         memory operand when expanding from cmpxchg.
5554         (expand_sync_fetch_operation): Likewise.
5555         * doc/extend.texi (Atomic Builtins): Fix docs for nand and
5556         compare-and-swap.
5557
5558         * config/alpha/alpha.c (alpha_split_atomic_op): Invert memory operand
5559         when implementing NAND.  Fix double-add for AFTER.
5560         * config/alpha/sync.md (sync_nand<I48MODE>): Invert memory operand.
5561         (sync_old_nand<I48MODE>, sync_new_nand<I48MODE>): Likewise.
5562         (sync_compare_and_swap<I48MODE>): Fix compare vs zero.  Return old
5563         memory value.
5564         (sync_lock_test_and_set<I48MODE>): Remove extra label and last
5565         memory barrier.
5566
5567         * config/i386/sync.md (sync_compare_and_swap<IMODE>): Fix pattern
5568         to return old memory value.
5569         (sync_compare_and_swap_cc<IMODE>): Likewise.
5570
5571         * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Early
5572         return pre-reload.  Don't consider output or anti dependencies.
5573         * config/ia64/sync.md (IMODE): New.
5574         (modesuffix): Add QI and HI.
5575         (memory_barrier): Simplify expansion.
5576         (sync_compare_and_swap<IMODE>): Use IMODE, not I48MODE.
5577         (cmpxchg_acq_<IMODE>): Likewise.
5578         (sync_lock_test_and_set<IMODE>): Likewise.
5579         (sync_lock_release<IMODE>): Likewise.
5580
5581 2005-04-19  James A. Morrison  <phython@gcc.gnu.org>
5582
5583         * fold-const.c (fold_binary): Fold ~(X ^ Y) to ~X ^ Y or X ^ ~Y if
5584         ~X or ~Y simplify.
5585
5586 2005-04-19  James A. Morrison  <phython@gcc.gnu.org>
5587
5588         * fold-const (fold_binary):  Fold ~X ^ ~ Y to X ^ Y.
5589
5590 2005-04-20  Michael Pogue  <michael.pogue@sun.com>
5591             Joseph S. Myers  <joseph@codesourcery.com>
5592
5593         * c.opt (Wint-to-pointer-cast, Wpointer-to-int-cast): New options.
5594         * c-typeck.c (build_c_cast): Check these options.
5595         * doc/invoke.texi: Document these options.
5596
5597 2005-04-20  Kazu Hirata  <kazu@cs.umass.edu>
5598
5599         * tree-ssa-phiopt.c: Update a comment about the pass.
5600
5601 2005-04-19  Kazu Hirata  <kazu@cs.umass.edu>
5602
5603         * tree-ssa-phiopt.c, config/arm/arm.c, config/fr30/fr30.md,
5604         config/mcore/mcore.c: Fix comment typos.
5605
5606 2005-04-19  Daniel Jacobowitz  <dan@codesourcery.com>
5607
5608         * Makefile.in (libgcc.mk): Pass GCC_FOR_TARGET.
5609         * mklibgcc.in: Use $GCC_FOR_TARGET instead of ./xgcc.
5610
5611 2005-04-19  Paul Brook  <paul@codesourcery.com>
5612
5613         * config/arm/arm.c (arm_init_libfuncs): Clear mod optabs.
5614
5615 2005-04-19  Andrew Haley  <aph@redhat.com>
5616
5617         PR java/21022
5618         * dbxout.c (dbxout_type_fields): Check DECL_IGNORED_P before
5619         looking at a field's bitpos.
5620
5621 2005-04-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5622
5623         * system.h (fopen, fdopen, freopen): Define these to the unlocked
5624         libiberty functions.
5625
5626 2005-04-19  Kazu Hirata  <kazu@cs.umass.edu>
5627
5628         PR tree-optimization/21096
5629         * tree-ssa-copy.c (fini_copy_prop): Free cached_last_copy_of.
5630
5631 2005-04-19  Alan Modra  <amodra@bigpond.net.au>
5632
5633         PR target/21098
5634         * config/rs6000/rs6000.c (rs6000_elf_end_indicate_exec_stack): New.
5635         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Use the above.
5636
5637 2005-04-19  Alexandre Oliva  <aoliva@redhat.com>
5638
5639         * tree-cfg.c (dump_function_to_file): Use cfun info only if it
5640         refers to the function being dumped.
5641
5642 2005-04-18  Daniel Jacobowitz  <dan@codesourcery.com>
5643
5644         * varasm.c (assemble_start_function): Remove reset of in_section.
5645
5646 2005-04-18  James A. Morrison  <phython@gcc.gnu.org>
5647
5648         PR tree-optimization/21085
5649         * fold-const (fold_binary): Don't change X % -C to X % C if C has
5650         overflowed.
5651
5652 2005-04-19  Ben Elliston  <bje@au.ibm.com>
5653
5654         * doc/invoke.texi (Optimize Options): Refer to the correct
5655         optimisation flag -ftree-dominator-opts, not -ftree-dom.
5656
5657 2005-04-18  Christopher Jaillet <christophe.jaillet@wanadoo.fr>
5658
5659         * config/rs6000/rs6000.c (machopic_output_stub):  Increase
5660         alloca argument to be big enough.
5661
5662 2005-04-18  Alexandre Oliva  <aoliva@redhat.com>
5663
5664         PR middle-end/21049
5665         * tree-cfg.c (dump_function_to_file): Do not crash if cfun or
5666         cfun->cfg are NULL.
5667
5668 2005-04-18  Tom Tromey  <tromey@redhat.com>
5669
5670         * cgraphunit.c (cgraph_finalize_compilation_unit): Fix a comment
5671         typo.
5672
5673 2005-04-18  Richard Henderson  <rth@redhat.com>
5674
5675         * config/alpha/alpha.c (alpha_split_atomic_op): New.
5676         (alphaev5_insn_pipe): Add LD_L, ST_C, MB types.
5677         (alphaev4_insn_pipe): Likewise.  Correct IST and LDSYM pipes.
5678         * config/alpha/alpha-protos.h: Update.
5679         * config/alpha/alpha.md (UNSPECV_MB, UNSPECV_LL, UNSPECV_SC): New.
5680         (UNSPECV_ATOMIC, UNSPECV_CMPXCHG, UNSPECV_XCHG): New.
5681         (attr type): Add ld_l, st_c, mb.
5682         (andsi_internal, andnotsi3, iorsi_internal, one_cmplsi_internal,
5683         iornotsi3, xorsi_internal, xornotsi3): New.
5684         * config/alpha/ev4.md (ev4_ld): Add ld_l.
5685         (ev4_ist_c, ev4_mb): New.
5686         * config/alpha/ev5.md (ev5_st): Add st_c, mb.
5687         (ev5_ld_l): New.
5688         * config/alpha/ev6.md (ev6_ild): Add ld_l.
5689         (ev6_ist): Add st_c.
5690         (ev6_mb): New.
5691         * config/alpha/sync.md: New file.
5692
5693 2005-04-18  Richard Henderson  <rth@redhat.com>
5694
5695         * builtins.c (expand_builtin_sync_operation): Fold nand to and
5696         for constants.
5697
5698         * optabs.c (expand_sync_operation): Fix typo expanding nand to and.
5699
5700 2005-04-18  Devang Patel  <dpatel@apple.com>
5701
5702         * config/rs6000/atlivec.md (mulv4si3): New pattern.
5703
5704 2005-04-18  James A. Morrison  <phython@gcc.gnu.org>
5705
5706         PR tree-optimization/20922
5707         * fold-const.c (fold_binary): Fold X - c > X and X + c < X to false.
5708         Fold X + c >= X and fold X - c <= X to true.
5709
5710 2005-04-18  James A. Morrison  <phython@gcc.gnu.org>
5711
5712         * config/ia64/unwind-ia64.c (emergency_reg_state_free): Make an
5713         unsigned int.
5714         (emergency_labeled_state_free): Likewise.
5715
5716 2005-04-18  Nick Clifton  <nickc@redhat.com>
5717
5718         * config/h8300/h8300.md (jump): Remove prescan parameter from
5719         calls to final_scan_insn.
5720
5721         * config/arc/arc.c (arc_output_function_epilogue): Remove prescan
5722         parameter from calls to final_scan_insn.
5723
5724         * config.gcc (m68hc12): Use the m68hc11.opt file for target
5725         specific options.
5726         (v850e, v850e1): Use the v850.opt file for target specific
5727         options.
5728
5729 2005-04-18  Kazu Hirata  <kazu@cs.umass.edu>
5730
5731         PR tree-optimization/21001
5732         * tree-optimize.c (init_tree_optimization_passes): Move the
5733         first pass_forwprop immediately before pass_vrp.
5734
5735 2005-04-17  Ian Lance Taylor  <ian@airs.com>
5736
5737         * c-common.def (SIZEOF_EXPR, ARROW_EXPR, ALIGNOF_EXPR): Remove.
5738         * c-common.c (c_sizeof_or_alignof_type): Change second parameter
5739         from enum tree_code op to bool is_sizeof.
5740         * c-common.h (c_sizeof_or_alignof_type): Update declaration.
5741         (c_sizeof, c_alignof): Update calls to c_sizeof_or_alignof_type.
5742         * c-pretty-print.c (pp_c_postfix_expression): Remove ARROW_EXPR
5743         case.
5744         (pp_c_unary_expression): Remove SIZEOF_EXPR and ALIGNOF_EXPR
5745         cases.
5746         (pp_c_expression): Remove ARROW_EXPR, SIZEOF_EXPR, and
5747         ALIGNOF_EXPR cases.
5748
5749 2005-04-17  Ian Lance Taylor  <ian@airs.com>
5750
5751         * system.h: Poison DONT_ACCESS_GBLS_AFTER_EPILOGUE.
5752
5753 2005-04-17  Richard Henderson  <rth@redhat.com>
5754
5755         * config/alpha/alpha.c (va_list_skip_additions): Only define if
5756         TARGET_ABI_OSF.
5757         (TARGET_STDARG_OPTIMIZE_HOOK): Likewise.
5758         (alpha_stdarg_optimize_hook): Likewise.  Allow for one more round
5759         of indirection through ssa names while looking for the gpr counter
5760         field.
5761         (alpha_setup_incoming_varargs) <TARGET_ABI_OSF>: Make use of the
5762         saved va_list_gpr_size and va_list_fpr_size.
5763
5764 2005-04-17  Kazu Hirata  <kazu@cs.umass.edu>
5765
5766         * tree-vrp.c (compare_values): Check that VAL1 and VAL2 are
5767         both pointers or both integers.
5768
5769         * tree-vrp.c (maybe_add_assert_expr): Don't assert
5770         ASSERT_EXPRs for single-use variable.
5771
5772         * tree-into-ssa.c: Fix a comment typo.
5773
5774 2005-04-17  Richard Sandiford  <rsandifo@redhat.com>
5775
5776         * config/mips/iris6.h (DRIVER_SELF_SPECS): Check -march as well as
5777         -mipsN before forcing a default of -mips2.
5778
5779 2005-04-17  Kazu Hirata  <kazu@cs.umass.edu>
5780
5781         * predict.h (IS_TAKEN): Remove.
5782         * rtl.h (NOTE_PREDICTION): Likewise.
5783
5784         * modulo-sched.c (CFG_HOOKS): Remove.
5785
5786         * c-parser.c (N_C_TTYPES): Remove.
5787
5788         * tree-flow-inline.h (get_stmt_operands): Remove.
5789         * lambda-code.c, tree-ssa-loop-unswitch.c,
5790         tree-ssa-operands.c, tree-ssa-pre.c, tree-ssa-propagate.c,
5791         tree-ssa-sink.c, tree-ssa.c, tree-tailcall.c,
5792         tree-vect-transform.c, tree-vectorizer.c, tree-vrp.c): Remove
5793         calls to get_stmt_operands.
5794         * doc/tree-ssa.texi: Don't mention get_stmt_operands.
5795
5796 2005-04-17  Richard Henderson  <rth@redhat.com>
5797
5798         PR target/20375
5799         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Advance a copy
5800         of CUMULATIVE_ARGS past the last named argument.
5801         (alpha_va_start): Expect pretend_args_size only if strictly less than
5802         6 named arguments.
5803
5804 2005-04-17  Kazu Hirata  <kazu@cs.umass.edu>
5805
5806         PR middle-end/21024
5807         * builtins.c (expand_builtin_strcat): Convert the result of
5808         strlen to the right type.
5809         * fold-const.c (fold_binary) <PLUS_EXPR>: Use fold_convert to
5810         avoid creating type mismatches.
5811         <GE_EXPR>: Pass op0 and op1 to fold_build2 to avoid creating
5812         type mismatches.
5813
5814         * c-lex.c (WCHAR_TYPE_SIZE, WCHAR_BYTES): Remove.
5815
5816 2005-04-16  Richard Henderson  <rth@redhat.com>
5817
5818         PR target/21051
5819         * builtins.c (expand_builtin) <BUILT_IN_BOOL_COMPARE_AND_SWAP_*>:
5820         Use the mode of boolean_type_node when the user doesn't provide one.
5821         * config/ia64/sync.md (sync_lock_release<I48MODE>): Use operand 1.
5822
5823 2005-04-16  Alexandre Oliva  <aoliva@redhat.com>
5824
5825         PR target/20126
5826         * loop.c (loop_givs_rescan): Handle non-replaceable (plus (reg)
5827         (const)).
5828
5829         * tree-scalar-evolution.c (interpret_rhs_modify_expr): Fix typo in
5830         comment.
5831
5832 2005-04-16  Roger Sayle  <roger@eyesopen.com>
5833             Steven Bosscher  <stevenb@suse.de>
5834
5835         * fold-const.c (fold_binary_to_constant): Delete obsolete comment.
5836         (fold_unary_to_constant): Likewise.
5837
5838 2005-04-16  Kazu Hirata  <kazu@cs.umass.edu>
5839
5840         * basic-block.h: Adjust the value of PROP_SCAN_DEAD_STORES,
5841         PROP_ASM_SCAN.
5842
5843 2005-04-16  Gerald Pfeifer  <gerald@pfeifer.com>
5844
5845         * doc/install.texi (Specific): Avoid using asterisks in @anchor
5846         names related to target triplets.
5847         Remove i?86-*-esix from platform directory.
5848         Remove powerpc-*-eabiaix from platform directory.
5849
5850 2005-04-16  Joseph S. Myers  <joseph@codesourcery.com>
5851
5852         PR middle-end/20491
5853         * config/ia64/ia64.c (rtx_needs_barrier): Recurse instead of
5854         falling through from SUBREG case to REG.
5855
5856 2005-04-15  Roger Sayle  <roger@eyesopen.com>
5857
5858         * fold-const.c (fold_relational_hi_lo): Delete function and prototype.
5859         (fold_binary): Update comment mentioning fold_relational_hi_lo.
5860         (fold_binary_to_constant): Simplify using fold_binary.
5861         (fold_unary_to_constant): Likewise, simplify using fold_unary.
5862
5863 2005-04-15  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5864
5865         * gthr-posix.c (pthread_cancel): Define.
5866         (pthread_mutexattr_init): Likewise.
5867         (pthread_mutexattr_settype): Likewise.
5868         (pthread_mutexattr_destroy): Likewise.
5869
5870 2005-04-15  David S. Miller  <davem@davemloft.net>
5871
5872         PR target/20673
5873         * config/sparc/sparc.h (sparc_hard_reg_printed): Mark as GTY(()).
5874
5875 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
5876
5877         PR tree-optimization/21031
5878         * tree-ssa-forwprop.c (ssa_name_defined_by_comparison_p): New.
5879         (forward_propagate_into_cond_1): Call it.  Forward propagate
5880         integer-integer casts into COND_EXPRs.
5881
5882 2005-04-15  Dave Korn  <dave.korn@artimi.com>
5883
5884         * gcc.c (default_compilers): Clarify obscure error message when
5885         reading from standard input.
5886
5887 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
5888
5889         * basic-block.h (PROP_EQUAL_NOTES): Remove.
5890         * flow.c (propagate_one_insn): Don't use PROP_EQUAL_NOTES.
5891
5892         * tree-ssa-alias.c (init_alias_info): Remove a call to
5893         get_stmt_operands.
5894
5895 2005-04-15  Andrew MacLeod  <amacleod@redhat.com>
5896
5897         * tree-vect-analyze.c (vect_stmt_relevant_p): Process immediate uses
5898         of non-virtual PHI nodes like we use to.
5899
5900 2005-05-15  Paolo Bonzini  <bonzini@gnu.org>
5901
5902         * genattrtab.c (ATTR_EQ_ATTR_P): Remove.
5903         (attr_copy_rtx): Do not use it.
5904
5905 2005-04-15  Andrew Macleod  <amacleod@redhat.com>
5906
5907         * doc/tree-ssa.texi: Grammer/abbreviation updates.
5908
5909 2005-04-15  Diego Novillo  <dnovillo@redhat.com>
5910
5911         * tree-vect-transform.c (vectorizable_store): Mark necessary
5912         objects in the vectorized store needing renaming.  Update the
5913         SSA graph for V_MAY_DEF operands in the original store.
5914
5915 2005-04-14  Daniel Berlin <dberlin@dberlin.org>
5916
5917         * tree-ssa-pre.c (compute_avail): It's okay to have
5918         TREE_INVARIANT's here, and value number the resulting expressions.
5919         (create_expression_by_pieces): Make sure operands that were
5920         min_invariant when we started, stay that way.
5921
5922 2005-04-15  David Edelsohn  <edelsohn@gnu.org>
5923
5924         * doc/install.texi (*-ibm-aix*): Add comment about system limits.
5925
5926 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
5927
5928         PR tree-optimization/20936.
5929         * tree-ssa-ccp.c (visit_assignment): Fix a typo.
5930
5931 2005-04-15  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
5932
5933         * doc/invoke.texi: Fix typos.
5934         * doc/md.texi: Likewise.
5935         * doc/rtl.texi: Likewise.
5936         * doc/sourcebuild.texi: Likewise.
5937         * doc/tm.texi: Likewise.
5938
5939 2005-04-15  Uros Bizjak  <uros@kss-loka.si>
5940
5941         PR tree-optimization/21004
5942         * convert.c (convert_to_integer): Convert ceilf, ceill, floorf
5943         and floorl in c99 mode only.
5944         * builtins.c (expand_builtin_int_roundingfn): Assert that
5945         fallback_fndecl is not NULL_TREE.
5946
5947 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
5948
5949         * cfgrtl.c (purge_all_dead_edge): Remove an unused argument.
5950         * basic-block.h: Update the prototype for
5951         purge_all_dead_edges.
5952         * cfgexpand.c (tree_expand_cfg): Update a call to
5953         purge_all_dead_edges.
5954         * combine.c (combine_instructions): Likewise.
5955         * passes.c (rest_of_handle_old_regalloc, rest_of_handle_cse,
5956         rest_of_handle_cse2, rest_of_handle_gcse,
5957         rest_of_handle_postreload): likewise.
5958
5959 2005-04-15  Alexandre Oliva  <aoliva@redhat.com>
5960
5961         PR middle-end/20739
5962         * gimplify.c (gimplify_addr_expr): Compensate for removal of
5963         e.g. cv-qualification conversions.
5964
5965 2005-04-14  Mike Stump  <mrs@apple.com>
5966
5967         * config/darwin-c.c (framework_construct_pathname): We must
5968         find all headers of a framework in the first instance of it
5969         found in the seach path.
5970
5971 2005-04-14  Kazu Hirata  <kazu@cs.umass.edu>
5972
5973         PR tree-optimization/21021
5974         * tree-vrp.c (compare_values): Work around a bug in the front
5975         end that produces a comparison of mismatched types.
5976
5977 2004-04-14  Richard Henderson  <rth@redhat.com>
5978
5979         * config/ia64/ia64.h (enum fetchop_code): Remove.
5980         (enum ia64_builtins): Move ...
5981         * config/ia64/ia64.c (enum ia64_builtins): ... here.  Remove all
5982         members except BSP and FLUSHRS.
5983         (ia64_init_builtins): Remove __sync builtins.
5984         (ia64_expand_builtin): Likewise.
5985         (ia64_expand_fetch_and_op, ia64_expand_op_and_fetch): Remove.
5986         (ia64_expand_compare_and_swap, ia64_expand_lock_test_and_set): Remove.
5987         (ia64_expand_lock_release): Remove.
5988         * config/ia64/ia64.md (mf): Move to sync.md.
5989         (mf_internal, fetchadd_acq_si, fetchadd_acq_di, cmpxchg_acq_si,
5990         cmpxchg_acq_di, xchgsi, xchgdi): Likewise.
5991         * config/ia64/sync.md: New file.
5992         (memory_barrier): Rename from mf.
5993         (fetchadd_acq_<I48MODE>): Macroize from _si/_di patterns.
5994         (cmpxchg_acq_<I48MODE>): Likewise.
5995         (sync_lock_test_and_set<I48MODE>): Likewise.
5996
5997         * config/ia64/ia64intrin.h: Define nothing for C; limit #defines
5998         to c++.  Remove __sync* declarations.  s/_si/_4/.  s/_di/_8/.
5999
6000 2004-04-14  Richard Henderson  <rth@redhat.com>
6001
6002         * config/i386/i386.c (x86_cmpxchg, x86_xadd): New.
6003         (ix86_compare_emitted): New.
6004         (ix86_expand_compare): Use ix86_compare_emitted if set.
6005         (ix86_expand_setcc): Only emit REG_EQUAL if both ix86_compare_op0
6006         and ix86_compare_op0 are set.
6007         * config/i386/i386.h (x86_cmpxchg, x86_xadd): Declare.
6008         (TARGET_CMPXCHG, TARGET_XADD): New.
6009         (ix86_compare_emitted): Declare.
6010         * config/i386/i386.md: Include sync.md
6011         (UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2): New.
6012         (UNSPECV_XCHG, UNSPECV_LOCK): New.
6013         * config/i386/sync.md: New file.
6014
6015 2004-04-14  Richard Henderson  <rth@redhat.com>
6016
6017         PR middle-end/14311
6018         * builtin-types.def (BT_BOOL, BT_VOLATILE_PTR, BT_I1, BT_I2,
6019         BT_I4, BT_I8, BT_FN_VOID_VPTR, BT_FN_I1_VPTR_I1, BT_FN_I2_VPTR_I2,
6020         BT_FN_I4_VPTR_I4, BT_FN_I8_VPTR_I8, BT_FN_BOOL_VPTR_I1_I1,
6021         BT_FN_BOOL_VPTR_I2_I2, BT_FN_BOOL_VPTR_I4_I4, BT_FN_BOOL_VPTR_I8_I8,
6022         BT_FN_I1_VPTR_I1_I1, BT_FN_I2_VPTR_I2_I2, BT_FN_I4_VPTR_I4_I4,
6023         BT_FN_I8_VPTR_I8_I8): New.
6024         * builtins.def (DEF_SYNC_BUILTIN): New.
6025         (BUILT_IN_FETCH_AND_ADD_N, BUILT_IN_FETCH_AND_ADD_1,
6026         BUILT_IN_FETCH_AND_ADD_2, BUILT_IN_FETCH_AND_ADD_4,
6027         BUILT_IN_FETCH_AND_ADD_8, BUILT_IN_FETCH_AND_SUB_N,
6028         BUILT_IN_FETCH_AND_SUB_1, BUILT_IN_FETCH_AND_SUB_2,
6029         BUILT_IN_FETCH_AND_SUB_4, BUILT_IN_FETCH_AND_SUB_8,
6030         BUILT_IN_FETCH_AND_OR_N, BUILT_IN_FETCH_AND_OR_1,
6031         BUILT_IN_FETCH_AND_OR_2, BUILT_IN_FETCH_AND_OR_4,
6032         BUILT_IN_FETCH_AND_OR_8, BUILT_IN_FETCH_AND_AND_N,
6033         BUILT_IN_FETCH_AND_AND_1, BUILT_IN_FETCH_AND_AND_2,
6034         BUILT_IN_FETCH_AND_AND_4, BUILT_IN_FETCH_AND_AND_8,
6035         BUILT_IN_FETCH_AND_XOR_N, BUILT_IN_FETCH_AND_XOR_1,
6036         BUILT_IN_FETCH_AND_XOR_2, BUILT_IN_FETCH_AND_XOR_4,
6037         BUILT_IN_FETCH_AND_XOR_8, BUILT_IN_FETCH_AND_NAND_N,
6038         BUILT_IN_FETCH_AND_NAND_1, BUILT_IN_FETCH_AND_NAND_2,
6039         BUILT_IN_FETCH_AND_NAND_4, BUILT_IN_FETCH_AND_NAND_8,
6040         BUILT_IN_ADD_AND_FETCH_N, BUILT_IN_ADD_AND_FETCH_1,
6041         BUILT_IN_ADD_AND_FETCH_2, BUILT_IN_ADD_AND_FETCH_4,
6042         BUILT_IN_ADD_AND_FETCH_8, BUILT_IN_SUB_AND_FETCH_N,
6043         BUILT_IN_SUB_AND_FETCH_1, BUILT_IN_SUB_AND_FETCH_2,
6044         BUILT_IN_SUB_AND_FETCH_4, BUILT_IN_SUB_AND_FETCH_8,
6045         BUILT_IN_OR_AND_FETCH_N, BUILT_IN_OR_AND_FETCH_1,
6046         BUILT_IN_OR_AND_FETCH_2, BUILT_IN_OR_AND_FETCH_4,
6047         BUILT_IN_OR_AND_FETCH_8, BUILT_IN_AND_AND_FETCH_N,
6048         BUILT_IN_AND_AND_FETCH_1, BUILT_IN_AND_AND_FETCH_2,
6049         BUILT_IN_AND_AND_FETCH_4, BUILT_IN_AND_AND_FETCH_8,
6050         BUILT_IN_XOR_AND_FETCH_N, BUILT_IN_XOR_AND_FETCH_1,
6051         BUILT_IN_XOR_AND_FETCH_2, BUILT_IN_XOR_AND_FETCH_4,
6052         BUILT_IN_XOR_AND_FETCH_8, BUILT_IN_NAND_AND_FETCH_N,
6053         BUILT_IN_NAND_AND_FETCH_1, BUILT_IN_NAND_AND_FETCH_2,
6054         BUILT_IN_NAND_AND_FETCH_4, BUILT_IN_NAND_AND_FETCH_8,
6055         BUILT_IN_BOOL_COMPARE_AND_SWAP_N, BUILT_IN_BOOL_COMPARE_AND_SWAP_1,
6056         BUILT_IN_BOOL_COMPARE_AND_SWAP_2, BUILT_IN_BOOL_COMPARE_AND_SWAP_4,
6057         BUILT_IN_BOOL_COMPARE_AND_SWAP_8, BUILT_IN_VAL_COMPARE_AND_SWAP_N,
6058         BUILT_IN_VAL_COMPARE_AND_SWAP_1, BUILT_IN_VAL_COMPARE_AND_SWAP_2,
6059         BUILT_IN_VAL_COMPARE_AND_SWAP_4, BUILT_IN_VAL_COMPARE_AND_SWAP_8,
6060         BUILT_IN_LOCK_TEST_AND_SET_N, BUILT_IN_LOCK_TEST_AND_SET_1,
6061         BUILT_IN_LOCK_TEST_AND_SET_2, BUILT_IN_LOCK_TEST_AND_SET_4,
6062         BUILT_IN_LOCK_TEST_AND_SET_8, BUILT_IN_LOCK_RELEASE_N,
6063         BUILT_IN_LOCK_RELEASE_1, BUILT_IN_LOCK_RELEASE_2,
6064         BUILT_IN_LOCK_RELEASE_4, BUILT_IN_LOCK_RELEASE_8,
6065         BUILT_IN_SYNCHRONIZE: New.
6066         * builtins.c (called_as_built_in): Rewrite from CALLED_AS_BUILT_IN
6067         as a function.  Accept __sync_ as a prefix as well.
6068         (expand_builtin_sync_operation, expand_builtin_compare_and_swap,
6069         expand_builtin_lock_test_and_set, expand_builtin_synchronize,
6070         expand_builtin_lock_release): New.
6071         (expand_builtin): Call them.
6072         * c-common.c (DEF_BUILTIN): Don't require __builtin_ prefix if
6073         neither BOTH_P nor FALLBACK_P are defined.
6074         (builtin_type_for_size): New.
6075         (sync_resolve_size, sync_resolve_params, sync_resolve_return): New.
6076         (resolve_overloaded_builtin): New.
6077         * c-common.h (resolve_overloaded_builtin): Declare.
6078         (builtin_type_for_size): Declare.
6079         * c-typeck.c (build_function_call): Invoke resolve_overloaded_builtin.
6080         * expr.c (sync_add_optab, sync_sub_optab, sync_ior_optab,
6081         sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab,
6082         sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab,
6083         sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab,
6084         sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab,
6085         sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap,
6086         sync_compare_and_swap_cc, sync_lock_test_and_set,
6087         sync_lock_release): New.
6088         * optabs.h: Declare them.
6089         * expr.h (expand_val_compare_and_swap, expand_bool_compare_and_swap,
6090         expand_sync_operation, expand_sync_fetch_operation,
6091         expand_sync_lock_test_and_set): Declare.
6092         * genopinit.c (optabs): Add sync optabs.
6093         * optabs.c (init_optabs): Initialize sync optabs.
6094         (expand_val_compare_and_swap_1, expand_val_compare_and_swap,
6095         expand_bool_compare_and_swap, expand_compare_and_swap_loop,
6096         expand_sync_operation, expand_sync_fetch_operation,
6097         expand_sync_lock_test_and_set): New.
6098         * doc/extend.texi (Atomic Builtins): New section
6099         * doc/md.texi (Standard Names): Add sync patterns.
6100
6101 2005-04-14  Alexandre Oliva  <aoliva@redhat.com>
6102
6103         * tree-eh.c (lower_try_finally_copy): Generate new code in
6104         response to goto_queue entries as if the queue was sorted by
6105         index, not pointers.
6106         (lower_try_finally_switch): Likewise.
6107
6108 2005-04-14  Richard Henderson  <rth@redhat.com>
6109
6110         * config/i386/i386.c (ix86_expand_sse_cmp): Split out from ...
6111         (ix86_expand_sse_movcc): ... here.  Take cmp as a pre-computed
6112         register.
6113         (ix86_expand_fp_movcc): Update to match.
6114         (ix86_expand_fp_vcond, ix86_expand_int_vcond): New.
6115         * config/i386/i386-protos.h: Update.
6116         * config/i386/sse.md (vcondv4sf, vcondv2df): New.
6117         (vcond<SSEMODE124>, vcondu<SSEMODE12>): New.
6118
6119 2005-04-14  Joseph S. Myers  <joseph@codesourcery.com>
6120
6121         * doc/cpp.texi, doc/install.texi: Change references to GCC 3.5 to
6122         refer to 4.0.
6123
6124 2005-04-14  Julian Brown  <julian@codesourcery.com>
6125
6126         * Revert elfos.h part of my patch from 2005-04-13 for causing libstdc++
6127         link failures on ppc64 Linux.
6128
6129 2005-04-14  Andreas Krebbel  <krebbel1@de.ibm.com>
6130
6131         * config.gcc: Set cpu_type for s390.
6132
6133 2005-04-14  Daniel Berlin  <dberlin@dberlin.org>
6134
6135         Fix PR tree-optimization/20963
6136         * tree-ssa-pre.c (compute_avail): Remove special case for
6137         TREE_INVARIANT.
6138         (create_expression_by_pieces): Add value numbers for forced out
6139         statements.
6140
6141 2005-04-14  Hans-Peter Nilsson  <hp@axis.com>
6142
6143         * config/cris/cris.md: Replace references to (reg:SI 16) with
6144         (reg:SI CRIS_SRP_REGNUM).
6145
6146 2005-04-14  Kazu Hirata  <kazu@cs.umass.edu>
6147
6148         PR tree-optimization/20657
6149         * tree-vrp.c (extract_range_from_expr): Notice INTEGER_CST to
6150         create an appropriate range from it.
6151
6152 2005-04-14  Uros Bizjak  <uros@kss-loka.si>
6153
6154         * reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST_FLOOR> and
6155         <UNSPEC_FIST_CEIL> case.
6156
6157         * config/i386/i386.md (UNSPEC_FIST_FLOOR, UNSPEC_FIST_CEIL): New.
6158         (*fist<mode>2_floor_1, fistdi2_floor, fistdi2_floor_with_temp)
6159         (fist<mode>2_floor, fist<mode>2_floor_with_temp): New isns patterns
6160         to implement lfloor and llfloor built-ins as x87 intrinsic function.
6161         (fistdi2_floor, fist<mode>2_floor splitters): New splitters.
6162         (lfloor<mode>2): New expanders.
6163         (*fist<mode>2_ceil_1, fistdi2_ceil, fistdi2_ceil_with_temp)
6164         (fist<mode>2_ceil, fist<mode>2_ceil_with_temp): New isns patterns
6165         to implement lceil and llceil built-ins as x87 intrinsic function.
6166         (fistdi2_ceil, fist<mode>2_ceil splitters): New splitters.
6167         (lceil<mode>2): New expanders.
6168
6169 2005-04-14  Uros Bizjak  <uros@kss-loka.si>
6170
6171         * convert.c (convert_to_integer): Convert (long int)trunc{,f,l},
6172         and (long long int)ceil{,f,l} into FIX_TRUNC_EXPR.
6173
6174 2005-04-14  Ulrich Weigand  <uweigand@de.ibm.com>
6175
6176         PR target/20927
6177         * config/s390/s390-modes.def: Define TFmode.
6178
6179 2005-04-13  Richard Sandiford  <rsandifo@redhat.com>
6180
6181         * config/mips/mips.h (ASM_OUTPUT_CASE_LABEL): Delete.
6182         (JUMP_TABLES_IN_TEXT_SECTION): Define.
6183         * config/mips/mips.c (mips16_insn_length): Remove reference to
6184         JUMP_TABLES_IN_TEXT_SECTION.
6185
6186 2005-04-13 Fariborz Jahanian <fjahanian@apple.com>
6187
6188         * simplify-rtx.c (simplify_binary_operation_1): Return
6189         scalar or vector of constant 0, depending on the xor's
6190         mode.
6191
6192 2005-04-13  Dale Johannesen  <dalej@apple.com>
6193
6194         * objc/Make-lang.in (objc-lang.o):  Depend on tree-gimple.h.
6195         (objc-act.o):  Ditto.
6196         * objc/objc-act.c (objc_gimplify_expr):  New.
6197         (objc_get_callee_fndecl):  New.
6198         * objc/objc-act.h:  Include tree-gimple.h.  Declare new functions.
6199         * objc/objc-lang.c (LANG_HOOKS_GIMPLIFY_EXPR):  Define.
6200         (LANG_HOOKS_GET_CALLEE_FNDECL):  Define.
6201
6202 2005-04-13  Devang Patel  <dpatel@apple.com>
6203
6204         * tree-if-conv.c (tree_if_convert_cond_expr): Do not create extra
6205         temp variables.
6206
6207 2005-04-13  Hans-Peter Nilsson  <hp@axis.com>
6208
6209         CRIS prologue as RTL.
6210         * config/cris/cris-protos.h (cris_emit_movem_store)
6211         (cris_expand_prologue): Prototype.
6212         * config/cris/cris.c (struct machine_function): New member
6213         stdarg_regs.
6214         (cfa_label_num, cris_target_asm_function_prologue): Remove.
6215         (TARGET_ASM_FUNCTION_PROLOGUE): Don't override.
6216         (cris_general_operand_or_gotless_symbol): Accept CRIS_UNSPEC_GOT.
6217         (cris_load_multiple_op, cris_return_address_on_stack)
6218         (cris_return_address_on_stack_for_return): ISO-Cify.
6219         (cris_store_multiple_op): New predicate function.
6220         (cris_expand_prologue, cris_emit_movem_store): New functions.
6221         (cris_print_operand) <case 'O'>: Handle modifications other than
6222         post-increment.
6223         (cris_symbol, cris_got_symbol): Return 0 for CRIS_UNSPEC_GOT.
6224         (cris_gotless_symbol): Return 1 for CRIS_UNSPEC_GOT.
6225         (cris_gen_movem_load): Rearrange slightly to make local variable
6226         src a parameter, removing osrc.
6227         (cris_setup_incoming_varargs): Set machine_function member
6228         stdarg_regs to correspond to the number of registers that need to
6229         be saved.
6230         * config/cris/cris.h (EXTRA_CONSTRAINT_S): Accept
6231         CRIS_UNSPEC_GOT.
6232         (PREDICATE_CODES): Add cris_store_multiple_op.  Make
6233         cris_general_operand_or_gotless_symbol accept UNSPEC.
6234         * config/cris/cris.md (CRIS_UNSPEC_GOT): New constant.
6235         ("*movsi_internal") <alternative 8>: Handle CRIS_UNSPEC_GOT.
6236         ("*cris_store_multiple"): New pattern.  Tweak common comment above
6237         this and "*cris_load_multiple".
6238         ("prologue"): New define_expand.
6239
6240         * config/cris/cris.md ("epilogue"): Conditionalize on
6241         TARGET_PROLOGUE_EPILOGUE.
6242
6243 2005-04-13  Steve Ellcey  <sje@cup.hp.com>
6244
6245         PR target/20924
6246         * config/ia64/ia64.md (divsf3_internal_lat): Generate frcpa with
6247         fpsr 0 instead of fpsr 1.
6248         (divsf3_internal_thr): Ditto.
6249         (divdf3_internal_lat): Ditto.
6250         (divdf3_internal_thr): Ditto.
6251         (divxf3_internal_lat): Ditto.
6252         (divxf3_internal_thr): Ditto.
6253
6254 2005-04-13  Kazu Hirata  <kazu@cs.umass.edu>
6255
6256         PR tree-optimization/20913
6257         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Fold COND_EXPR.
6258
6259         PR tree-optimization/20702
6260         * tree-vrp.c (maybe_add_assert_expr): Recurse into
6261         dominator children that haven't been walked into.
6262
6263 2005-04-13  Julian Brown  <julian@codesourcery.com>
6264
6265         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK from
6266         being used for symbols with vague linkage when HAVE_GAS_COMDAT_GROUP
6267         is true.
6268
6269 2005-04-13  Kazu Hirata  <kazu@cs.umass.edu>
6270
6271         * basic-block.h, tree-ssa-uncprop.c, varasm.c,
6272         config/i386/sse.md: Fix comment typos.
6273
6274         * genattrtab.c (NULL_ATTR): Remove.
6275         * ifcvt.c (NULL_EDGE): Likewise.
6276
6277         * rtl.h (RTX_EXPR_FIRST, RTX_EXPR_LAST): Remove.
6278
6279         * rtl.h (NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS,
6280         NOTE_PREDICT): Remove.
6281
6282 2005-04-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
6283
6284         * configure.ac (gcc_AC_CHECK_DECLS): Add vsnprintf.
6285         * configure: Regenerate.
6286         * config.in: Likewise.
6287         * system.h: Declare vsnprintf if not already declared.
6288
6289 2005-04-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
6290
6291         * optc-gen.awk: Handle stand-alone Mask records.
6292         * opth-gen.awk: Likewise.
6293         * doc/options.texi (Option file format): Document them.
6294         * config.gcc (sparc-*-netbsdelf*, sparc-*-linux*, sparc64-*-freebsd*,
6295         sparc64-*-linux*, sparc64-*-netbsd*): Add long-double-switch.opt.
6296         (sparc64-*-openbsd*, sparc64-*-elf*): Add little-endian.opt.
6297         * config/sparc/sparc.h (MASK_FPU, MASK_UNALIGNED_DOUBLES,
6298         MASK_V8, MASK_SPARCLITE, MASK_SPARCLET, MASK_V9,
6299         MASK_DEPRECATED_V8_INSNS, MASK_IMPURE_TEXT, MASK_APP_REGS,
6300         MASK_HARD_QUAD, MASK_LITTLE_ENDIAN, MASK_PTR64, MASK_64BIT,
6301         MASK_STACK_BIAS, MASK_FPU_SET, MASK_VIS, MASK_V8PLUS,
6302         MASK_FASTER_STRUCTS, MASK_LONG_DOUBLE_128): Delete.
6303         (TARGET_FPU, TARGET_UNALIGNED_DOUBLES, TARGET_V8, TARGET_SPARCLITE,
6304         TARGET_SPARCLET, TARGET_V9, TARGET_DEPRECATED_V8_INSNS,
6305         TARGET_IMPURE_TEXT, TARGET_APP_REGS, MASK_HARD_QUAD,
6306         TARGET_LITTLE_ENDIAN, TARGET_PTR64, TARGET_64BIT, MASK_STACK_BIAS,
6307         TARGET_FPU_SET, TARGET_VIS, TARGET_V8PLUS, TARGET_FASTER_STRUCTS,
6308         TARGET_LONG_DOUBLE_128): Likewise.
6309         (TARGET_SWITCHES, SUBTARGET_SWITCHES): Likewise.
6310         (TARGET_OPTIONS, SUBTARGET_OPTIONS): Likewise.
6311         * config/sparc/freebsd.h (SUBTARGET_SWITCHES): Likewise.
6312         * config/sparc/linux.h (SUBTARGET_SWITCHES): Likewise.
6313         * config/sparc/linux64.h (SUBTARGET_SWITCHES): Likewise.
6314         * config/sparc/netbsd-elf.h (SUBTARGET_SWITCHES): Likewise.
6315         * config/sparc/sp64-elf.h (SUBTARGET_SWITCHES): Likewise.
6316         * config/sparc/sparc.c (fpu_option_set): New global.
6317         (sparc_handle_option): New function.
6318         (sparc_override_options): Test fpu_option_set.
6319         (TARGET_DEFAULT_TARGET_FLAGS): Set to TARGET_DEFAULT.
6320         (TARGET_HANDLE_OPTION): Set to sparc_handle_option.
6321         * config/sparc/sparc.opt: New file.
6322         * config/sparc/little-endian.opt: Likewise.
6323         * config/sparc/long-double-switch.opt: Likewise.
6324
6325 2005-04-13  Bernd Schmidt  <bernd.schmidt@analog.com>
6326
6327         * config/bfin/bfin.c (bfin_lib_id_given): New static variable.
6328         (bfin_handle_options): Set it if -mshared-library-id= is seen.
6329         * config/bfin/bfin.opt (mshared-library-id=): Lose
6330         Var(bfin_lib_id_given).
6331
6332 2005-04-13  Matt Thomas  <matt@3am-software.com>
6333
6334         * config/rs6000/sysv4.h (NO_IMPLICIT_EXTERN_C): undefine before
6335         defining.
6336
6337 2005-04-13  Kazu Hirata  <kazu@cs.umass.edu>
6338
6339         * rtl.h (CLEAR_RTX_FLAGS): Remove.
6340
6341         * cgraphunit.c (INSNS_PER_CALL): Remove.
6342
6343         * tree-ssa-forwprop.c (vars,
6344         record_single_argument_cond_exprs,
6345         substitute_single_use_vars): Remove.
6346         (forward_propagate_into_cond_1, forward_propagate_into_cond):
6347         New.
6348         (tree_ssa_forward_propagate_single_use_vars): Call
6349         forward_propagate_into_cond for each COND_EXPR.
6350
6351         * tree-inline.c (INSNS_PER_STMT): Remove.
6352
6353 2005-04-12  Richard Henderson  <rth@redhat.com>
6354
6355         * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Split ...
6356         (ix86_expand_sse_fp_minmax): ... from ...
6357         (ix86_expand_fp_movcc): ... here.
6358         (ix86_expand_sse_movcc): Rewrite from ix86_split_sse_movcc.
6359         * config/i386/i386-protos.h: Update.
6360         * config/i386/i386.md (UNSPEC_IEEE_MIN, UNSPEC_IEEE_MAX): New.
6361         (sse_setccsf, sse_setccdf): Allow before reload.
6362         (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): Remove.
6363         (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): Remove.
6364         (ieee_sminsf3, ieee_smaxsf3, ieee_smindf3, ieee_smaxdf3): New.
6365         * config/i386/sse.md (andsf3, nandsf3, iorsf3, xorsf3): New.
6366         (anddf3, nanddf3, iordf3, xordf3): New.
6367
6368 2005-04-12  Jeff Law  <law@redhat.com>
6369
6370         * Makefile.in (OBJS-common): Add tree-ssa-uncprop.o.
6371         (tree-ssa-uncprop.o): Add dependencies.
6372         * tree-cfg.c (remove_useless_stmts_bb, remove_useless_stmts): Remove.
6373         * tree-flow.h (remove_useless_stmts): Remove prototype.
6374         * tree-outof-ssa.c (rewrite_out_of_ssa): Remove call to
6375         remove_useless_stmts.
6376         * timevar.def (TV_TREE_SSA_UNCPROP): New timevar.
6377         * tree-optimize.c (init_tree_optimization_passes): Add uncprop pass.
6378         * tree-pass.h (pass_uncprop): Declare.
6379         * tree-ssa-uncprop.c: New file.
6380
6381 2005-04-12  James E. Wilson  <wilson@specifixinc.com>
6382
6383         PR target/20670
6384         * unwind-ia64.c (uw_intall_context): Add missing load of r27.
6385
6386 2005-04-12  Caroline Tice  <ctice@apple.com>
6387
6388         Temporary fix for partitioning problems.
6389         * passes.c (rest_of_handle_final): Remove code that
6390         frees unlikely_text_section_name,
6391         * varasm.c (assemble_start_function): Test for partitioning
6392         flag before writing out section labels.
6393         (assemble_end_function): Test for partitioning flag before
6394         writing out section labels.
6395
6396 2005-04-12  Steven Bosscher  <stevenb@suse.de>
6397             Stuart Hastings <stuart@apple.com>
6398             Jan Hubicka  <jh@suse.cz>
6399
6400         * Makefile.in: Add function.h to BASIC_BLOCK_H.  Remove all
6401         references to gt-tree-cfg.h.
6402         * basic-block.h (struct basic_block_def): Don't skip rbi
6403         for garbage collection.
6404         (struct reorder_block_def): Make GTY-able.
6405         (struct control_flow_graph): New structure.
6406         (n_edges, n_basic_blocks, last_basic_block, basic_block_info,
6407         BASIC_BLOCK, EXIT_BLOCK_PTR, ENTRY_BLOCK_PTR): No longer vars,
6408         but instead defines to the control_flow_graph for cfun.
6409         (label_to_block_map): New define, points to the label map of
6410         the control_flow_graph for cfun.
6411         (n_edges_for_function, n_basic_blocks_for_function,
6412         last_basic_block_for_function, basic_block_info_for_function,
6413         EXIT_BLOCK_PTR_FOR_FUNCTION, ENTRY_BLOCK_PTR_FOR_FUNCTION,
6414         basic_block_info_for_function, label_to_block_map_for_function):
6415         Counterparts for the above, taking a struct function as an extra
6416         argument.
6417         (alloc_rbi_pool, free_rbi_pool): Remove prototypes.
6418         * cfg.c: (n_edges, n_basic_blocks, last_basic_block,
6419         basic_block_info, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Remove.
6420         (alloc_rbi_pool, free_rbi_pool): Remove.
6421         (initialize_bb_rbi): Use ggc_alloc_cleared instead of pool_alloc.
6422         * cfglayout.c: (cfg_layout_initialize): Don't allocate the rbi pool
6423         here...
6424         (cfg_layout_finalize) ... and don't free it here.
6425         * cfgrtl.c (cfg_layout_delete_block): Zero out rbi so it gets
6426         garbage collected.
6427         * flow.c (free_basic_block_vars): Set label_to_block_map and
6428         n_edges to zero too.
6429         * function.h (struct function): Add cfg field.
6430         * function.c (allocate_struct_function): Allocate the cfg.
6431         * tree-cfg.c (label_to_block_map): Remove.
6432         (build_tree_cfg): Don't allocate the rbi pool here...
6433         (delete_tree_cfg_annotations): ...and don't free it here.
6434         Also don't nullify label_to_block_map for cfun.
6435
6436 2005-04-12  Caroline Tice  <ctice@apple.com>
6437
6438         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
6439         Revert my patch from April 9.
6440         (fix_edges_for_rarely_executed_code): Revert my patch from April 9.
6441         (reorder_basic_blocks): Revert my patch from April 9.
6442         (insert_section_boundary_note): Revert my patch from April 9.
6443         * dbxout.c (dbxout_function_end): Revert my patch from April 9.
6444         * dwarf2out.c (COLD_TEXT_SECTION_LABEL): Revert my patch from April 9.
6445         (COLD_END_LABEL):  Revert my patch from April 9.
6446         (cold_text_section_label):  Revert my patch from April 9.
6447         (cold_end_label): Revert my patch from April 9.
6448         (dwarf2out_switch_text_section): Revert my patch from April 9.
6449         (output_aranges): Revert my patch from April 9.
6450         (output_ranges):  Revert my patch from April 9.
6451         (output_line_info): Revert my patch from April 9.
6452         (add_location_or_const_value_attribute):  Revert my patch from April 9.
6453         (dwarf2out_var_location): Revert my patch from April 9.
6454         (dwarf2out_init):  Revert my patch from April 9.
6455         (dwarf2out_finish): Revert my patch from April 9.
6456         * function.h (struct function): Revert my patch from April 9.
6457         * opts.c (decode_options): Revert my patch from April 9.
6458         * output.h (unlikely_section_label, hot_section_label,
6459         hot_section_end_label, cold_section_end_label,
6460         unlikely_text_section_name): Revert my patch from April 9.
6461         * passes.c (rest_of_handle_final): Revert my patch from April 9.
6462         * varasm.c (unlikely_section_label, hot_section_label,
6463         hot_section_end_label, cold_section_end_label,
6464         unlikely_text_section_name): Revert my patch from April 9.
6465         (initialize_cold_section_name): Revert my patch from April 9.
6466         (unlikely_text_section): Revert my patch from April 9.
6467         (in_unlikely_text_section): Revert my patch from April 9.
6468         (named_section): Revert my patch from April 9.
6469         (function_section): Revert my patch from April 9.
6470         (current_function_section): Revert my patch from April 9.
6471         (assemble_start_function): Revert my patch from April 9.
6472         (assemble_end_function): Revert my patch from April 9.
6473         (default_section_type_flags_1): Revert my patch from April 9.
6474
6475 2005-04-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
6476
6477         * config/sparc/sparc.h (APPLY_RESULT_SIZE): Set to 24 in 64-bit mode.
6478         * config/sparc/sparc.md (untyped_call): Save the registers manually.
6479
6480         * config/sparc/sparc.c (legitimate_address_p): Use TARGET_ARCH32.
6481
6482 2005-04-12  Ulrich Weigand  <uweigand@de.ibm.com>
6483
6484         PR middle-end/20917
6485         * config/s390/s390.md ("*set_tp"): Use SET in pattern.
6486         ("set_tp_64", "set_tp_31"): Adapt expanded pattern.
6487
6488 2004-04-12  Richard Henderson  <rth@redhat.com>
6489
6490         * config/i386/i386.md (UNSPEC_FIX, UNSPEC_MOVA, UNSPEC_SHUFFLE,
6491         UNSPEC_PSHUFLW, UNSPEC_PSHUFHW, UNSPEC_ADDSUB, UNSPEC_HADD,
6492         UNSPEC_HSUB, UNSPEC_MOVSHDUP, UNSPEC_MOVSLDUP, UNSPEC_MOVDDUP): Remove.
6493         (UNSPEC_*, UNSPECV_*): Renumber.
6494
6495 2005-04-12  Frank Ch. Eigler  <fche@redhat.com>
6496
6497         PR mudflap/19266
6498         From Richard Henderson <rth@redhat.com>:
6499         * tree-mudflap.c (mf_build_check_statement_for): Correct block
6500         splitting logic.
6501
6502 2005-04-12  Dorit Naishlos  <dorit@il.ibm.com>
6503
6504         * tree-cfg.c (tree_verify_flow_info): Use LABEL_EXPR_LABEL.
6505
6506 2005-04-12  Bernd Schmidt  <bernd.schmidt@analog.com>
6507
6508         * config/bfin/bfin.c (bfin_library_id_string): Remove.
6509         (bfin_library_id): New variable.
6510         (bfin_expand_prologue): Use bfin_library_id and bfin_lib_id_given
6511         instead of bfin_library_id_string.
6512         (bfin_handle_option): New function.
6513         (override_options): Remove most code to deal with shared library IDs,
6514         just check they aren't used without -mid-shared-library.
6515         (TARGET_HANDLE_OPTION): Define.
6516         * config/bfin/bfin.h (TARGET_OPTIONS): Delete macro.
6517         * config/bfin/bfin.opt (mshared-library-id=): New.
6518
6519 2005-04-12  Kazu Hirata  <kazu@cs.umass.edu>
6520
6521         * tree-vect-transform.c: Fix comment typos.
6522
6523 2005-04-12 Mostafa Hagog <mustafa@il.ibm.com>
6524
6525         * postreload-gcse.c (eliminate_partially_redundant_load): Don't
6526         split critical edges when not possible/profitable.
6527
6528 2005-04-12  Richard Sandiford  <rsandifo@redhat.com>
6529
6530         * config/ns32k/ns32k.h (target_flags, MASK_32081, MASK_RTD)
6531         (MASK_REGPARM, MASK_32532, MASK_32332, MASK_NO_SB, MASK_NO_BITFIELD)
6532         (MASK_HIMEM, MASK_32381, MASK_MULT_ADD, MASK_SRC, MASK_IEEE_COMPARE)
6533         (TARGET_32081, TARGET_32381, TARGET_MULT_ADD, TARGET_RTD)
6534         (TARGET_REGPARM, TARGET_32532, TARGET_32332, TARGET_SB, TARGET_HIMEM)
6535         (TARGET_BITFIELD, TARGET_IEEE_COMPARE, TARGET_SWITCHES): Delete.
6536         (OVERRIDE_OPTIONS): Clear MASK_SB instead of setting MASK_NO_SB.
6537         * config/ns32k/netbsd.h (TARGET_DEFAULT): Remove MASK_NO_SB and
6538         MASK_NO_BITFIELD.
6539         * config/ns32k/ns32k.c (ns32k_handle_option): New function.
6540         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
6541         * config/ns32k/ns32k.opt: New file.
6542
6543 2005-04-12  Richard Sandiford  <rsandifo@redhat.com>
6544
6545         * config.gcc (m68k-*-linux*): Add m68k/ieee.opt to $extra_options.
6546         * config/m68k/m68k.h (target_flags, MASK_68020, TARGET_68020)
6547         (MASK_68030, TARGET_68030, MASK_68040, TARGET_68040, MASK_68040_ONLY)
6548         (TARGET_68040_ONLY, MASK_68060, TARGET_68060, MASK_5200, TARGET_5200)
6549         (MASK_CFV3, TARGET_CFV3, MASK_CFV4, TARGET_CFV4, MASK_528x)
6550         (TARGET_528x, MASK_CF_HWDIV, TARGET_CF_HWDIV, MASK_68881, TARGET_68881)
6551         (MASK_BITFIELD, TARGET_BITFIELD, MASK_SHORT, TARGET_SHORT)
6552         (MASK_ALIGN_INT, TARGET_ALIGN_INT, MASK_PCREL, TARGET_PCREL)
6553         (MASK_NO_STRICT_ALIGNMENT, TARGET_STRICT_ALIGNMENT, MASK_RTD)
6554         (TARGET_RTD, MASK_SEP_DATA, TARGET_SEP_DATA, MASK_ID_SHARED_LIBRARY)
6555         (TARGET_ID_SHARED_LIBRARY, MASK_ALL_CF_BITS, TARGET_SWITCHES)
6556         (TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS): Delete.
6557         (MASK_COLDFIRE): Formatting fixes.
6558         (TARGET_COLDFIRE): Turn into a boolean value for consistency.
6559         * config/m68k/linux.h (SUBTARGET_SWITCHES): Delete.
6560         * config/m68k/m68k.c (m68k_library_id_string): Initialize to
6561         "_current_shared_library_a5_offset_".
6562         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
6563         (MASK_ALL_CPU_BITS): New macro.
6564         (m68k_handle_option): New function.
6565         (override_options): Remove handling of m68k_library_id_string.
6566         * config/m68k/m68k.opt: New file.
6567         * config/m68k/ieee.opt: New file.
6568
6569 2005-04-11  Mark Mitchell  <mark@codesourcery.com>
6570
6571         * target-def.h (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
6572         (TARGET_CXX_DETERMINE_CLASS_VISIBILITY): New macro.
6573         (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
6574         (TARGET_CXX): Adjust accordingly.
6575         * target.h (struct gcc_target): Remove epxort_class_data.  Add
6576         determine_class_data_visibility and class_data_always_comdat.
6577         * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
6578         (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Document.
6579         (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
6580         * config/arm/arm.c (arm_cxx_export_class_data): Remove.
6581         (arm_cxx_determine_class_data_visibility): New.
6582         (arm_cxx_class_data_always_comdat): Likewise.
6583         (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
6584         (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Define.
6585         (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
6586         * config/arm/arm.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P): Define.
6587         * config/arm/symbian.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P):
6588         Define.
6589
6590 2005-04-11  Devang Patel  <dpatel@apple.com>
6591
6592         * tree-data-ref.c (build_classic_dist_vector,
6593         compute_subscript_distance): Make externally visible.
6594         * tree-data-ref.h (build_classic_dist_vector,
6595         compute_subscript_distance): Same.
6596         * tree-vect-analyze.c (vect_analyze_data_ref_dependence):
6597         Check distance vector against vectorization factor.
6598         (vect_analyze_loop): Determine vectorizaion factor before
6599         analyzing data dependences.
6600         * tree-vectorizer.c (loops_num): Make it externally visible and
6601         rename ...
6602         * tree-vectorizer.c (vect_loops_num): ... new name.
6603         * tree-vectorizer.h  (vect_loops_num): New.
6604
6605 2005-04-11  Devang Patel  <dpatel@apple.com>
6606
6607         * tree-vect-analyze.c (vect_analyze_operations): Check
6608         vectorizable codition.
6609         * tree-vect-transform.c (vect_is_simple_cond): New function.
6610         (vectorizable_condition): New function.
6611         (vect_transform_stmt): Handle condition_vec_info_type.
6612         * tree-vectorizer.h (enum stmt_vec_info_type): Add
6613         condition_vec_info_type.
6614         (vectorizable_condition): New.
6615
6616 2005-04-11  Geoffrey Keating  <geoffk@apple.com>
6617
6618         * config/i386/i386.h (TARGET_FPMATH_DEFAULT): New.
6619         * config/i386/darwin.h (TARGET_FPMATH_DEFAULT): New.
6620         * config/i386/i386.c (override_options): Use TARGET_FPMATH_DEFAULT.
6621
6622         * config/i386/darwin.h (ASM_SPEC): Use -arch i386 not -arch i686.
6623         (SUBTARGET_EXTRA_SPECS): Always 'i386'.
6624
6625         * dwarf2out.c (output_line_info): Don't try to dereference
6626         a NULL current_function_decl.
6627
6628         * config/t-slibgcc-darwin: Don't put shared libraries in
6629         directories other than $(slibdir).
6630         * config/rs6000/darwin.h: Find -m64 libgcc under the name the
6631         OS uses for it.
6632
6633 2005-04-11  Diego Novillo  <dnovillo@redhat.com>
6634
6635         PR tree-optimization/20933
6636         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Move
6637         logic to reject aliases between read-only and writable
6638         variables ...
6639         (may_alias_p): ... here.
6640         (get_tmt_for): Do not associate read-only tags to pointers
6641         whose pointed-to type is not read-only.
6642         * tree-ssa.c (verify_ssa): Check that memory stores have at
6643         least one V_MAY_DEF or V_MUST_DEF.
6644
6645 2005-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6646
6647         PR/17092
6648         * configure.ac (gcc_UNLOCKED_FUNCS): New.
6649         (AC_CHECK_FUNCS, AC_CHECK_DECLS): Check for gcc_UNLOCKED_FUNCS.
6650         * system.h (putchar, getc, getchar, clearerr, feof, fileno,
6651         fflush, fgetc, fgets, ferror, fread): Redefine to the associated
6652         _unlocked function.
6653         (fwrite_unlocked): Fix prototype.
6654
6655         * configure, config.in: Regenerate.
6656
6657 2005-04-11  David Edelsohn  <edelsohn@gnu.org>
6658
6659         * tree-ssa-loop-im.c: Include real.h.
6660         (determine_invariantness_stmt): If real division divisor is
6661         invariant and flag_unsafe_math_optimizations enabled, generate
6662         invariant reciprocal for hoisting.
6663         * Makefile.in (tree-ssa-loop-im.o): Add real.h dependency.
6664
6665 2005-04-11  Daniel Berlin  <dberlin@dberlin.org>
6666
6667         Fix PR tree-optimization/20926
6668
6669         * tree-ssa-alias.c (add_type_alias): Handle subvars.
6670
6671 2005-04-11  Devang Patel  <dpatel@apple.com>
6672
6673         * config/rs6000.c (rs6000_emit_vector_select): Fix vector select
6674         operand ordering.
6675
6676 2005-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
6677
6678         * fold-const.c (fold_binary_op_with_conditional_arg):
6679         use fold_buildN instead of "fold (buildN" in some
6680         non obvious places.
6681         (fold_unary): Likewise.
6682         (fold_binary): Likewise.
6683
6684 2005-04-11  Daniel Berlin  <dberlin@dberlin.org>
6685
6686         Fix PR tree-optimization/20612
6687         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Fix increment
6688         handling
6689         (perfect_nestify): preheaderbb is *not* part of loop of the
6690         old destination.
6691
6692 2005-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
6693
6694         * tree-ssa-alias.c (may_alias_p): If the variable
6695         is a global variable and the pointer is parameter
6696         and -fargument-noalias-global is used, then
6697         the pointer cannot alias the variable.
6698
6699 2005-04-11  James A. Morrison  <phython@gcc.gnu.org>
6700
6701         * config/sparc/sparc.c: Use gcc_assert and gcc_unreachable.
6702         * config/sparc/sparc.h: Likewise.
6703         * config/sparc/sparc.md: Likewise.
6704
6705 2005-04-11  Kazu Hirata  <kazu@cs.umass.edu>
6706
6707         * tree-vrp.c (maybe_add_assert_expr): Move a comment.
6708
6709         * tree-vrp.c: Fix a comment typo.
6710
6711 2005-04-11  Diego Novillo  <dnovillo@redhat.com>
6712
6713         PR tree-optimization/20920
6714         * tree-pretty-print.c (dump_generic_node): Show '(ab)' if an
6715         SSA_NAME flows through an abnormal edge.
6716         * tree-vrp.c (infer_value_range): Ignore SSA names that flow
6717         through abnormal edges.
6718         (maybe_add_assert_expr): Likewise.
6719
6720 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
6721
6722         * config/s390/s390.h (s390_tune_string, s390_arch_string)
6723         (s390_warn_framesize_string, s390_warn_dynamicstack_string)
6724         (s390_stack_size_string, s390_stack_guard_string, target_flags)
6725         (MASK_HARD_FLOAT, MASK_SMALL_EXEC, MASK_DEBUG_ARG, MASK_64BIT)
6726         (MASK_ZARCH, MASK_MVCLE, MASK_TPF_PROFILING, MASK_NO_FUSED_MADD)
6727         (MASK_BACKCHAIN, MASK_PACKED_STACK, TARGET_HARD_FLOAT)
6728         (TARGET_SOFT_FLOAT, TARGET_SMALL_EXEC, TARGET_DEBUG_ARG)
6729         (TARGET_64BIT, TARGET_ZARCH, TARGET_MVCLE, TARGET_TPF_PROFILING)
6730         (TARGET_NO_FUSED_MADD, TARGET_FUSED_MADD, TARGET_BACKCHAIN)
6731         (TARGET_PACKED_STACK, TARGET_SWITCHES, TARGET_OPTIONS): Delete.
6732         * config/s390/s390.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
6733         (TARGET_HANDLE_OPTION): Likewise.
6734         (s390_tune): Initialize to PROCESSOR_max.
6735         (s390_arch_string): Make static.
6736         (s390_tune_string, s390_warn_framesize_string): Delete.
6737         (s390_warn_dynamicstack_string, s390_stack_size_string): Delete.
6738         (s390_stack_guard_string, s390_warn_dynamicstack_p): Delete.
6739         (s390_handle_arch_option, s390_handle_option): New functions.
6740         (override_options): Remove parsing of option strings.
6741         * config/s390/s390.opt: New file.
6742
6743 2005-04-11  Paolo Bonzini  <bonzini@gnu.org>
6744
6745         * tree-complex.c (expand_vector_operations): Call
6746         update_stmt_if_modified.
6747
6748 2005-04-11  Paolo Bonzini  <bonzini@gnu.org>
6749
6750         * tree-vect-analyze (vect_determine_vectorization_factor):
6751         Do not use GET_MODE_NUNITS.
6752         * tree-vect-transform.c (vect_get_vec_def_for_operand,
6753         (vectorizable_load, vect_transform_loop): Likewise.
6754
6755 2005-04-11  Uros Bizjak  <uros@kss-loka.si>
6756
6757         * builtins.def (BUILT_IN_LCEIL, BUILT_IN_LCEILF, BUILT_IN_LCEILL)
6758         (BUILT_IN_LLCEIL, BUILT_IN_LLCEILF, BUILT_IN_LLCEILL): New.
6759         * optabs.h (enum optab_index): Add new OTI_lceil.
6760         (lceil_optab): Define corresponding macro.
6761         * optabs.c (init_optabs): Initialize lceil_optab.
6762         * genopinit.c (optabs): Implement lceil_optab using lceilsi2
6763         and lceildi2 patterns.
6764         * builtins.c (expand_builtin_int_roundingfn): Handle
6765         BUILT_IN_LCEIL{,F,L} and BUILT_IN_LLCEIL{,F,L}.
6766         (fold_builtin_int_roundingfn): Handle BUILT_IN_LCEIL{,F,L} and
6767         BUILT_IN_LLCEIL{,F,L}.
6768         (fold_builtin_1): Fold BUILT_IN_LCEIL{,F,L} and
6769         BUILT_IN_LLCEIL{,F,L} using fold_builtin_int_roundingfn.
6770         (mathfn_built_in): Handle BUILT_IN LCEIL and BUILT_IN_LLCEIL.
6771         (expand_builtin): Expand BUILT_IN_LCEIL{,F,L} and
6772         BUILT_IN_LLCEIL{,F,L} using expand_builtin_int_roundingfn.
6773         * convert.c (convert_to_integer): Convert (long int)ceil{,f,l},
6774         into lceil built-in function and (long long int)ceil{,f,l} into
6775         llceil built-in function.
6776         * fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LCEIL and
6777         BUILT_IN_LLCEIL.
6778
6779 2005-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6780
6781         * pa/quadlib.c (_U_Qfneg): Toggle sign bit instead of subtracting from
6782         zero.
6783
6784 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
6785
6786         * config/arm/arm.c: Fix a comment typo.
6787         * doc/tree-ssa.texi: Fix a typo.
6788
6789 2005-04-10  Steven Bosscher  <stevenb@suse.de>
6790
6791         * cselib.c (clear_table): Rename to cselib_clear_table.
6792         * cselib.h (cselib_clear_table): Add prototype.
6793         * gcse.c (gcse_main): Make 'f' argument unused.
6794         (alloc_gcse_mem): Do not walk the insn chain, walk the contents
6795         of each basic block instead.
6796         (compute_sets, compute_hash_table_work): Likewise.
6797         (constprop_register): Change int 'alter_jumps' argument to bool.
6798         (do_local_cprop): Likewise.
6799         (local_cprop_pass): Likewise.  Also walk basic blocks instead of
6800         the insn chain.  Explicitly clear the cselib tables after finishing
6801         one basic block.  Make sure there are no unterminated libcall blocks.
6802         Update compute_sets call.
6803         (cprop): Walk basic blocks instead of the insn chain.
6804         (one_cprop_pass, compute_ld_motion_mems, compute_store_table):
6805         Likewise.
6806         (bypass_jumps): Update alloc_gcse_mem, compute_sets, and
6807         one_cprop_pass calls.
6808
6809 2005-04-10  Richard Sandiford  <rsandifo@redhat.com>
6810
6811         * combine.c (combine_simplify_rtx): Remove a transformation that
6812         relies on an invalid assumption about rtl sign-extension semantics.
6813
6814 2005-04-10  Richard Sandiford  <rsandifo@redhat.com>
6815
6816         * value-prof.c (tree_divmod_fixed_value_transform): Fix arguments
6817         to build_int_cst_wide.
6818
6819 2005-04-09  Alexandre Oliva  <aoliva@redhat.com>
6820
6821         PR target/20126
6822         * loop.c (loop_givs_rescan): If replacement of DEST_ADDR failed,
6823         set the original address pseudo to the correct value before the
6824         original insn, if possible, and leave the insn alone, otherwise
6825         create a new pseudo, set it and replace it in the insn.
6826         * recog.c (validate_change_maybe_volatile): New.
6827         * recog.h (validate_change_maybe_volatile): Declare.
6828
6829 2005-04-09  Caroline Tice  <ctice@apple.com>
6830
6831         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
6832         Remove targetm.have_named_sections test.
6833         (fix_edges_for_rarely_executed_code): Likewise.
6834         (insert_section_boundary_note): Likewise.
6835         (reorder_basic_blocks): Check partitioning flag before calling
6836         verify_hot_cold_block_grouping.
6837         * dbxout.c (dbxout_function_end): Get hot/cold section labels from
6838         the function struct rather than global variables.
6839         * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
6840         (COLD_END_LABEL): Likewise
6841         (cold_text_section_label): New static global variable.
6842         (cold_end_label): Likewise.
6843         (dwarf2out_switch_text_section): Get hot/cold section labels from
6844         the function struct rather than global variables.
6845         (output_aranges): Use cold_text_section_label and cold_end_label;
6846         check partitioning flag before putting out delta.
6847         (output_ranges): Remove incorrect code attempting to use
6848         hot/cold labels.
6849         (output_line_info): Get cold section label from function struct.
6850         (add_location_or_const_value_attribute): Likewise.
6851         (get_subprogram_die): Get hot/cold section labels from function struct.
6852         (dwarf2out_var_location): Likewise.
6853         (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
6854         write out cold_text_section_label if partition flag is set.
6855         (dwarf2out_finish): Write out cold_end_label if partition flag is set;
6856         * function.h (struct function): Add new fields to point to hot/cold
6857         section labels: hot_section_label, cold_section_label,
6858         hot_section_end_label and cold_section_end_label; also add new field
6859         for cold text section name, unlikely_text_section_name.
6860         * opts.c (decode_options): Turn off partitioning flag if
6861         !targetm.have_named_sections.
6862         * output.h (hot_section_label): Remove.
6863         (hot_section_end_label): Remove.
6864         (cold_section_end_label): Remove.
6865         (unlikely_section_label): Remove.
6866         (unlikely_text_section_name): Remove.
6867         * passes.c (rest_of_handle_final):  Remove code that frees
6868         unlikely_text_section_name.
6869         * varasm.c (unlikely_section_label): Remove.
6870         (hot_section_label): Remove.
6871         (hot_section_end_label): Remove.
6872         (cold_section_end_label): Remove.
6873         (unlikely_text_section_name):  Remove.
6874         (initialize_cold_section_name): Modify to call
6875         targetm.strip_name_encoding; to store cold section name in current
6876         function struct, if it exists; and to only use the decl_section_name
6877         if flag_named_sections is true.
6878         (unlikely_text_section): Modify to get section name out of current
6879         function struct, if there is one; otherwise build it from
6880         UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
6881         (in_unlikely_text_section): Likewise.
6882         (named_section): Modify to get/put cold section name in current function
6883         struct, if there is one.
6884         (function_section):  Change 'bool unlikely' to 'int reloc'; check
6885         targetm.have_named_sections before calling named_section.
6886         (current_function_section): Likewise.
6887         (assemble_start_function): Modify to get/put unlikely_text_section_name
6888         in current function struct; modify to get hot/cold section labels
6889         from function struct; initialize labels using
6890         ASM_GENERATE_INTERNAL_LABEL;
6891         test partitioning flag before writing out hot section label.
6892         (assemble_end_function): Test partitioning flag before writing out
6893         hot/cold section labels.
6894         (default_section_type_flags_1):  Modify to use array instead of
6895          char* for unlikely_text_section_name; set flags correctly for
6896          cold text section if there is not a current function decl.
6897
6898 2005-04-09  Jakub Jelinek  <jakub@redhat.com>
6899
6900         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
6901         and TI_VA_LIST_FPR_COUNTER_FIELD.
6902         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
6903         * tree-pass.h (pass_stdarg): Add.
6904         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
6905         * tree-stdarg.c: New file.
6906         * tree-stdarg.h: New file.
6907         * Makefile.in (OBJS-common): Add tree-stdarg.o.
6908         (tree-stdarg.o): Add dependencies.
6909         * function.h (struct function): Add va_list_gpr_size and
6910         va_list_fpr_size fields.
6911         * function.c (allocate_struct_function): Initialize them.
6912         * target.h (struct gcc_target): Add stdarg_optimize_hook.
6913         * target-def.h (TARGET_STDARG_OPTIMIZE_HOOK): Define.
6914         (TARGET_INITIALIZER): Add it.
6915
6916         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
6917         va_list_{g,f}pr_counter_field.
6918         (ix86_setup_incoming_varargs): Don't do anything if reg_save
6919         area will not be used.  Only save registers that tree-stdarg.c
6920         detected they need saving.
6921         (ix86_va_start): Don't set up fields that won't be used.
6922
6923         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
6924         va_list_{g,f}pr_counter_field.
6925         (setup_incoming_varargs): Don't do anything if reg_save
6926         area will not be used.  Only save registers that tree-stdarg.c
6927         detected they need saving.
6928         (rs6000_va_start): Don't set up fields that won't be used.
6929
6930         * config/alpha/alpha.c: Include tree-flow.h and tree-stdarg.h.
6931         (alpha_build_builtin_va_list): Initialize va_list_gpr_counter_field.
6932         (va_list_skip_additions, alpha_stdarg_optimize_hook): New functions.
6933         (TARGET_STDARG_OPTIMIZE_HOOK): Define.
6934
6935 2005-04-09  Jakub Jelinek  <jakub@redhat.com>
6936
6937         PR target/20795
6938         * config/i386/i386.c (construct_container): Pass empty aligned
6939         struct, union or class in memory.
6940
6941 2005-04-09  Kazu Hirata  <kazu@cs.umass.edu>
6942
6943         * dominance.c, gthr-win32.h, reg-stack.c, tree-ssa-copy.c,
6944         tree-ssa-operands.c, tree-ssa.c, tree-vrp.c, varasm.c,
6945         config/alpha/alpha.c, config/arm/arm.c, config/m32r/m32r.h,
6946         config/rs6000/predicates.md: Fix comment typos.
6947
6948         * sched-int.h (haifa_insn_data): Remove blockage and units.
6949         (INSN_UNIT, INSN_BLOCKAGE, UNIT_BITS, BLOCKAGE_MASK,
6950         ENCODE_BLOCKAGE, UNIT_BLOCKED, BLOCKAGE_RANGE,
6951         MIN_BLOCKAGE_COST, MAX_BLOCKAGE_COST): Remove.
6952
6953 2005-04-09  Jan Hubicka  <jh@suse.cz>
6954             Steven Bosscher  <stevenb@suse.de>
6955
6956         * cfglayout.c (copy_bbs): Rename n_edges to num_edges.
6957         * cfgloop.c (get_loop_exit_edges): Likewise.
6958         * cfgloopmanip.c (fix_irreducible_loops): Likewise.
6959         (unloop): Likewise.
6960         * loop-unroll.c (analyze_insns_in_loop): Likewise.
6961         * tree-cfg.c (dump_cfg_status): Likewise.
6962
6963 2005-04-09  David Edelsohn  <edelsohn@gnu.org>
6964
6965         * config/rs6000/predicates.md (altivec_register_operand): Remove
6966         redundant match_code test.
6967         (gpc_reg_operand): Same.
6968         (cc_reg_operand): Same.
6969         (cc_reg_not_cr0_operand): Same.
6970
6971 2005-04-09  Jan Hubicka  <jh@suse.cz>
6972
6973         Forgotten hunk from my last merge patch:
6974         * final.c (output_addr_const): Do not call mark_referenced.
6975
6976 2005-04-09  Andrew MacLeod  <amacleod@redhat.com>
6977
6978         * doc/tree-ssa.texi: Add immediate use documentation.
6979
6980 2005-04-09  Richard Earnshaw <richard.earnshaw@arm.com>
6981
6982         * arm.c (FL_WBUF): Define.
6983         (arm_tune_strongarm): Renamed from arm_is_strong.  All uses changed.
6984         (arm_is_6_or_7): Delete.
6985         (arm_tune_wbuf): New.
6986         (arm_override_options): Set arm_tune_wbuf.
6987         * arm.h (arm_tune_strongarm): Renamed from arm_is_strong.
6988         (arm_is_6_or_7): Delete declaration.
6989         (arm_tune_wbuf): New declartion.
6990         * arm.md (is_strongarm): Derive from arm_tune_strongarm.
6991         (model_wbuf): Derive from arm_tune_wbuf.
6992         * arm-cores.def (arm600, arm610, arm620, arm700, arm700i, arm710)
6993         (arm720, arm710c, arm7100, arm7500, arm7500fe, arm710t, arm720t)
6994         (arm740t): Mark CPUs as having a write buffer.
6995
6996 2005-04-09  Uros Bizjak  <uros@kss-loka.si>
6997
6998         * config/i386/i386.md (*fp_jcc_7_387): Use 'const0_operand' instead
6999         of 'const_double_operand' in operand 2 constraints.  Update enable
7000         condition.
7001
7002 2005-04-09  Uros Bizjak  <uros@kss-loka.si>
7003
7004         * builtins.def (BUILT_IN_LFLOOR, BUILT_IN_LFLOORF, BUILT_IN_LFLOORL)
7005         (BUILT_IN_LLFLOOR, BUILT_IN_LLFLOORF, BUILT_IN_LLFLOORL): New.
7006         * optabs.h (enum optab_index): Add new OTI_lfloor.
7007         (lfloor_optab): Define corresponding macro.
7008         * optabs.c (init_optabs): Initialize lfloor_optab.
7009         * genopinit.c (optabs): Implement lfloor_optab using lfloorsi2
7010         and lfloordi2 patterns.
7011         * builtins.c (expand_builtin_int_roundingfn): New prototype.
7012         (expand_builtin_int_roundingfn): New function.
7013         (fold_builtin_int_roundingfn): New prototype.
7014         (fold_builtin_int_roundingfn): New function, renamed from
7015         fold_builtin_lround.
7016         Handle BUILT_IN_LROUND{,F,L}, BUILT_IN_LLROUND{,F,L} and
7017         BUILT_IN_LFLOOR{,F,L}, BUILT_IN_LLFLOOR{,F,L}.
7018         (fold_builtin_1): Fold BUILT_IN_LFLOOR{,F,L} and
7019         BUILT_IN_LLFLOOR{,F,L} using fold_builtin_int_roundingfn.
7020         (mathfn_built_in): Handle BUILT_IN LFLOOR and BUILT_IN_LLFLOOR.
7021         (expand_builtin): Expand BUILT_IN_LFLOOR{,F,L} and
7022         BUILT_IN_LLFLOOR{,F,L} using expand_builtin_int_roundingfn.
7023         * convert.c (convert_to_integer): Convert (long int)floor{,f,l},
7024         into lfloor built-in function and (long long int)floor{,f,l} into
7025         llfloor built-in function.
7026         * fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LFLOOR and
7027         BUILT_IN_LLFLOOR.
7028
7029 2005-04-08  Ian Lance Taylor  <ian@airs.com>
7030
7031         * c-common.def: Move FOR_STMT, WHILE_STMT, DO_STMT, BREAK_STMT,
7032         CONTINUE_STMT, and SWITCH_STMT to cp/cp-tree.def.
7033         * c-common.h (WHILE_COND, WHILE_BODY): Move to cp/cp-tree.h.
7034         (DO_COND, DO_BODY): Likewise.
7035         (FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY): Likewise.
7036         (SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE): Likewise.
7037         (c_common_stmt_codes): Remove FOR_STMT, WHILE_STMT, DO_STMT,
7038         BREAK_STMT, CONTINUE_STMT, and SWITCH_STMT.
7039         (build_continue_stmt, build_break_stmt): Don't declare.
7040         (c_do_switch_warnings): Update declaration.
7041         * c-gimplify.c (enum bc_t): Remove.
7042         (struct c_gimplify_ctx, ctxp): Remove.
7043         (push_context, pop_context): Remove static functions.
7044         (c_genericize): Don't call push_context or pop_context.
7045         (begin_bc_block, finish_bc_block): Remove static functions.
7046         (build_bc_goto): Likewise.
7047         (gimplify_c_loop): Likewise.
7048         (gimplify_for_stmt, gimplify_while_stmt): Likewise.
7049         (gimplify_do_stmt, gimplify_switch_stmt): Likewise.
7050         (c_gimplify_expr): Remove handling of FOR_STMT, WHILE_STMT,
7051         DO_STMT, SWITCH_STMT, CONTINUE_STMT, BREAK_STMT.
7052         * c-common.c (c_do_switch_warnings): Rename from
7053         c_do_switch_warnings_1.
7054         (c_do_switch_warnings) [old version]: Remove.
7055         (c_do_switch_expr_warnings): Remove.
7056         * c-typeck.c (c_finish_case): Call new c_do_switch_warnings
7057         function instead of c_do_switch_expr_warnings.
7058         * c-dump.c (c_dump_tree): Remove handling of BREAK_STMT,
7059         CONTINUE_STMT, DO_STMT, FOR_STMT, SWITCH_STMT, and WHILE_STMT.
7060         * c-pretty-print.c (pp_c_statement): Likewise.
7061         * c-semantics.c (build_break_stmt, build_continue_stmt): Remove.
7062
7063 2005-04-08  Devang Patel  <dpatel@apple.com>
7064
7065         * tree-if-conv.c (find_phi_replacement_condition): New parameter, loop.
7066         While selecting replacement condition pay attention to loop header.
7067
7068 2005-04-08  Diego Novillo  <dnovillo@redhat.com>
7069
7070         Merge from tree-cleanup-branch: VRP, store CCP, store
7071             copy-prop, incremental SSA updating of FUD chains and
7072             newly exposed symbols.
7073
7074         * Makefile.in (tree-ssa-copy.o): Depend on tree-ssa-propagate.h.
7075         (OBJS-common): Add tree-vrp.o.
7076         (tree-vrp.o): New rule.
7077         * basic-block.h (nearest_common_dominator_for_set): Declare.
7078         * common.opt (ftree-store-ccp): New flag.
7079         (ftree-copy-prop): New flag.
7080         (ftree-vrp): New flag.
7081         (ftree-store-copy-prop): New flag.
7082         * dominance.c (nearest_common_dominator_for_set): New.
7083         * domwalk.c (walk_dominator_tree): Only traverse
7084         statements in blocks marked in walk_data->interesting_blocks.
7085         * domwalk.h (struct dom_walk_data): Add field interesting_blocks.
7086         * fold-const.c (fold): Handle ASSERT_EXPR.
7087         * opts.c (decode_options): Set flag_tree_copy_prop at -O1.
7088         Set flag_tree_store_ccp, flag_tree_store_copy_prop and
7089         flag_tree_vrp at -O2.
7090         * timevar.def (TV_TREE_VRP): Define.
7091         (TV_TREE_COPY_PROP): Define.
7092         (TV_TREE_STORE_COPY_PROP): Define.
7093         (TV_TREE_SSA_INCREMENTAL): Define.
7094         (TV_TREE_STORE_CCP): Define.
7095         * tree-cfg.c (tree_can_merge_blocks_p): Remove reference
7096         to kill_redundant_phi_nodes from comment.
7097         (verify_expr): Handle ASSERT_EXPR.
7098         * tree-dfa.c (mark_new_vars_to_rename): Remove second
7099         argument.  Update all users.
7100         (mark_call_clobbered_vars_to_rename): Remove.  Update all
7101         users.
7102         * tree-flow-inline.h (unmodifiable_var_p): New.
7103         * tree-flow.h (enum value_range_type): Declare.
7104         (struct value_range_def): Declare.
7105         (value_range): Declare.
7106         (remove_all_phi_nodes_for): Remove.  Update all users.
7107         (find_phi_node_for): Declare.
7108         (add_type_alias): Declare.
7109         (count_uses_and_derefs): Declare.
7110         (kill_redundant_phi_nodes): Remove.
7111         (rewrite_into_ssa): Remove.
7112         (rewrite_def_def_chains): Remove.
7113         (update_ssa, register_new_name_mapping, create_new_def_for,
7114         need_ssa_update_p, name_registered_for_update_p,
7115         release_ssa_name_after_update_ssa, dump_repl_tbl,
7116         debug_repl_tbl, dump_names_replaced_by,
7117         debug_names_replaced_by, mark_sym_for_renaming,
7118         mark_set_for_renaming, get_current_def, set_current_def,
7119         get_value_range, dump_value_range, debug_value_range,
7120         dump_all_value_ranges, debug_all_value_ranges,
7121         expr_computes_nonzero, loop_depth_of_name,
7122         unmodifiable_var_p): Declare.
7123         * tree-gimple.c (is_gimple_formal_tmp_rhs): Handle
7124         ASSERT_EXPR.
7125         * tree-into-ssa.c (block_defs_stack): Update comment.
7126         (old_ssa_names, new_ssa_names, old_virtual_ssa_names,
7127         syms_to_rename, names_to_release, repl_tbl,
7128         need_to_initialize_update_ssa_p, need_to_update_vops_p,
7129         need_to_replace_names_p): New locals.
7130         (NAME_SETS_GROWTH_FACTOR): Define.
7131         (struct repl_map_d): Declare.
7132         (struct mark_def_sites_global_data): Add field
7133         interesting_blocks.
7134         (enum rewrite_mode): Declare.
7135         (REGISTER_DEFS_IN_THIS_STMT): Define.
7136         (compute_global_livein): Use last_basic_block instead of
7137         n_basic_blocks.
7138         (set_def_block): Remove last argument.  Update all callers.
7139         (prepare_use_operand_for_rename): Remove.  Update all callers.
7140         (prepare_def_operand_for_rename): Remove.  Update all callers.
7141         (symbol_marked_for_renaming): New.
7142         (is_old_name): New.
7143         (is_new_name): New.
7144         (repl_map_hash): New.
7145         (repl_map_eq): New.
7146         (repl_map_free): New.
7147         (names_replaced_by): New.
7148         (add_to_repl_tbl): New.
7149         (add_new_name_mapping): New.
7150         (mark_def_sites): Assume that all the operands in the
7151         statement are in normal form.
7152         (find_idf): Assert that the block in the stack is valid.
7153         (get_default_def_for): New.
7154         (insert_phi_nodes_for): Add new argument 'update_p'.
7155         Add documentation.
7156         If update_p is true, add a new mapping between the LHS of
7157         each new PHI and the name that it replaces.
7158         (insert_phi_nodes_1): Only call find_idf if needed.
7159         (get_reaching_def): Call get_default_def_for.
7160         (rewrite_operand): Remove.
7161         (rewrite_stmt): Do nothing if REGISTER_DEFS_IN_THIS_STMT
7162         and REWRITE_THIS_STMT are false.
7163         Assume that all the operands in the statement are in
7164         normal form.
7165         (rewrite_add_phi_arguments): Don't use PHI_REWRITTEN.
7166         (rewrite_virtual_phi_arguments): Remove.
7167         (invalidate_name_tags): Remove.
7168         (register_new_update_single, register_new_update_set,
7169         rewrite_update_init_block, replace_use,
7170         rewrite_update_fini_block, rewrite_update_stmt,
7171         rewrite_update_phi_arguments): New.
7172         rewrite_blocks): Remove argument 'fix_virtual_phis'.
7173         Add arguments 'entry', 'what' and 'blocks'.
7174         Initialize the dominator walker according to 'what' and
7175         'blocks'.
7176         Start the dominator walk at 'entry'.
7177         (mark_def_site_blocks): Add argument 'interesting_blocks'.
7178         Use it to configure the dominator walker.
7179         (rewrite_into_ssa): Remove argument 'all'.
7180         Make internal.
7181         (rewrite_all_into_ssa): Remove.
7182         (rewrite_def_def_chains): Remove.
7183         (mark_def_interesting, mark_use_interesting,
7184         prepare_phi_args_for_update, prepare_block_for_update,
7185         prepare_def_site_for, prepare_def_sites,
7186         dump_names_replaced_by, debug_names_replaced_by,
7187         dump_repl_tbl, debug_repl_tbl, init_update_ssa,
7188         delete_update_ssa, create_new_def_for,
7189         register_new_name_mapping, mark_sym_for_renaming,
7190         mark_set_for_renaming, need_ssa_update_p,
7191         name_registered_for_update_p, ssa_names_to_replace,
7192         release_ssa_name_after_update_ssa,
7193         insert_updated_phi_nodes_for, update_ssa): New.
7194         * tree-loop-linear.c (linear_transform_loops): Call
7195         update_ssa instead of rewrite_into_ssa.
7196         * tree-optimize.c (vars_to_rename): Remove.
7197         Update all users.
7198         (init_tree_optimization_passes): Replace
7199         pass_redundant_phi with pass_copy_prop.
7200         Add pass_vrp.
7201         Replace pass_ccp with pass_store_ccp.
7202         Add pass_store_copy_prop after pass_store_ccp.
7203         (execute_todo): If the TODO_ flags don't include updating
7204         the SSA form, assert that it does not need to be updated.
7205         Call update_ssa instead of rewrite_into_ssa and
7206         rewrite_def_def_chains.
7207         If TODO_verify_loops is set, call verify_loop_closed_ssa.
7208         (tree_rest_of_compilation):
7209         * tree-pass.h (TODO_dump_func, TODO_ggc_collect,
7210         TODO_verify_ssa, TODO_verify_flow, TODO_verify_stmts,
7211         TODO_cleanup_cfg): Renumber.
7212         (TODO_verify_loops, TODO_update_ssa,
7213         TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
7214         TODO_update_ssa_only_virtuals): Define.
7215         (pass_copy_prop, pass_store_ccp, pass_store_copy_prop, pass_vrp):
7216         Declare.
7217         * tree-phinodes.c (make_phi_node): Update documentation.
7218         (remove_all_phi_nodes_for): Remove.
7219         (find_phi_node_for): New.
7220         * tree-pretty-print.c (dump_generic_node): Handle ASSERT_EXPR.
7221         * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Likewise.
7222         (interpret_rhs_modify_expr): Likewise.
7223         * tree-sra.c (decide_instantiations): Mark all symbols in
7224         SRA_CANDIDATES for renaming.
7225         (mark_all_v_defs_1): Rename from mark_all_v_defs.
7226         (mark_all_v_defs): New function.  Update all users to call it
7227         with the whole list of scalarized statements, not just the
7228         first one.
7229         * tree-ssa-alias.c (count_ptr_derefs): Make extern.
7230         (compute_flow_insensitive_aliasing): If the tag is
7231         unmodifiable and the variable isn't or vice-versa, don't
7232         make them alias of each other.
7233         (setup_pointers_and_addressables): If the type tag for
7234         VAR is about to change, mark the old one for renaming.
7235         (add_type_alias): New.
7236         * tree-ssa-ccp.c: Document SSA-CCP and STORE-CCP.
7237         (ccp_lattice_t): Rename from latticevalue.
7238         (value): Remove.  Update all users.
7239         (const_val): New local variable.
7240         (do_store_ccp): New local variable.
7241         (dump_lattice_value): Handle UNINITIALIZED.
7242         (debug_lattice_value): New.
7243         (get_default_value): Re-write.
7244         (set_lattice_value): Re-write.
7245         (def_to_varying): Remove.  Update all users.
7246         (likely_value): Return VARYING for statements that make
7247         stores when STORE_CCP is false.
7248         Return VARYING for any statement other than MODIFY_EXPR,
7249         COND_EXPR and SWITCH_EXPR.
7250         (ccp_initialize): Re-write.
7251         (replace_uses_in, replace_vuse_in, substitute_and_fold):
7252         Move to tree-ssa-propagate.c.
7253         (ccp_lattice_meet): Handle memory stores when
7254         DO_STORE_CCP is true.
7255         (ccp_visit_phi_node): Likewise.
7256         (ccp_fold): Likewise.
7257         (evaluate_stmt): Likewise.
7258         (visit_assignment): Likewise.
7259         (ccp_visit_stmt): Likewise.
7260         (execute_ssa_ccp): Add argument 'store_ccp'.  Copy it
7261         into DO_STORE_CCP.
7262         (do_ssa_ccp): New.
7263         (pass_ccp): Use it.
7264         (do_ssa_store_ccp): New.
7265         (gate_store_ccp): New.
7266         (pass_store_ccp): Declare.
7267         * tree-ssa-copy.c: Include tree-ssa-propagate.h.
7268         (may_propagate_copy): Reformat.
7269         Don't abort if ORIG is a virtual and DEST isn't.
7270         If NEW does not have alias information but DEST does,
7271         copy it.
7272         (copy_of, cached_last_copy_of, do_store_copy_prop, enum
7273         copy_prop_kind, which_copy_prop): Declare.
7274         (stmt_may_generate_copy, get_copy_of_val,
7275         get_last_copy_of, set_copy_of_val, dump_copy_of,
7276         copy_prop_visit_assignment, copy_prop_visit_cond_stmt,
7277         copy_prop_visit_stmt, copy_prop_visit_phi_node,
7278         init_copy_prop, fini_copy_prop, execute_copy_prop,
7279         gate_copy_prop, do_copy_prop, gate_store_copy_prop,
7280         store_copy_prop): New.
7281         (pass_copy_prop, pass_store_copy_prop): Declare.
7282         * tree-ssa-dom.c (struct opt_stats_d): Add fields
7283         'num_const_prop' and 'num_copy_prop'.
7284         (cprop_operand): Update them.
7285         (dump_dominator_optimization_stats): Dump them.
7286         (tree_ssa_dominator_optimize): Call update_ssa instead of
7287         rewrite_into_ssa.
7288         (loop_depth_of_name): Declare extern.
7289         (simplify_cond_and_lookup_avail_expr): Guard against NULL
7290         values for LOW or HIGH.
7291         (cprop_into_successor_phis): Only propagate if NEW != ORIG.
7292         (record_equivalences_from_stmt): Call expr_computes_nonzero.
7293         (cprop_operand): Only propagate if VAL != OP.
7294         * tree-ssa-dse.c (dse_optimize_stmt): Mark symbols in removed
7295         statement for renaming.
7296         * tree-ssa-loop-im.c (move_computations): Call update_ssa.
7297         * tree-ssa-loop-ivopts.c (rewrite_address_base): Call
7298         add_type_alias if necessary.
7299         Call mark_new_vars_to_rename.
7300         (tree_ssa_iv_optimize): If new symbols need to be renamed,
7301         mark every statement updated, call update_ssa and
7302         rewrite_into_loop_closed_ssa.
7303         * tree-ssa-loop-manip.c (add_exit_phis): Do not remove DEF_BB
7304         from LIVEIN if VAR is a virtual.
7305         * tree-ssa-loop.c (tree_loop_optimizer_init): Call update_ssa.
7306         * tree-ssa-operands.c (get_expr_operands): Handle ASSERT_EXPR.
7307         (get_call_expr_operands): Reformat statement.
7308         (add_stmt_operand): Don't create V_MAY_DEFs for read-only
7309         symbols.
7310         * tree-ssa-propagate.c (ssa_prop_init): Initialize
7311         SSA_NAME_VALUE for every name.
7312         (first_vdef, stmt_makes_single_load, stmt_makes_single_store,
7313         get_value_loaded_by): New.
7314         (replace_uses_in, replace_vuses_in, replace_phi_args_in,
7315         substitute_and_fold): Move from tree-ssa-ccp.c.
7316         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t,
7317         first_vdef, stmt_makes_single_load, stmt_makes_single_store,
7318         get_value_loaded_by, replace_uses_in, substitute_and_fold):
7319         Declare.
7320         * tree-ssa.c (verify_use): Fix error message.
7321         (propagate_into_addr, replace_immediate_uses, get_eq_name,
7322         check_phi_redundancy, kill_redundant_phi_nodes,
7323         pass_redundant_phi): Remove.  Update all users.
7324         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
7325         add_type_alias, if necessary.
7326         * tree-vectorizer.h (struct _stmt_vect_info): Update
7327         documentation for field 'memtag'.
7328         * tree-vrp.c: New file.
7329         * tree.def (ASSERT_EXPR): Define.
7330         * tree.h (ASSERT_EXPR_VAR): Define.
7331         (ASSERT_EXPR_COND): Define.
7332         (SSA_NAME_VALUE_RANGE): Define.
7333         (struct tree_ssa_name): Add field 'value_range'.
7334         (PHI_REWRITTEN): Remove.
7335         (struct tree_phi_node): Remove field 'rewritten'.
7336         * doc/invoke.texi (-fdump-tree-storeccp, -ftree-copy-prop,
7337         -ftree-store-copy-prop): Document.
7338         * doc/tree-ssa.texi: Remove broken link to McCAT's compiler.
7339         Document usage of update_ssa.
7340
7341 2005-04-08  David Edelsohn  <edelsohn@gnu.org>
7342
7343         PR target/20814
7344         * config/rs6000/predicates.md (altivec_register_operand): Accept
7345         SUBREG.
7346         (and64_operand): Do not limit CONST_INT to mask64_operand.
7347         (and64_2_operand): Do not limit CONST_INT to mask64_1or2_operand.
7348         (and_operand): Do not limit CONST_INT to mask_operand.
7349
7350 2005-04-09  Hans-Peter Nilsson  <hp@axis.com>
7351
7352         PR rtl-optimization/20466
7353         * flow.c (invalidate_mems_from_set): Handle a MEM by checking it
7354         for overlap of the address of each list member.
7355         (mark_set_1): Call invalidate_mems_from_set for MEMs too.
7356
7357 2005-04-08  Mike Stump  <mrs@apple.com>
7358
7359         * config/darwin.c (indirect_data): Fix typo in strncmp logic.
7360
7361         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use 5 nops,
7362         instead of 4.
7363
7364 2005-04-08  Kazu Hirata  <kazu@cs.umass.edu>
7365
7366         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Remove.
7367
7368         * function.c (push_function_context_to): Don't set
7369         contains_functions.
7370         * function.h (function): Remove contains_functions.
7371         (current_function_contains_functions): Remove.
7372
7373         * function.h (function): Remove instrument_entry_exit.
7374         (current_function_instrument_entry_exit): Remove.
7375
7376         * function.h (nonlocal_labels): Remove.
7377
7378         * tree.h (STRIP_MAIN_TYPE_NOPS): Remove.
7379
7380         * genattrtab.c (attr_desc): Remove negative_ok and unsigned_p.
7381         (check_attr_value, write_attr_get, write_expr_attr_cache,
7382         find_attr, make_internal_attr): Don't reference negative_ok or
7383         unsigned_p.
7384         * genattrtab.h (ATTR_NEGATIVE_OK, ATTR_UNSIGNED,
7385         ATTR_FUNC_UNITS, ATTR_BLOCKAGE): Remove.
7386         (ATTR_STATIC): Adjust the value.
7387
7388         * c-common.h (C_ARTIFICIAL_STRING_P): Remove.
7389
7390 2005-04-08  Ulrich Weigand  <uweigand@de.ibm.com>
7391
7392         * config/s390/tpf.h (ASM_SPEC): Define.
7393
7394 2005-04-08  Kazu Hirata  <kazu@cs.umass.edu>
7395
7396         * tree-flow.h: Remove the prototype for
7397         redirect_immediate_uses.
7398         (TDFA_USE_OPS, TDFA_USE_VOPS): Remove.
7399
7400 2005-04-08  Richard Earnshaw  <richard.earnshaw@arm.com>
7401
7402         * arm.c (arm_const_double_by_parts): New function.
7403         * arm-protos.h (arm_const_double_by_parts): Add prototype.
7404         * arm.md (define_split for 64-bit constants): Add another one.
7405
7406 2005-04-08  Andrew MacLeod  <amacleod@redhat.com>
7407
7408         * tree-ssa-operands.c (correct_use_link): Remove linear scan.
7409
7410 2005-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7411
7412         * system.h: Revert last change.
7413
7414 2005-04-08  Richard Sandiford  <rsandifo@redhat.com>
7415
7416         * config/xtensa/xtensa.h (target_flags, MASK_NO_FUSED_MADD)
7417         (MASK_CONST16, TARGET_NO_FUSED_MADD, TARGET_CONST16)
7418         (TARGET_SWITCHES): Delete.
7419         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
7420         * config/xtensa/xtensa.md (muladdsf3, mulsubsf3): Check
7421         TARGET_FUSED_MADD instead of !TARGET_NO_FUSED_MADD.
7422         * config/xtensa/xtensa.opt: New file.
7423
7424 2005-04-08  Ben Elliston  <bje@au.ibm.com>
7425
7426         * config/fp-bit.c: Include L_mul_tf in #endif comment.
7427         * config/fp-bit.h: Tidy comments.
7428
7429 2005-04-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7430
7431         * system.h: Poison PARAMS.
7432
7433 2005-04-07  Richard Sandiford  <rsandifo@redhat.com>
7434
7435         * config/vax/vax.h (target_flags, MASK_UNIX_ASM, MASK_VAXC_ALIGNMENT)
7436         (MASK_G_FLOAT, TARGET_UNIX_ASM, TARGET_VAXC_ALIGNMENT, TARGET_G_FLOAT)
7437         (TARGET_SWITCHES): Delete.
7438         * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
7439         * config/vax/vax.opt: New file.
7440
7441 2005-04-07  Daniel Berlin  <dberlin@dberlin.org>
7442
7443         * tree-ssa-dse.c (dse_optimize_stmt): Fix incorrect comment.
7444
7445 2005-04-07  Ian Lance Taylor  <ian@airs.com>
7446
7447         * config/iq2000/iq2000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Don't
7448         define.
7449         * config/mips/mips.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Likewise.
7450         * config/sparc/sparc.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE):
7451         Likewise.
7452
7453 2005-04-07  Kazu Hirata  <kazu@cs.umass.edu>
7454
7455         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Consider
7456         all immediate uses in PHI nodes.
7457
7458 2005-04-07  Richard Earnshaw  <richard.earnshaw@arm.com>
7459
7460         * arm.c (arm_const_double_inline_cost): Handle any constant by
7461         using gen_lowpart and gen_highpart_mode.
7462         (note_invalid_constants): All constants in an RTX with a constraint
7463         that permits memory are now pushed to the constant pool.
7464         (output_move_double): Delete code to handle reg to reg and
7465         constant to reg moves.
7466         (const_double_needs_minipool, output_mov_immediate): Delete.
7467         * arm.h (EXTRA_CONSTRAINT_STR_ARM): All 'D' variants now handle
7468         CONST_INT and CONST_VECTOR.
7469         * arm.md (ANY64): New mode macro.
7470         (arm_movdi): Split reg-reg and const-reg moves.  Simplify constraints.
7471         (movdf_soft_insn): Split reg-reg and const-reg moves.
7472         (split patterns for 64-bit constant and register moves): New.
7473         * cirrus.md (cirrus_arm_movdi): Split reg-reg and const-reg moves.
7474         (cirrus_movdf_hard_insn): Likewise.
7475         * fpa.md (movdf_fpa): Likewise.
7476         * iwmmxt.md (iwmmxt_arm_movdi): Likewise.
7477         (movv8qi_internal, movv4hi_internal, movv2si_internal): Fix
7478         constraints.
7479         (movv2si_internal_2): Likewise.
7480         * vfp.md (arm_movdi_vfp): Split reg-reg and const-reg moves.
7481         (movdf_vfp): Likewise.
7482         * arm-protos.h (output_mov_immediate): Delete prototype.
7483
7484 2005-04-07  Joseph S. Myers  <joseph@codesourcery.com>
7485
7486         PR target/20093
7487         * simplify-rtx.c (simplify_unary_operation_1): Check
7488         SUBREG_PROMOTED_UNSIGNED_P (op) > 0 for zero-extension.
7489
7490 2005-04-06  James E Wilson  <wilson@specifixinc.com>
7491
7492         PR target/20717
7493         * cgraphunit.c (record_call_1, case FDESC_EXPR): Handle same as
7494         ADDR_EXPR.
7495
7496 2004-04-06  Richard Sandiford  <rsandifo@redhat.com>
7497
7498         * coverage.h (GCOV_TYPE_NODE): Delete.
7499         * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref)
7500         (build_ctr_info_type): Use get_gcov_type () instead of GCOV_TYPE_NODE.
7501         * tree-profile.c (tree_gen_edge_profiler, tree_gen_interval_profiler)
7502         (tree_gen_pow2_profiler, tree_gen_one_value_profiler): Likewise.
7503         * value-prof.c (tree_divmod_fixed_value_transform): Delete.
7504
7505 2004-04-06  Richard Sandiford  <rsandifo@redhat.com>
7506
7507         PR other/20792
7508         * Makefile.in (gcc.pot): Remove options.c dependency.
7509         * optc-gen.awk: Don't quote help strings with N_().
7510
7511 2005-04-06  James A. Morrison  <phython@gcc.gnu.org>
7512
7513         * c-common.c (handle_malloc_atttribute): Only set DECL_IS_MALLOC if
7514         the function returns a pointer type.
7515
7516 2005-04-06  Daniel Berlin  <dberlin@dberlin.org>
7517
7518         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): New
7519         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): New
7520         * doc/invoke.texi: Documnet salias-max-implicit-fields.
7521         * tree-ssa-alias.c (struct used_part): Add implicit_uses and
7522         explicit_uses members.
7523         (get_or_create_used_part_for): Initialize new fields.
7524         (fieldoff_compare): New function.
7525         (create_overlap_variables_for): Count number of fields, use
7526         heuristic to determine whether to create subvars for vars with
7527         only implicit uses.
7528         Sort the field list by offset and avoid creating duplicate SFT's.
7529
7530 2005-04-06  Richard Sandiford  <rsandifo@redhat.com>
7531
7532         * c.opt (-F): Remove trailing whitespace from help string.
7533         (-finput-charset): Use a tab to separate the switch name and help
7534         string.
7535         * common.opt (-fsched-stalled-insns, -fsched-stalled-insns-dep)
7536         (-ftree-vectorizer-verbose): Likewise.
7537
7538 2005-04-06  Kazu Hirata  <kazu@cs.umass.edu>
7539
7540         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Look at
7541         a PHI argument where a use occurs instead of all PHI arguments.
7542
7543 2005-04-06  Joseph S. Myers  <joseph@codesourcery.com>
7544
7545         * c-decl.c (finish_decl): Apply pending #pragma weak regardless of
7546         scope.
7547
7548 2005-04-06  Kazu Hirata  <kazu@cs.umass.edu>
7549
7550         * cse.c, tree-flow-inline.h, tree-flow.h, tree-ssa-operands.c,
7551         tree-ssa-sink.c, tree.h, config/bfin/bfin.c,
7552         config/bfin/bfin.h: Fix comment typos.
7553
7554 2005-04-06  Ranjit Mathew  <rmathew@hotmail.com>
7555
7556         * doc/install.texi: Update the URL for Jacks.
7557         * doc/sourcebuild.texi: Likewise.
7558
7559 2005-04-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
7560
7561         PR target/17245
7562         * config/sparc/sparc.c (legitimate_address_p): Remove 'imm2'.
7563         Revert 2004-10-08 patch.  Reject TFmode LO_SUM in 32-bit mode.
7564
7565 2005-04-06  Kelley Cook  <kcook@gcc.gnu.org>
7566
7567         * Makefile.in (LIBGCC2_CFLAGS): Revert -pipe change.
7568
7569 2005-04-06  Richard Sandiford  <rsandifo@redhat.com>
7570
7571         * config/v850/v850-protos.h (override_options): Delete.
7572         * config/v850/v850.h (target_flags, MASK_GHS, MASK_LONG_CALLS, MASK_EP)
7573         (MASK_PROLOG_FUNCTION, MASK_DEBUG, MASK_V850, MASK_V850E)
7574         (MASK_SMALL_SLD, MASK_BIG_SWITCH, MASK_NO_APP_REGS, MASK_DISABLE_CALLT)
7575         (MASK_STRICT_ALIGN, MASK_US_BIT_SET, MASK_US_MASK_SET, TARGET_GHS)
7576         (TARGET_LONG_CALLS, TARGET_EP, TARGET_PROLOG_FUNCTION, TARGET_V850)
7577         (TARGET_BIG_SWITCH, TARGET_DEBUG, TARGET_V850E, TARGET_US_BIT_SET)
7578         (TARGET_SMALL_SLD, TARGET_DISABLE_CALLT, TARGET_NO_APP_REGS)
7579         (TARGET_STRICT_ALIGN, TARGET_SWITCHES, TARGET_OPTIONS)
7580         (OVERRIDE_OPTIONS): Delete.
7581         (MASK_CPU): Redefine as MASK_V850 | MASK_V850E.
7582         (small_memory_info): Remove the value field.
7583         (CONDITIONAL_REGISTER_USAGE): Check !TARGET_APP_REGS rather than
7584         TARGET_NO_APP_REGS.
7585         * config/v850/v850.c (small_memory): Remove the value field.
7586         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
7587         (override_options): Delete.
7588         (v850_handle_memory_option, v850_handle_option): New functions.
7589         * config/v850/v850.opt: New file.
7590
7591 2005-04-06  Geoffrey Keating  <geoffk@apple.com>
7592
7593         * config.host: Add a section for generic hosts, and a subsection
7594         for Darwin.  Add a case for x86-darwin.  Update ppc-darwin case.
7595         * config/host-darwin.c: New, split out of config/rs6000/host-darwin.c.
7596         * config/host-darwin.h: New.
7597         * config/x-darwin: New.
7598         * config/i386/host-i386-darwin.c: New.
7599         * config/i386/x-darwin: New.
7600         * config/rs6000/host-darwin.c: Include host-darwin.h.
7601         (darwin_rs6000_gt_pch_get_address): Move to config/host-darwin.c.
7602         (darwin_rs6000_gt_pch_use_address): Likewise.
7603         * config/rs6000/x-darwin: Change name of .o built, update
7604         dependencies for changes to rs6000/host-darwin.c.
7605
7606 2005-04-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
7607
7608         PR target/17824
7609         * config/c4x/c4x.h (ASM_PROG, LD_PROG): Remove.
7610
7611 2005-04-06  Dorit Naishlos  <dorit@il.ibm.com>
7612
7613         * tree-vect-analyze.c (vect_analyze_loop_form): Call
7614         split_loop_exit_edge instead of loop_split_edge_with.
7615
7616 2005-04-06  Paolo Bonzini  <bonzini@gnu.org>
7617
7618         * config/rs6000/altivec.md (UNSPEC_VSLW, UNSPEC_SUBS,
7619         UNSPEC_SET_VSCR): New constants, used throughout.
7620         (*andc3_v4sf): New.
7621         (altivec_vspltisb, altivec_vsplitish, altivec_vsplitisw):
7622         Replace with...
7623         (altivec_vspltis<VI_char>): ... this pattern, using
7624         a QImode const_int_operand for the immediate.
7625         (abs<mode>2, absv4sf2, altivec_abss_<mode>): Rewrite as
7626         define_expands.
7627
7628 2005-04-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
7629
7630         PR target/17822
7631         * config/avr/t-avr (AR_FOR_TARGET,RANLIB_FOR_TARGET): Remove.
7632
7633 2005-04-06  Kelley Cook  <kcook@gcc.gnu.org>
7634
7635         * Makefile.in (LIBGCC2_CFLAGS): Compile with -pipe.
7636
7637 2005-04-06  Ben Elliston  <bje@au.ibm.com>
7638
7639         * gcc.c: Correct comment about DEFAULT_SWITCH_TAKES_ARG and
7640         DEFAULT_WORD_SWITCH_TAKES_ARG which incorrectly reported these
7641         macros as living in "this file" and not gcc.h.
7642
7643 2005-04-06  Ben Elliston  <bje@au.ibm.com>
7644
7645         * doc/invoke.texi (Optimize Options): Mention -ftree-lrs, not
7646         -ftree-live_range_split.  Perhaps renamed at some point?
7647
7648 2005-04-06  Zdenek Dvorak  <dvorakz@suse.cz>
7649
7650         PR target/20625
7651         * tree-ssa-loop-ivopts.c (generic_type_for): New function.
7652         (add_candidate_1): Use generic_type_for instead of unsigned_type_for.
7653
7654 2005-04-06  Zdenek Dvorak  <dvorakz@suse.cz>
7655
7656         * tree-flow.h (number_of_iterations_cond): Declaration removed.
7657         * tree-ssa-loop-niter.c (number_of_iterations_cond): Made static.
7658         (number_of_iterations_special): New function.
7659         (number_of_iterations_exit): Use number_of_iterations_special.
7660         Use simplify_using_outer_evolutions only at -O3.
7661         (number_of_iterations_cond, tree_simplify_using_condition,
7662         simplify_using_initial_conditions, loop_niter_by_eval,
7663         compare_trees, can_count_iv_in_wider_type_bound,
7664         simplify_using_outer_evolutions): Use fold_build.
7665
7666 2005-04-05  Thomas Fitzsimmons  <fitzsim@redhat.com>
7667
7668         * doc/install.texi (Configuration): Document --with-java-home.
7669
7670 2005-04-05  Richard Henderson  <rth@redhat.com>
7671
7672         PR target/20342
7673         PR target/20447
7674         * config/i386/i386.c (print_operand): Handle vector zeros.
7675         (ix86_split_to_parts): Handle CONST_VECTOR.
7676         (ix86_hard_regno_mode_ok): Allow MMX modes in general regs.
7677         (ix86_modes_tieable_p): Use ix86_hard_regno_mode_ok to decide
7678         what modes to tie for MMX and SSE registers.
7679         * config/i386/i386.h (MMX_REG_MODE_P): Remove.
7680         * config/i386/i386.md: Extend move 0 -> xor peephole to apply
7681         to vector modes as well.
7682         * config/i386/predicates.md (const0_operand): Handle VOIDmode
7683         properly as an input mode.
7684
7685 2005-04-05  Andrew MacLeod  <amacleod@redhat.com>
7686
7687         * tree-ssa-operands.c (verify_abort): Use %p for pointers.
7688
7689 2005-04-05  Andrew MacLeod  <amacleod@redhat.com>
7690
7691         * tree-pretty-print.c (dump_generic_node): Use %p for pointer.
7692
7693 2005-04-05  Jakub Jelinek  <jakub@redhat.com>
7694
7695         * config/i386/i386.c (init_cumulative_args): For -m32 -mfpmath=sse
7696         and local functions, set sse_nregs to 8 and float_in_sse.
7697         (function_arg_advance, function_arg): If float_in_sse, pass
7698         SFmode and DFmode arguments in SSE registers.
7699         * config/i386/i386.h (CUMULATIVE_ARGS): Add float_in_sse field.
7700
7701         * config/i386/i386.c (ix86_value_regno): Only optimize local functions
7702         of -funit-at-a-time.
7703
7704 2005-04-05  Paolo Bonzini  <bonzini@gnu.org>
7705
7706         * config/i386/i386-protos.h (ix86_function_value): Accept two
7707         arguments, like the target macro.
7708         * config/i386/i386.h (FUNCTION_VALUE): Pass both arguments.
7709         * config/i386/i386.c (ix86_function_value): Accept the second
7710         argument of the target macro.
7711         (ix86_function_ok_for_sibcall): Pass a function pointer to
7712         ix86_function_value.
7713         (ix86_function_value, ix86_libcall_value) [!TARGET_64BIT]: Adjust
7714         call to ix86_value_regno).
7715         (ix86_value_regno): Add support for returning floating point values
7716         in SSE registers.
7717
7718 2005-04-05  Jakub Jelinek  <jakub@redhat.com>
7719
7720         PR tree-optimization/20076
7721         * tree-inline.c (inline_forbidden_p_1): Prevent inlining functions
7722         that call __builtin_return or __builtin_apply_args.
7723
7724 2005-04-05  Andrew MacLeod  <amacleod@redhat.com>
7725
7726         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use update_stmt.
7727         Use immediate use iterator.
7728         (stmt_is_bumper_for_loop): Use immediate use iterator.
7729         * predict.c (strip_builtin_expect): Use update_stmt.
7730         * tree-cfg.c (update_modified_stmts): New. Call update_stmt_if_modified
7731         on all elements of a STATEMENT_LIST.
7732         (bsi_insert_before, bsi_insert_after): Call update_modified_stmts.
7733         (bsi_remove): Remove imm_use links and mark the stmt as modified.
7734         (bsi_replace): Mark stmt as modified and the update it.
7735         * tree-complex.c (update_complex_assignment): Call mark_stmt_modified.
7736         (expand_complex_libcal): Call update_stmt.
7737         (expand_complex_comparison): Call mark_stmt_modified.
7738         (expand_complex_operations_1): Call update_stmt_if_modified.
7739         (expand_vector_operations_1): Call mark_stmt_modified.
7740         * tree-dfa.c (compute_immediate_uses, free_df_for_stmt, free_df,
7741         compute_immediate_uses_for_phi, compute_immediate_uses_for_stmt,
7742         add_immediate_use, redirect_immediate_use,
7743         redirect_immediate_uses, dump_immediate_uses, debug_immediate_uses,
7744         dump_immediate_uses_for, debug_immediate_uses_for): Delete.
7745         (mark_new_vars_to_rename): Call update_stmt.
7746         * tree-dump.c (dump_option_value_in): Add "stmtaddr".
7747         * tree-flow-inline.h (modify_stmt): Rename to mark_stmt_modified.
7748         Ignore PHI nodes.
7749         (unmodify_stmt): Delete.
7750         (update_stmt): New.  Force an update of a stmt.
7751         (update_stmt_if_modified): update a stmt if it is out of date.
7752         (get_stmt_operands): Verify stmt is NOT modified.
7753         (stmt_modified_p): Update comment.
7754         (delink_imm_use): Remove a use node from its immuse list.
7755         (link_imm_use_to_list): Link a use node to a specific list.
7756         (link_imm_use): Link a node to the correct list.
7757         (set_ssa_use_from_ptr): Set a use node to a specific value, and insert
7758         it in the correct list, if appropriate.
7759         (link_imm_use_stmt): Link a use node, and set the stmt pointer.
7760         (relink_imm_use): Link a use node in place of another node in a list.
7761         (relink_imm_use_stmt): LInk a node in place of another node, and set
7762         the stmt pointer.
7763         (end_safe_imm_use_traverse): New.  Terminate a safe immuse iterator.
7764         (end_safe_imm_use_p): New.  Check for the end of a safe immuse iterator.
7765         (first_safe_imm_use): New.  Initialize a safe immuse iterator.
7766         (next_safe_imm_use): New.  Proceed to next safe immuse iterator value.
7767         (end_readonly_imm_use_p): New.  Check for end of a fast immuse iterator.
7768         (first_readonly_imm_use): New.  Initialize a fast immuse iterator.
7769         (next_readonly_imm_use): New.  Get the next fast immuse iterator value.
7770         (has_zero_uses): New.  Return true if there are no uses of a var.
7771         (has_single_use): New.  Return true if there is only a single use of a
7772         variable.
7773         (single_imm_use): New.  Return the simgle immediate use.
7774         (num_imm_uses): New.  Return the number of immediate uses.
7775         (get_v_must_def_ops): Use is now a pointer.
7776         (use_operand_p, get_v_may_def_op_ptr, get_vuse_op_ptr,
7777         get_v_must_def_kill_ptr, get_phi_arg_def_ptr): Return the address of
7778         the use node.
7779         (get_immediate_uses, num_immediate_uses, immediate_use): Delete.
7780         (delink_stmt_imm_use): Delink all immuses from a stmt.
7781         (phi_arg_index_from_use): New.  Return a phi arg index for a use.
7782         * tree-flow.h (struct dataflow_d): Delete.
7783         (immediate_use_iterator_d): New.  Immediate use iterator struct.
7784         (FOR_EACH_IMM_USE_FAST): New.  Macro for read only immuse iteration.
7785         (FOR_EACH_IMM_USE_SAFE): New.  Macro for write-safe immuse iteration.
7786         (BREAK_FROM_SAFE_IMM_USE): New.  Macro for earlyu exit from write-safe
7787         iteration.
7788         (struct stmt_ann_d): Remove dataflow_t from struct.
7789         * tree-if-conv.c (tree_if_conversion).  Don't call free_df.
7790         (if_convertible_phi_p): Use FAST immuse iterator.
7791         (if_convertible_loop_p): Don't call compute_immediate_uses.
7792         (replace_phi_with_cond_modify_expr): Call update_stmt.
7793         * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites): Call
7794         update_stmt_if_modified.
7795         (rewrite_all_into_ssa): Initialize ssa operands.
7796         * tree-loop-linear.c (linear_transform_loops): Don't call free_df or
7797         compute_immediate_uses.
7798         * tree-optimize.c (execute_todo): Call verify_ssa whenever the
7799         ssa_property is available.
7800         (execute_one_pass):  Change parameters passed to execute_todo.
7801         * tree-outof-ssa.c (rewrite_trees): Don't call modify_stmt.
7802         (remove_ssa_form): Call fini_ssa_operands.
7803         (insert_backedge_copies): Delete call to modify_stmt.
7804         * tree-phinodes.c (make_phi_node): Initialize use nodes.
7805         (release_phi_node): Delink any use nodes before releasing.
7806         (resize_phi_node): Relink any use nodes.
7807         (remove_phi_arg_num): Delink the use node.
7808         (remove_phi_node): Release the ssa_name AFTER releasing the phi node.
7809         (remove_all_phi_nodes_for): Release phi node first.
7810         * tree-pretty-print.c (dump_generic_node): Print stmt address.
7811         * tree-sra.c (mark_all_v_defs): Call update_stmt_if_modified.
7812         (scalarize_use, scalarize_copy): Call update_stmt.
7813         * tree-ssa-alias.c (compute_may_aliases): Update all modified stmts.
7814         (compute_points_to_and_addr_escape): Call mark_stmt_modified.
7815         * tree-ssa-cpp.c (need_imm_uses_for): Delete.
7816         (ccp_initialize): Remove call to compute_immediate_uses.
7817         (substitute_and_fold, execute_fold_all_builtins): Call update_stmt.
7818         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Update all modified
7819         stmts.
7820         (simplify_cond_and_lookup_avail_expr): Call mark_stmt_modified.
7821         (simplify_switch_and_lookup_avail_expr): Call mark_stmt_modified.
7822         (eliminate_redundant_computations): Call mark_stmt_modified.
7823         (cprop_operand): Call mark_stmt_modified.
7824         (optimize_stmt): Call update_stmt_if_modified and mark_stmt_modified.
7825         * tree-ssa-dse.c (fix_phi_uses, fix_stmt_v_may_defs): Delete.
7826         (dse_optimize_stmt): Use new immuse interface.
7827         (tree_ssa_dse): Remove calls to compute_immediate_uses and free_df.
7828         * tree-ssa-forwprop.c (need_imm_uses_for): Delete.
7829         (substitute_single_use_vars): Use new immuse interface.
7830         (tree_ssa_forward_propagate_single_use_vars): Remove calls to free_df
7831         and compute_immediate_uses.
7832         * tree-ssa-loop-im.c (single_reachable_address): Use new immuse
7833         interface.
7834         (rewrite_mem_refs): Call update_stmt.
7835         (determine_lsm): Remove call to compute_imm_uses and free_df.
7836         * tree-ssa-loop-ivcanon.c (create_canonical_iv): Call update_stmt.
7837         (try_unroll_loop_completely): Call update_stmt.
7838         * tree-ssa-loop-ivopts.c (rewrite_address_base): Call update_stmt.
7839         (rewrite_use_compare): Call update_stmt.
7840         (compute_phi_arg_on_exit): Insert each stmt before trying to process.
7841         (rewrite_use) : Call update_stmt.
7842         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Add arg to call.
7843         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Call
7844         update_stmt.
7845         * tree-ssa-operands.c (NULL_USE_OPERAND_P): Remove declaration.
7846         (allocate_use_optype, allocate_vuse_optype): Adjust allocation size.
7847         (free_uses, free_vuses, free_v_may_defs, free_v_must_defs): Delink
7848         use nodes.
7849         (initialize_vuse_operand): New.  Initialize a vuse operand.
7850         (initialize_v_may_def_operand): New.  Initialize a maydef operand.
7851         (initialize_v_must_def_operand): New.  Initialize a mustdef operand.
7852         (finalize_ssa_defs): Use stmt parameter.
7853         (correct_use_link): Ensure a use node is in the correct list, and has
7854         the correct stmt pointer.
7855         (finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_vuses,
7856         finalize_ssa_v_must_defs): Also initialize use nodes.
7857         (finalize_ssa_stmt_operands): Pass extra stmt operands.
7858         (build_ssa_operands): Seperate parsing from final operand construction.
7859         (parse_ssa_operands): New.  Parse entry point for operand building.
7860         (swap_tree_operands): New.  Swap 2 tree operands.
7861         (update_stmt_operands): Ranamed from get_stmt_operands.  Always builds
7862         operands.
7863         (get_expr_operands): Call swap_tree_operands when needed.
7864         (copy_virtual_operands): Use initialize routines for virtual use ops.
7865         (create_ssa_artficial_load_stmt): Add extra stmt parameter.
7866         (verify_abort): New.  Issue imm_use error.
7867         (verify_imm_links): New Verify imm_use links for a var.
7868         (dump_immediate_uses_for): New.  Dump imm_uses for a var to file.
7869         (dump_immediate_uses): New.  Dump imm_uses for all vars to file.
7870         (debug_immediate_uses): New.  Dump imm_uses for all vars to stderr.
7871         (debug_immediate_uses_for): New.  Dump imm_uses for a var to stderr.
7872         * tree-ssa-operands.h (struct use_operand_ptr): Delete.
7873         (NULL_USE_OPERAND_P) Define.
7874         (use_optype_d, v_def_use_operand_type, vuse_optype_d): Add immediate
7875         use node.
7876         (struct vuse_operand_type): New struct.
7877         (SET_USE): Call set_ssa_use_from_ptr.
7878         (USE_STMT): Define.
7879         (PHI_ARG_INDEX_FROM_USE): Define.
7880         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Set the phi
7881         argument via SET_USE, not PHI_ARG_DEF_TREE.
7882         * tree-ssa-pre.c (eliminate): Call update_stmt.
7883         * tree-ssa-propagate.c (cfg_blocks_get): Use imm_use iterators.  Don't
7884         call free_df.
7885         * tree-ssa-sink.c (all_immediate_uses_same_place): Use imm_use iterator.
7886         (nearest_common_dominator_of_uses): Use imm_use iterator.
7887         (statement_sink_location): Use imm_use iterator and interface.
7888         (execute_sink_code): Don't call compute_immediate_uses or free-df.
7889         * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis): Use
7890         PHI_ARG_DEF, not PHI_ARG_DEF_TREE.
7891         * tree-ssa.c (verify_use, verify_phi_args): Verify some imm_use info.
7892         (verify_ssa): Ensure no stmt is marked modify after optimization pass
7893         if new parameter is true.
7894         (init_tree_ssa): Don't initialize operand cache here.
7895         (delete_tree_ssa): Don't destroy operand cache here.
7896         (propagate_into_addr): Pass in a use pointer, return true if anything
7897         was changed.
7898         (replace_immediate_uses): Use imm_use iterator, call update_stmt.
7899         (check_phi_redundancy): Use imm_use iterator.
7900         (kill_redundant_phi_nodes): Don't call compute_immediate_uses or
7901         free_df.
7902         * tree-ssanames.c (make_ssa_name): Initialize imm_use node.
7903         (release_ssa_name): Delink node and all elements in its imm_use list.
7904         * tree-tailcall.c (adjust_return_value): Call update_stmt.
7905         * tree-vect-analyze.c (vect_stmt_relevant_p): Use imm_use iterator.
7906         * tree-vectorizer.c (need_imm_uses_for): Delete.
7907         (vectorize_loops): Dont call compute_immediate_uses or free_df.
7908         * tree.h (struct ssa_imm_use_d): Define.
7909         (SSA_NAME_IMM_USE_NODE): Define.
7910         (struct tree_ssa_name): Add imm_use node.
7911         (PHI_DF): Delete.
7912         (PHI_ARG_IMM_USE_NODE): Define.
7913         (struct phi_arg_d): Add imm_use node.
7914         (struct tree_phi_node): Remove struct dataflow_d element.
7915         (TDF_STMTADDR): Define.
7916
7917 2005-04-05  Dale Johannesen  <dalej@apple.com>
7918
7919         * doc/invoke.texi (Optimization Options):  Remove
7920         duplicate -fcse-follow-jumps.  Add -fweb.
7921         (-ftree-lim):  Fix spelling (-ftree-loop-im, invariants).
7922         (-fivcanon):  Fix spelling (-ftree-loop-ivcanon).
7923
7924 2005-04-05  Per Bothner  <per@bothner.com>
7925
7926         * tree-ssa.c (execute_early_warn_uninitialized): Pass context node
7927         to talk_tree as 'data' parameter, rather than EXPR_LOCUS.
7928         (warn_uninit): Get EXPR_LOCUS from context now instead.
7929         This fixes a USE_MAPPED_LOCATION testsuite failure.
7930
7931         * tree-ssa.c (warn_uninitialized_var): Remove useless local.
7932
7933 2005-04-05  Per Bothner  <per@bothner.com>
7934
7935         * c-decl.c (finish_function): If USE_MAPPED_LOCATION set the location
7936         of the artification 'return 0' in main() to BUILTINS_LOCATION.
7937         * tree-cfg.c (remove_bb): Check that location isn't BUILTINS_LOCATION
7938         before warning.
7939
7940 2004-04-05  Devang Patel  <dpatel@apple.com>
7941
7942         * config/rs600/altivec.md (altivec_vsr<VI_char>): Rename to ..
7943         (lhsr<mode>3): ... new name.
7944         (altivec_vsra<VI_char>): Rename to ..
7945         (ashr<mode>3): ... new name.
7946         * config/rs6000/rs6000.c (builtin_description): Rename shift
7947         operations.
7948
7949 2004-04-05  Paolo Bonzini  <bonzini@gnu.org>
7950
7951         * combine.c (RTL_HOOKS_GEN_LOWPART_NO_EMIT): Use
7952         gen_lowpart_for_combine.
7953         * cse.c (gen_lowpart_if_possible): Move...
7954         * rtlhooks.c (gen_lowpart_if_possible): ... here.  Also try
7955         gen_lowpart_SUBREG.
7956         (gen_lowpart_no_emit_general): Use it.
7957
7958 2005-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
7959
7960         * config/sparc/sparc.c (TARGET_ASM_FILE_END): Undefine before
7961         overriding.
7962
7963 2005-04-05  Paolo Bonzini  <bonzini@gnu.org>
7964
7965         * system.h: Fix typo.
7966
7967 2005-04-05  Bernd Schmidt  <bernd.schmidt@analog.com>
7968
7969         * config/bfin/bfin-modes.def: New file.
7970         * config/bfin/bfin-protos.h: New file.
7971         * config/bfin/bfin.c: New file.
7972         * config/bfin/bfin.h: New file.
7973         * config/bfin/bfin.md: New file.
7974         * config/bfin/bfin.opt: New file.
7975         * config/bfin/crti.s: New file.
7976         * config/bfin/crtn.s: New file.
7977         * config/bfin/elf.h: New file.
7978         * config/bfin/lib1funcs.asm: New file.
7979         * config/bfin/predicates.md: New file.
7980         * config/bfin/t-bfin: New file.
7981         * config/bfin/t-bfin-elf: New file.
7982         * doc/extend.texi (exception_handler, kspisusp, nesting, nmi_handler):
7983         Document new attributes.
7984         (interrupt, interrupt_handler, saveall): Update documentation for
7985         these attributes.
7986         * doc/install.texi (Specific): Add entry for the Blackfin.
7987         * doc/invoke.texi (Blackfin Options): New section.
7988         * doc/md.texi (Blackfin family): New section to document constraints.
7989         * config.gcc: Add bfin*-* and bfin*-elf configurations.
7990
7991 2005-04-05  Olivier Hainque  <hainque@adacore.com>
7992
7993         * config/mips/iris6.h (DWARF_FRAME_RETURN_COLUMN): Redefine to
7994         match what the system unwinder expects.
7995         * config/mips/mips.c (mips_frame_set): If we're saving the return
7996         address register and the dwarf return address column number differs
7997         from the hard register number, adjust the note reg to refer to the
7998         former.
7999
8000 2004-04-05  Richard Sandiford  <rsandifo@redhat.com>
8001
8002         * config/mn10300/mn10300-protos.h (mn10300_override_options): Declare.
8003         * config/mn10300/mn10300.h (target_flags, TARGET_MULT_BUG)
8004         (TARGET_SWITCHES, TARGET_DEFAULT): Delete.
8005         (processor_type): New enum.
8006         (mn10300_processor): New variable.
8007         (TARGET_AM33, TARGET_AM33_2): Redefine in terms of mn10300_processor.
8008         (PROCESSOR_DEFAULT, OVERRIDE_OPTIONS): New macros.
8009         * config/mn10300/linux.h (TARGET_SWITCHES, TARGET_DEFAULT): Delete.
8010         (PROCESSOR_DEFAULT): New macro.
8011         * config/mn10300/mn10300.c (mn10300_processor): New variable.
8012         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
8013         (mn10300_handle_option, mn10300_override_options): New functions.
8014         * config/mn10300/mn10300.opt: New file.
8015
8016 2005-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
8017             Sebastian Pop <sebastian.pop@cri.ensmp.fr>
8018
8019         PR tree-optimization/19903
8020         * tree-chrec.c (chrec_convert): Return chrec_dont_know for constants
8021         that don't fit in their type after conversion.
8022
8023 2005-04-05  Uros Bizjak <uros@kss-loka.si>
8024
8025         PR target/20421
8026         * config/i386/i386.md (frndintxf2_floor, frndintxf2_ceil)
8027         (frndintxf2_trunc, frndintxf2_mask_pm): Add FLAGS_REG clobber.
8028         Allocate local stack slots here.  Set ix86_optimize_mode_switching.
8029         flag here. Implement using define_insn_and_split.
8030         (frndintxf2_floor_i387, frndintxf2_ceil_i387, frndintxf2_trunc_i387)
8031         (frndintxf2_mask_pm_i387): New insn patterns.
8032         (floorsf2, floordf2, floorxf2): Remove local stack slot allocations.
8033         Do not set ix86_optimize_mode_switching flag.
8034         (ceilsf2, ceildf2, ceilxf2): Same.
8035         (btruncsf2, btruncdf2, btruncxf2): Same.
8036         (nearbyintsf2, nearbyintdf2, nearbyintxf2): Same.
8037
8038 2005-04-05  Ian Lance Taylor  <ian@airs.com>
8039
8040         PR debug/9963
8041         * config/i386/cygming.h (ASM_OUTPUT_EXTERNAL): Pass DECL to
8042         i386_pe_record_external_function.
8043         (i386_pe_record_external_function): Update declaration.
8044         * config/i386/winnt.c (struct extern_list): Add decl field.
8045         (i386_pe_record_external_function): Add decl parameter.
8046         (i386_pe_file_end): Check TREE_ASM_WRITTEN on decl, not
8047         identifier.
8048         * config/i386/i386-protos.h (i386_pe_record_external_function):
8049         Update declaration.
8050
8051 2005-04-05  Kazu Hirata  <kazu@cs.umass.edu>
8052
8053         * config/m68k/m68k-protos.h: Add a prototype for
8054         valid_dbcc_comparison_p_2.
8055         * config/m68k/m68k.c (not_sp_operand, symbolic_operand,
8056         extend_operator, const_uint32_operand, const_sint32_operand,
8057         general_src_operand, nonimmediate_src_operand,
8058         memory_src_operand, post_inc_operand, pre_dec_operand,
8059         pcrel_address): Move to predicates to predicates.md.
8060         * config/m68k/m68k.h (PREDICATE_CODES): Remove.
8061         * config/m68k/m68k.md: Include predicates.md.
8062         * config/m68k/predicates.md: New.
8063
8064 2005-04-04  Roger Sayle  <roger@eyesopen.com>
8065
8066         * config/i386/i386.md (*truncdfsf2_i387_1): New pattern.
8067
8068         * fold-const.c (maybe_lvalue_p): Delete orphaned comment.
8069
8070 2005-04-04  Ian Lance Taylor  <ian@airs.com>
8071
8072         * c-typeck.c (struct c_switch): Rename switch_stmt field to
8073         switch_expr.
8074         (c_start_case): Build SWITCH_EXPR, not SWITCH_STMT.
8075         (do_case): Use SWITCH_COND rather than SWITCH_STMT_COND.
8076         (c_finish_case): Use SWITCH_BODY rather than SWITCH_STMT_BODY.
8077         Call c_do_switch_expr_warnings rather than c_do_switch_warnings.
8078         * c-common.c (c_do_switch_warnings_1): New static function broken
8079         out of c_do_switch_warnings.
8080         (c_do_switch_warnings): Call c_do_switch_warnings_1.
8081         (c_do_switch_expr_warnings): New function.
8082         * c-common.h (c_do_switch_expr_warnings): Declare.
8083
8084 2005-04-04  David Edelsohn  <edelsohn@gnu.org>
8085             Daniel Jacobowitz  <dan@codesourcery.com>
8086
8087         * tree-eh.c (tree_could_trap_p): Allow non-constant floating point
8088         trapping divide.
8089         * rtlanal.c (may_trap_p): Same.
8090
8091 2005-04-04  Dale Johannesen  <dalej@apple.com>
8092
8093         * ChangeLog:  remove reference to ChangeLog.12.
8094
8095 2005-04-05  Hans-Peter Nilsson  <hp@axis.com>
8096
8097         CRIS epilogue as RTL.
8098         * config/cris/cris.md: Change all 0 in unspec 0 to
8099         CRIS_UNSPEC_PLT.
8100         (CRIS_UNSPEC_PLT, CRIS_UNSPEC_FRAME_DEALLOC): New constants.
8101         ("*cris_load_multiple", "cris_frame_deallocated_barrier"): New
8102         patterns.
8103         ("return"): Change to define_expand.  Call cris_expand_return for
8104         actual expansion.
8105         ("*return_expanded"): New pattern.
8106         ("epilogue"): New define_expand.
8107         * config/cris/cris.h (PREDICATE_CODES): Add
8108         cris_load_multiple_op.
8109         * config/cris/cris.c (ASSERT_PLT_UNSPEC): Correct test for unspec
8110         type.
8111         (enum cris_retinsn_type): New.
8112         (struct machine_function): New member return_type.
8113         (TARGET_ASM_FUNCTION_EPILOGUE): Don't override.
8114         (cris_target_asm_function_epilogue): Remove, moving RTLified
8115         contents to...
8116         (cris_expand_epilogue): New function.
8117         (cris_reg_saved_in_regsave_area, cris_movem_load_rest_p,
8118         (cris_gen_movem_load, cris_load_multiple_op)
8119         (cris_return_address_on_stack_for_return, cris_expand_return): New
8120         functions.
8121         (cris_target_asm_function_prologue)
8122         (cris_initial_frame_pointer_offset): Call
8123         cris_reg_saved_in_regsave_area instead of complicated expression.
8124         Call cris_return_address_on_stack instead of an expression.
8125         (cris_print_operand) <case 'o', case 'O'>: New cases.
8126         (cris_return_address_on_stack): Change return-type to bool.
8127         (cris_simple_epilogue): Ditto.  Return false if registers are
8128         saved.
8129         * config/cris/cris-protos.h (cris_simple_epilogue)
8130         (cris_return_address_on_stack): Adjust prototype return type.
8131         (cris_gen_movem_load, cris_expand_epilogue, cris_expand_return)
8132         (cris_return_address_on_stack_for_return): New prototypes.
8133
8134 2005-04-04  Kazu Hirata  <kazu@cs.umass.edu>
8135
8136         * config/frv/frv.h (PREDICATE_CODES): Add CONST to
8137         gpr_or_int12_operand.
8138
8139         * config/frv/frv-protos.h: Add a prototype to
8140         frv_legitimate_memory_operand and frv_const_unspec_p.
8141         (frv_unspec): Move from frv.c.
8142         * config/frv/frv.c (frv_unspec): Move to frv-protos.h.
8143         (frv_const_unspec_p, frv_legitimate_memory_operand_): Export.
8144         (ldd_address_operand, fdpic_fptr_operand, frv_load_operand,
8145         gpr_or_fpr_operand, gpr_or_int12_operand,
8146         gpr_fpr_or_int12_operand, fpr_or_int6_operand,
8147         gpr_or_int10_operand, gpr_or_int_operand, int12_operand,
8148         int6_operand, int5_operand, uint5_operand, uint4_operand,
8149         uint1_operand, int_2word_operand, uint16_operand,
8150         upper_int16_operand, integer_register_operand,
8151         gpr_no_subreg_operand, fpr_operand, even_reg_operand,
8152         odd_reg_operand, even_gpr_operand, odd_gpr_operand,
8153         quad_fpr_operand, even_fpr_operand, odd_fpr_operand,
8154         dbl_memory_one_insn_operand, dbl_memory_two_insn_operand,
8155         move_destination_operand, movcc_fp_destination_operand,
8156         frv_function_symbol_referenced_p, move_source_operand,
8157         condexec_dest_operand, condexec_source_operand,
8158         reg_or_0_operand, lr_operand, fdpic_operand, got12_operand,
8159         const_unspec_operand, gpr_or_memory_operand,
8160         gpr_or_memory_operand_with_scratch, fpr_or_memory_operand,
8161         icc_operand, fcc_operand, cc_operand, icr_operand,
8162         fcr_operand, cr_operand, call_operand, sibcall_operand,
8163         symbolic_operand, relational_operator,
8164         integer_relational_operator, float_relational_operator,
8165         ccr_eqne_operator, minmax_operator,
8166         condexec_si_binary_operator, condexec_si_media_operator,
8167         condexec_si_divide_operator, condexec_si_unary_operator,
8168         condexec_sf_conv_operator, condexec_sf_add_operator,
8169         condexec_memory_operand, intop_compare_operator, acc_operand,
8170         even_acc_operand, quad_acc_operand, accg_operand: Move to
8171         predicates.md.
8172         * config/frv/frv.h (PREDICATE_CODES): Remove.
8173         * config/frv/frv.md: Include predicates.md.
8174         * config/frv/predicates.md: New.
8175
8176 2004-04-04  Richard Sandiford  <rsandifo@redhat.com>
8177
8178         PR target/19537
8179         * Makefile.in (tree-ssa-loop-ivopts.o): Depend on langhooks.h.
8180         * tree-ssa-loop-ivopts.c: Include langhooks.h.
8181         (add_standard_iv_candidates_for_size): New function, extracting code
8182         from add_standard_iv_candidates and parameterizing it by type size.
8183         (add_standard_iv_candidates): Use add_standard_iv_candidates_for_size.
8184
8185 2004-04-04  Richard Sandiford  <rsandifo@redhat.com>
8186
8187         * system.h (GCOV_SIZE_TYPE): Unposion.
8188         * gcov-io.h (GCOV_TYPE_NODE): Delete, replacing with...
8189         (GCOV_TYPE_SIZE): ...this new macro.
8190         * coverage.h (get_gcov_type, GCOV_TYPE_NODE): Declare.
8191         * coverage.c (get_gcov_type, get_gcov_unsigned_t): New functions.
8192         (rtl_coverage_counter_ref): Use GCOV_TYPE_SIZE.
8193         (build_fn_info_type, build_fn_info_value, build_ctr_info_type)
8194         (build_ctr_info_value, build_gcov_info): Use get_gcov_unsigned_t
8195         instead of unsigned_intSI_type_node.
8196         * rtl-profile.c (rtl_gen_interval_profiler, rtl_gen_pow2_profiler)
8197         (rtl_gen_one_value_profiler_no_edge_manipulation)
8198         (rtl_gen_const_delta_profiler): Use GCOV_TYPE_SIZE.
8199         * value-prof.c: Include coverage.h.
8200
8201 2005-04-02  Daniel Berlin  <dberlin@dberlin.org>
8202             Diego Novillo <dnovillo@redhat.com>
8203
8204         Fix PR tree-optimization/20703
8205         Fix PR tree-optimization/20725
8206
8207         * tree-ssa-pre.c (phi_translate): Handle tcc_comparison.
8208         (create_expression_by_pieces): Ditto.
8209         (valid_in_set): Ditto. Also handle tcc_declaration.
8210         (find_or_generate_expression): Handle comparison class.
8211         (insert_into_preds_of_block): Ditto.
8212         (insert_aux): Ditto.
8213         (create_value_expr_from): Handle comparison class, recursively
8214         handle reference nodes.
8215         (compute_avail): Handle comparison classes, rewrite a little cleaner.
8216         (execute_pre): Fix spacing.
8217         (do_fre): Renamed to execute_fre.
8218
8219 2005-04-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
8220
8221         * doc/invoke.texi (SPARC options): Document that
8222         -mlittle-endian is not supported on Linux either.
8223
8224 2005-04-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
8225
8226         PR target/4198
8227         PR target/12027
8228         * config.gcc (Obsolete configurations): Remove
8229         sparclite-*-coff*, sparclite-*-elf* and sparc86x-*-elf*.
8230         (sparclite-*-coff*): Delete.
8231         (sparclite-*-elf*): Likewise.
8232         (sparc86x-*-elf*): Likewise.
8233         (target_cpu_default) <sparc*-*-*>: Remove sparc86x.
8234         * config/sparc/lite.h: Delete.
8235         * config/sparc/litecoff.h: Likewise.
8236         * config/sparc/liteelf.h: Likewise.
8237         * config/sparc/sp86x-elf.h: Likewise.
8238         * config/sparc/t-sparclite: Likewise.
8239         * config/sparc/t-sp86x: Likewise.
8240
8241 2005-04-04  Adrian Straetling  <straetling@de.ibm.com>
8242
8243         * config/s390/s390-protos.h: (s390_comparison,
8244         s390_alc_comparison, s390_slb_comparison, const0_operand,
8245         consttable_operand, larl_operand, s_operand,
8246         shift_count_operand, bras_sym_operand, load_multiple_operation,
8247         store_multiple_operation, s390_plus_operand): Remove prototypes.
8248         (s390_legitimate_address_without_index_p): New prototype.
8249         * config/s390/s390.c: (SYMBOL_FLAG_ALIGN1, DISP_IN_RANGE): Move
8250         to s390.h.
8251         (s390_comparison, s390_alc_comparison, s390_slb_comparison,
8252         const0_operand, consttable_operand, larl_operand, s_operand,
8253         shift_count_operand, bras_sym_operand, load_multiple_operation,
8254         store_multiple_operation, s390_plus_operand): Move to
8255         predicates.md.
8256         (check_mode): Remove.
8257         (s390_branch_condition_mask): Remove 'static'. Move prototype to
8258         s390-protos.h.
8259         (s390_legitimate_address_without_index_p): New.
8260         * config/s390/s390.h (PREDICATE_CODES): Remove.
8261         * config/s390/s390.md: Include predicates.md.
8262         * config/s390/predicates.md: New.
8263
8264 2005-04-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
8265
8266         PR target/20446
8267         * config/sparc/sparc.h (NEED_INDICATE_EXEC_STACK): Define to 0.
8268         * config/sparc/linux.h (TARGET_ASM_FILE_END): Delete.
8269         (NEED_INDICATE_EXEC_STACK): Define to 1.
8270         * config/sparc/linux64.h (TARGET_ASM_FILE_END): Delete.
8271         (NEED_INDICATE_EXEC_STACK): Define to 1.
8272         * config/sparc/sparc.c (TARGET_ASM_FILE_END): Set to sparc_file_end.
8273         (add_pc_to_pic_symbol): Rename into pic_helper_symbol.
8274         (add_pc_to_pic_symbol_name): Rename into pic_helper_symbol_name.
8275         (pic_helper_emitted_p): New global.
8276         (emit_pic_helper): New function extracted from...
8277         (load_pic_register): ...here.  Add 'delay_pic_helper' parameter.
8278         Do not call emit_pic_helper if delay_pic_helper is true.
8279         (sparc_expand_prologue): Pass 'false' to load_pic_register.
8280         (sparc_output_mi_thunk): Pass 'true' to load_pic_register.
8281         (sparc_file_end): New function.
8282
8283 2005-04-04  Kazu Hirata  <kazu@cs.umass.edu>
8284
8285         * config/mcore/mcore-protos.h: Remove the prototypes for
8286         mcore_arith_reg_operand, mcore_general_movsrc_operand,
8287         mcore_general_movdst_operand, mcore_reload_operand,
8288         mcore_arith_J_operand, mcore_arith_K_operand,
8289         mcore_arith_K_operand_not_0, mcore_arith_M_operand,
8290         mcore_arith_K_S_operand, mcore_arith_imm_operand,
8291         mcore_arith_any_imm_operand, mcore_arith_O_operand,
8292         mcore_literal_K_operand, mcore_addsub_operand,
8293         mcore_compare_operand, mcore_load_multiple_operation,
8294         mcore_store_multiple_operation, mcore_call_address_operand.
8295         Add a prototype for const_ok_for_mcore.
8296         * config/mcore/mcore.c (mcore_call_address_operand,
8297         mcore_general_movsrc_operand, mcore_general_movdst_operand,
8298         mcore_arith_reg_operand, mcore_reload_operand,
8299         mcore_arith_J_operand, mcore_arith_K_operand,
8300         mcore_arith_K_operand_not_0, mcore_arith_K_S_operand,
8301         mcore_arith_M_operand, mcore_arith_imm_operand,
8302         mcore_arith_any_imm_operand, mcore_arith_O_operand,
8303         mcore_literal_K_operand, mcore_addsub_operand,
8304         mcore_compare_operand, mcore_load_multiple_operation,
8305         mcore_store_multiple_operation): Move to predicates.md.
8306         (const_ok_for_mcore): Export.
8307         * config/mcore/mcore.h (PREDICATE_CODES): Remove.
8308         * config/mcore/mcore.md: Include predicates.md.
8309         * config/mcore/predicates.md: New.
8310
8311         * config/mcore/predicates.md: Fix a comment typo.
8312
8313 2005-04-04  Andreas Krebbel  <krebbel1@de.ibm.com>
8314             Adrian Straetling  <straetling@de.ibm.com>
8315
8316         * config/s390/2064.md ("z_mul", "z_inf"): New insn reservations.
8317         * config/s390/2084.md ("x_mul_hi", "x_mul_sidi", "x_div"): Likewise.
8318         * config/s390/s390.md ("imulhi", "imulsi", "imuldi"): Added to "type"
8319         attribute.
8320         ("imul"): Removed from "type" attribute.
8321         ("*muldi3_sign", "muldi3"): Changed type to imuldi.
8322         ("mulsi3/1", "mulsi3/3", "mulsi/4", "mulsidi3", "umulsidi3"):
8323         Changed type to imulsi.
8324         ("*mulsi3_sign", "mulsi3/2"): Changed type to imulhi.
8325
8326 2005-04-04  Richard Sandiford  <rsandifo@redhat.com>
8327
8328         * config/mcore/mcore.h (target_flags, HARDLIT_BIT, ALIGN8_BIT, DIV_BIT)
8329         (RELAX_IMM_BIT, W_FIELD_BIT, OVERALIGN_FUNC_BIT, CGDATA_BIT)
8330         (SLOW_BYTES_BIT, LITTLE_END_BIT, M340_BIT, TARGET_HARDLIT)
8331         (TARGET_DIV, TARGET_RELAX_IMM, TARGET_W_FIELD, TARGET_OVERALIGN_FUNC)
8332         (TARGET_CG_DATA, TARGET_SLOW_BYTES, TARGET_LITTLE_END, TARGET_M340)
8333         (TARGET_SWITCHES, mcore_stack_increment_string)
8334         (TARGET_OPTIONS): Delete.
8335         (TARGET_DEFAULT, OPTIMIZATION_OPTIONS): Use MASK_* constants rather
8336         than *_BIT constants.
8337         (TARGET_8ALIGN): #undef old definition before redefining to 1.
8338         * config/mcore/mcore.c (mcore_stack_increment_string): Delete.
8339         (TARGET_DEFAULT_TARGET_FLAGS): Override default to TARGET_DEFAULT.
8340         (mcore_override_options): Delete mcore_stack_increment code.
8341         Change use of M340_BIT to MASK_M340.
8342         * config/mcore/mcore.opt: New file.
8343
8344 2005-04-04  Ian Lance Taylor  <ian@airs.com>
8345
8346         * config/arm/arm.c (replace_symbols_in_block): Remove static
8347         function.
8348
8349 2005-04-04  Kazu Hirata  <kazu@cs.umass.edu>
8350
8351         * config/fr30/fr30-protos.h: Remove the prototypes for
8352         stack_add_operand, add_immediate_operand,
8353         high_register_operand, low_register_operand, call_operand,
8354         di_operand, and nonimmediate_di_operand.
8355         * config/fr30/fr30.c (stack_add_operand,
8356         add_immediate_operand, high_register_operand,
8357         low_register_operand, call_operand, di_operand,
8358         nonimmediate_di_operand): Move to predicates.md.
8359         * config/fr30/fr30.h (PREDICATE_CODES): Remove.
8360         * config/fr30/fr30.md: Include predicates.md.
8361         * config/fr30/predicates.md: New.
8362
8363         * config/mcore/mcore.h (PREDICATE_CODES): Add SYMBOL_REF and
8364         LABEL_REF to mcore_general_movsrc_operand.  Add SYMBOL_REF to
8365         mcore_call_address_operand.
8366
8367         * config/sh/sh.h (PREDICATE_CODES): Add CONST to
8368         general_movsrc_operand.
8369
8370 2005-04-04  Alan Modra  <amodra@bigpond.net.au>
8371
8372         * passes.c (rest_of_handle_final): NULL unlikely_text_section_name
8373         after freeing.
8374
8375 2005-04-04  Richard Earnshaw  <richard.earnshaw@arm.com>
8376
8377         PR target/14812
8378         * arm.c (arm_select_cc_mode): Return CC_Zmode when comparing against
8379         a negated value.
8380
8381 2005-04-04  Richard Henderson  <rth@redhat.com>
8382             Jakub Jelinek  <jakub@redhat.com>
8383
8384         PR rtl-optimization/16104
8385         * fold-const.c (fold_unary): Fix folding of vector conversions.
8386
8387 2005-04-04  Richard Sandiford  <rsandifo@redhat.com>
8388
8389         * config.gcc (xstormy16-*-elf): Set extra_options.
8390         * config/stormy16/stormy16.h (target_flags, TARGET_SWITCHES): Delete.
8391         * config/stormy16/stormy16.opt: New file.
8392
8393 2005-04-04  Richard Sandiford  <rsandifo@redhat.com>
8394
8395         * config/pdp11/pdp11.h (target_flags, TARGET_SWITCHES, TARGET_DEFAULT)
8396         (TARGET_FPU, TARGET_SOFT_FLOAT, TARGET_AC0, TARGET_NO_AC0, TARGET_45)
8397         (TARGET_BCOPY_BUILTIN, TARGET_INT16, TARGET_INT32, TARGET_FLOAT32)
8398         (TARGET_FLOAT64, TARGET_ABSHI_BUILTIN, TARGET_BRANCH_EXPENSIVE)
8399         (TARGET_BRANCH_CHEAP, TARGET_SPLIT, TARGET_NOSPLIT)
8400         (TARGET_UNIX_ASM): Delete.
8401         (TARGET_40_PLUS): Redefine in terms of TARGET_40 and TARGET_45.
8402         * config/pdp11/2bsd.h (TARGET_UNIX_ASM_DEFAULT): Use MASK_UNIX_ASM.
8403         * config/pdp11/pdp11.c (pdp11_handle_option): New function.
8404         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
8405         * config/pdp11/pdp11.opt: New file.
8406
8407 2005-04-03  Roger Sayle  <roger@eyesopen.com>
8408             Alexandre Oliva  <aoliva@redhat.com>
8409
8410         PR c++/19199
8411         * fold-const.c (non_lvalue): Split tests into...
8412         (maybe_lvalue_p): New function.
8413         (fold_cond_expr_with_comparison): Preserve lvalue-ness for the
8414         C++ front-end prior to lowering into gimple form.
8415
8416 2005-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8417
8418         * builtins.def (BUILT_IN_STPNCPY, BUILT_IN_STRCASECMP,
8419         BUILT_IN_STRNCASECMP): New.
8420         * doc/extend.texi: Document stpncpy, strcasecmp, strncasecmp
8421         and strndup.
8422
8423 2005-04-03  Richard Earnshaw  <richard.earnshaw@arm.com>
8424
8425         PR target/14812
8426         * arm.md (addsi3_compare0_for_combiner): Delete.
8427         (addsi3_compare0_scratch_for_combiner): Delete.
8428         (cmpsi_neg_shiftsi): Delete.
8429         (compare_negsi_si): New pattern.
8430         (cmpsi_negshiftsi_si): New pattern.
8431         (negated_cbranchsi4): Restrict to equality_operator.
8432
8433         * arm.md (movhi_insn_arch4): delete trailing white space from assembler
8434         template.
8435
8436 2005-04-03  Kazu Hirata  <kazu@cs.umass.edu>
8437
8438         * cfghooks.c, cfgrtl.c, modulo-sched.c, config/i386/winnt.c:
8439         Fix comment typos.
8440
8441         * doc/install.texi: Fix a typo.
8442
8443 2005-04-03  Steven Bosscher  <stevenb@suse.de>
8444
8445         PR middle-end/20648
8446         * bb-reorder.c (duplicate_computed_gotos): Do not unfactor
8447         a computed goto if the edge to the computed goto block has
8448         incoming abnormal edges.  Clarify how the function works.
8449
8450 2005-04-03  Nathan Sidwell  <nathan@codesourcery.com>
8451
8452         * params.c (set_param_value): Use gcc_assert & gcc_unreachable.
8453         * passes.c (open_dump_file, rest_of_handle_final): Likewise.
8454         * postreload-gcse.c (expr_equiv_p, oprs_unchanged_p,
8455         hash_scan_set, reg_set_between_after_reload_p,
8456         reg_used_between_after_reload_p, get_avail_load_store_reg,
8457         eliminate_partially_redundant_load): Likewise.
8458         * postreload.c (reload_cse_simplify_set,
8459         reload_combine_note_use): Likewise.
8460         * predict.c (predict_insn, expected_value_to_br_prob,
8461         propagate_freq, expensive_function_p): Likewise.
8462         * print-rtl.c (print_rtx): Likewise.
8463         * profile.c (instrument_edges, instrument_values,
8464         compute_branch_probabilities, branch_prob, union_groups,
8465         tree_register_profile_hooks, rtl_register_profile_hooks): Likewise.
8466         * protoize.c (in_system_include_dir, file_could_be_converted,
8467         file_normally_convertible, gen_aux_info_file, seek_to_line,
8468         do_cleaning): Likewise.
8469         * tree-ssa-alias.c (collect_points_to_info_r): Likewise.
8470         * tree-ssa-ccp.c (execute_fold_all_builtins): Likewise.
8471         * tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise.
8472
8473 2005-04-03 Mostafa Hagog <mustafa@il.ibm.com>
8474
8475         * cfg.c (clear_bb_flags): Don't clear BB_DISABLE_SCHEDULE.
8476         * modulo-sched.c (undo_replace_buff_elem): New structure.
8477         (kernel_number_of_cycles, ps_unschedule_node,
8478         undo_generate_reg_moves,free_undo_replace_buff,
8479         undo_permute_partial_schedule,  loop_single_full_bb_p,
8480         SIMPLE_SMS_LOOP_P, loop_canon_p, canon_loop,
8481         build_loops_structure, get_sched_window): New.
8482         (generate_reg_moves): Return undo_replace_buff_elem and other
8483         fixes.
8484         (generate_prolog_epilog): Remove old loop versioning.
8485         (sms_schedule): Use loop information and loop_version.
8486         (sms_schedule_by_order): Split part of it to get_sched_window.
8487         * passes.c (rest_of_handle_sms): call cfg_layout_initialize
8488         cfg_layout_finalize and free_dominance_info before/after SMS.
8489
8490 2005-04-03 Mostafa Hagog <mustafa@il.ibm.com>
8491
8492         * cfghooks.c (lv_flush_pending_stmts,
8493         cfg_hook_duplicate_loop_to_header_edge, extract_cond_bb_edges,
8494         lv_adjust_loop_header_phi, lv_add_condition_to_bb): New.
8495         * cfghooks.h (cfg_hook_duplicate_loop_to_header_edge,
8496         lv_add_condition_to_bb,
8497         lv_adjust_loop_header_phi, extract_cond_bb_edges,
8498         flush_pending_stmts): New in cfg_hooks structure.
8499         (cfg_hook_duplicate_loop_to_header_edge, lv_flush_pending_stmts,
8500         extract_cond_bb_edges, lv_adjust_loop_header_phi,
8501         lv_add_condition_to_bb): New declarations.
8502         * cfgloop.h (duplicate_loop_to_header_edge): Change return type to
8503         bool.
8504         (loop_version): Declare.
8505         * cfgloopmanip.c (cfghooks.h): Include.
8506         (duplicate_loop_to_header_edge): Change return type to bool.
8507         (loop_version, lv_adjust_loop_entry_edge): Move here.
8508         * cfgrtl.c (cfgloop.h): Include.
8509         (rtl_verify_flow_info_1): Fix.
8510         (rtl_lv_add_condition_to_bb, rtl_extract_cond_bb_edges): New.
8511         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Add hooks to
8512         initialization.
8513         * tree-cfg.c (tree_lv_adjust_loop_header_phi,
8514         tree_lv_add_condition_to_bb): New.
8515         (tree_cfg_hooks): Add new hooks to initialization.
8516         * tree-ssa-loop-manip.c (lv_adjust_loop_header_phi,
8517         lv_adjust_loop_entry_edge, tree_ssa_loop_version): Remove.
8518
8519 2005-04-03  Kazu Hirata  <kazu@cs.umass.edu>
8520
8521         * config/stormy16/stormy16.h (PREDICATE_CODES): Add SUBREG to
8522         xstormy16_below100_or_register,
8523         xstormy16_splittable_below100_or_register, and
8524         nonimmediate_nonstack_operand.
8525
8526         * config/stormy16/stormy16-protos.h: Remove the prototypes for
8527         xstormy16_ineqsi_operator, equality_operator,
8528         inequality_operator, shift_operator,
8529         xstormy16_below100_operand, xstormy16_below100_or_register,
8530         xstormy16_splittable_below100_or_register,
8531         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand.
8532         * config/stormy16/stormy16.c (xstormy16_ineqsi_operator,
8533         equality_operator, inequality_operator,
8534         xstormy16_below100_operand, xstormy16_below100_or_register,
8535         xstormy16_splittable_below100_or_register,
8536         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand,
8537         nonimmediate_nonstack_operand, shift_operator): Move to
8538         predicates.md.
8539         * config/stormy16/stormy16.h (PREDICATE_CODES): Remove.
8540         * config/stormy16/stormy16.md: Include predicates.md.
8541         * config/stormy16/predicates.md: New.
8542
8543 2005-04-02  Kazu Hirata  <kazu@cs.umass.edu>
8544
8545         * config/iq2000/iq2000.c (uns_arith_operand, arith_operand,
8546         small_int, large_int, reg_or_0_operand, simple_memory_operand,
8547         equality_op, cmp_op, pc_or_label_operand, call_insn_operand,
8548         move_operand, power_of_2_operand): Move to predicates.md.
8549         * config/iq2000/iq2000.h (SPECIAL_MODE_PREDICATES,
8550         PREDICATE_CODE): Remove.
8551         * config/iq2000/iq2000.md: Include predicates.md.
8552         * config/iq2000/predicates.md: New.
8553
8554 2005-04-02  Richard Sandiford  <rsandifo@redhat.com>
8555
8556         * config/m68hc11/m68hc11.h (target_flags, MASK_SHORT)
8557         (MASK_AUTO_INC_DEC, MASK_M6811, MASK_M6812, MASK_M68S12)
8558         (MASK_NO_DIRECT_MODE, MASK_MIN_MAX, MASK_LONG_CALLS)
8559         (TARGET_SHORT, TARGET_M6811, TARGET_M6812, TARGET_M68S12)
8560         (TARGET_AUTO_INC_DEC, TARGET_MIN_MAX, TARGET_NO_DIRECT_MODE)
8561         (TARGET_LONG_CALLS, TARGET_SWITCHES, TARGET_OPTIONS)
8562         (SUBTARGET_SWITCHES, SUBTARGET_OPTIONS, m68hc11_regparm_string)
8563         (m68hc11_reg_alloc_order, m68hc11_soft_reg_count)
8564         (TARGET_M68HC11): Delete.
8565         (TARGET_DEFAULT): Change the default setting from MASK_M6811 to 0.
8566         * config/m68hc11/m68hc12.h (TARGET_M68HC12): Delete.
8567         * config/m68hc11/m68hc11.c (m68hc11_regparm_string)
8568         (m68hc11_reg_alloc_order, m68hc11_soft_reg_count)
8569         (nb_soft_regs): Delete.
8570         (TARGET_DEFAULT_TARGET_FLAGS): Override default with TARGET_DEFAULT.
8571         (m68hc11_override_options): Remove the code that caters for MASK_M6811
8572         and MASK_M6812 being set simultaneously.  Change the code that sets
8573         the default m68hc11_soft_reg_count to use integers instead of strings.
8574         (m68hc11_conditional_register_usage, hard_regno_mode_ok): Use
8575         m68hc11_soft_reg_count (which now has an int type) as the number
8576         of soft registers.
8577         * config/m68hc11/m68hc11.opt: New file.
8578
8579 2005-04-02  Kazu Hirata  <kazu@cs.umass.edu>
8580
8581         * config/fr30/fr30.h (PREDICATE_CODES): Remove
8582         fp_displacement_operand, sp_displacement_operand.
8583
8584         * config/m68hc11/m68hc11-protos.h: Add a prototype for
8585         m68hcc_auto_inc_p.
8586         Remove the prototypes for tst_operand, cmp_operand,
8587         stack_register_operand, d_register_operand,
8588         hard_addr_reg_operand, splitable_operand,
8589         m68hc11_logical_operator, m68hc11_arith_operator,
8590         m68hc11_non_shift_operator, m68hc11_shift_operator,
8591         m68hc11_unary_operator, m68hc11_eq_compare_operator,
8592         non_push_operand, hard_reg_operand, and
8593         reg_or_some_mem_operand.
8594         * config/m68hc11/m68hc11.c (m68hcc_auto_inc_p): Make it
8595         extern.
8596         (tst_operand, cmp_operand, non_push_operand,
8597         splitable_operand, reg_or_some_mem_operand,
8598         stack_register_operand, d_register_operand,
8599         hard_addr_reg_operand, hard_reg_operand,
8600         m68hc11_eq_compare_operator, m68hc11_logical_operator,
8601         m68hc11_arith_operator, m68hc11_non_shift_operator,
8602         m68hc11_shift_operator, m68hc11_unary_operator): Move to
8603         predicates.md.
8604         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Remove.
8605         * config/m68hc11/m68hc11.md: Include predicates.md.
8606         * config/m68hc11/predicates.md: New.
8607
8608 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
8609
8610         PR debug/19345
8611         * dwarf2out.c (add_abstract_origin_attribute): Revert accidental
8612         change checked in along with 2005-03-03's patch for debug/20253.
8613         * tree-inline.c (remap_type): Remap TYPE_STUB_DECL.
8614         (remap_decl): Insert type decl in map earlier.
8615
8616 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
8617
8618         PR tree-optimization/20640
8619         * tree-ssa-dce.c (remove_dead_stmt): Don't redirect edge to
8620         post-dominator if it has phi nodes.
8621         (eliminate_unnecessary_stmts): Remove dead phis in all blocks
8622         before dead statements.
8623
8624 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
8625
8626         PR middle-end/20491
8627         * final.c (alter_subreg): Don't call subreg_regno for a non-REG.
8628
8629 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
8630
8631         PR rtl-optimization/20290
8632         * loop.c (for_each_insn_in_loop): Don't assume the loop body runs
8633         in every iteration if the entry point is the exit test.
8634
8635 2005-04-02  Hans-Peter Nilsson  <hp@axis.com>
8636
8637         * config/cris/cris.md (attribute "length"): Define.
8638
8639 2005-04-02  Geoffrey Keating  <geoffk@apple.com>
8640
8641         * config/rs6000/predicates.md (indexed_or_indirect_operand): New.
8642         (word_offset_memref_operand): New.
8643         * config/rs6000/rs6000-protos.h (word_offset_memref_operand): Delete.
8644         (indexed_or_indirect_operand): Delete.
8645         * config/rs6000/rs6000.c (word_offset_memref_operand): Delete.
8646         (indexed_or_indirect_operand): Delete.
8647
8648         * config/rs6000/t-darwin8: Comment out ppc64 multilib.
8649
8650         PR 20650
8651         * config/rs6000/rs6000.md (fix_truncdfsi2): Make destination
8652         a register.
8653
8654         * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Add -pipe.
8655         * config/t-darwin (TARGET_LIBGCC2_CFLAGS): Likewise.
8656
8657 2005-04-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
8658
8659         * gcc/config/vax/vax.md: Spellcheck, fix whitespace.
8660
8661 2005-04-01  Ian Lance Taylor  <ian@airs.com>
8662
8663         * gcc.c: Don't include <sys/resource.h> or declare getrusage.
8664         (rus, prus): Remove static variables.
8665         (execute): Use pex_run/pex_get_status rather than pexecute/pwait.
8666         (process_command): Permit report_times and use_pipes together.
8667
8668 2005-04-01  Joseph S. Myers  <joseph@codesourcery.com>
8669
8670         * c-decl.c (validate_proto_after_old_defn): Look at
8671         TYPE_MAIN_VARIANT of argument types.
8672
8673 2005-04-01  Paul Brook  <paul@codesourcery.com>
8674
8675         * config/arm/arm.c (thumb_call_via_label): Include space for SP.
8676         (arm_output_function_epilogue): Allow call_via_SP.
8677         (thumb_call_via_reg, arm_file_end): Ditto.
8678         * config/arm/arm.h (struct machine_function): Include space for SP.
8679         (thumb_call_via_label): Update declaration.
8680
8681 2005-04-01  Ian Lance Taylor  <ian@airs.com>
8682
8683         * final.c (final_scan_insn): Revert part of 2005-03-30 patch: when
8684         doing a peephole optimization, once again put any notes in the
8685         proper position.
8686
8687 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
8688
8689         * bb-reorder.c, fold-const.c, varasm.c: Fix comment typos.
8690
8691 2005-04-01  Nathan Sidwell  <nathan@codesourcery.com>
8692
8693         * local-alloc.c (update_equiv_regs): Use gcc_assert, gcc_unreachable.
8694         (block_alloc, find_free_reg): Likewise.
8695         * loop-doloop.c (doloop_modify): Likewise.
8696         * loop-invariant.c (record_use): Likewise.
8697         * loop-iv.c (get_biv_step_1, get_biv_step, iv_analyze,
8698         get_iv_value, canon_condition, eliminate_implied_condition,
8699         eliminate_implied_condition, simplify_using_initial_values,
8700         shorten_into_mode, canonicalize_iv_subregs,
8701         iv_number_of_iterations): Likewise.
8702         * loop-unroll.c (expand_var_during_unrolling): Likewise.
8703         * loop-unswitch.c (compare_and_jump_seq, unswitch_single_loop,
8704         unswitch_loop): Likewise.
8705         * loop.c (INSN_LUID, loop_optimize, rtx_equal_for_loop_p,
8706         move_movables, replace_call_address, find_and_verify_loops,
8707         rtx_equal_for_prefetch_p, fold_rtx_mult_add, loop_iterations,
8708         record_giv, final_giv_value, general_induction_var,
8709         simplify_giv_expr, extension_within_bounds_p, try_copy_prop,
8710         loop_giv_dump): Likewise.
8711
8712         * gcov-io.h (GCOV_CHECK, GCOV_CHECK_READING,
8713         GCOV_CHECK_WRITING): Remove.
8714         (gcov_position, gcov_rewrite): Use gcc_assert.
8715         * gcov-io.c (gcov_open, gcov_write_words, gcov_write_length,
8716         gcov_read_words, gcov_sync, gcov_seek): Use gcc_assert.
8717         * libgcov.c (__gcov_merge_single, __gcov_merge_delta): Use
8718         gcc_assert.
8719
8720 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
8721
8722         * tree-inline.c: Fix a typo.
8723
8724 2005-04-01  Nathan Sidwell  <nathan@codesourcery.com>
8725
8726         * configure.ac (enable-checking): Explicitly set all variables for
8727         collective switch values.  Alphabetize variables. Rename
8728         ac_checking_valgrind to ac_valgrind_checking.  Allow 'none' as
8729         synonym for 'no'.
8730         * doc/install.texi (enable-checking): Update documentation.
8731         * configure: Rebuilt.
8732
8733 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
8734
8735         * tree-inline.c (copy_body_r): Use CONSTANT_CLASS_P where
8736         possible.
8737
8738 2005-04-01  Richard Earnshaw  <richard.earnshaw@arm.com>
8739
8740         * arm.c (adjacent_mem_locations): Reject volatile memory refs.
8741         Also reject cases where this pattern will cause load delay stalls
8742         unless optimizing for size and it will produce a shorter sequence.
8743         * arm.md (arith_adjacent_mem): Make better use of ldm addressing
8744         variants to avoid pre-adjusting the base when possible.
8745
8746 2005-04-01  Richard Earnshaw  <richard.earnshaw@arm.com>
8747
8748         * arm.md (minmax_arithsi): Reject all eliminable registers, not just
8749         the frame and argument pointers.
8750         (strqi_preinc, strqi_predec, loadqi_preinc, loadqi_predec): Likewise.
8751         (loadqisi_preinc, loadqisi_predec, strsi_preinc): Likewise.
8752         (strsi_predec, loadsi_preinc, loadsi_predec): Likewise.
8753         (strqi_shiftpreinc, strqi_shiftpredec, loadqi_shiftpreinc): Likewise.
8754         (loadqi_shiftpredec, strsi_shiftpreinc, strsi_shiftpredec): Likewise.
8755         (loadsi_shiftpreinc, loadsi_shiftpredec): Likewise.
8756
8757 2005-04-01  Danny Smith  <dannysmith@users.sourceforge.net>
8758
8759         * config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Define,
8760         with entry for selectany attribute.
8761         * config/i386/i386-protos.h (ix86_handle_selectany_attribute):
8762         Declare.
8763         * config/i386/winnt.c (ix86_handle_selectany_attribute): Define.
8764         (i386_pe_asm_named_section): Handle sections generated by
8765         selectany attribute.
8766         * doc/extend.texi (selectany): Document attribute.
8767
8768 2005-04-01  Paolo Bonzini  <bonzini@gnu.org>
8769             Jan Hubicka  <jh@suse.cz>
8770
8771         * config/i386/i386.c (ix86_decompose_address): Look inside SUBREGs
8772         to fix addresses involving EBP and ESP.
8773         (aligned_operand, legitimate_address_p, ix86_address_cost): Be prepared
8774         for SUBREGed registers.
8775         (legitimate_address_p): Accept SUBREGed registers.
8776
8777 2005-04-01  Jakub Jelinek  <jakub@redhat.com>
8778
8779         PR c++/19406
8780         * dwarf2out.c (gen_type_die_for_member): Handle FIELD_DECL.
8781         (dwarf2out_imported_module_or_decl): Use gen_type_die_for_member
8782         for FIELD_DECLs.
8783
8784 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
8785
8786         * doc/contrib.texi, doc/invoke.texi, doc/tm.texi: Fix typos.
8787
8788 2005-04-01  James E Wilson  <wilson@specifixinc.com>
8789
8790         PR c++/20505
8791         * dwarf2out.c (rtl_for_decl_init): New function.
8792         (rtl_for_decl_location): Extracted from here.
8793         (tree_add_const_value_attribute): Call rtl_for_decl_init and
8794         add_const_value_attribute.  Delete initializer_constant_valid_p call.
8795
8796 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
8797
8798         * cgraphunit.c, dbxout.c, flow.c, gcse.c, gimplify.c,
8799         lambda-code.c, loop.c, machmode.def, mips-tfile.c,
8800         modulo-sched.c, passes.c, postreload-gcse.c, tree-eh.c,
8801         tree-ssa-ccp.c, varasm.c, config/frv/frv.c, config/frv/frv.h,
8802         config/frv/frv.md, config/i386/i386.c, config/i386/i386.h,
8803         config/i386/i386.md, config/rs6000/predicates.md,
8804         config/rs6000/rs6000.c, config/s390/fixdfdi.h,
8805         config/s390/s390.c, config/stormy16/stormy16.c,
8806         config/stormy16/stormy16.md, config/vax/vax.md: Fix comment
8807         typos.
8808
8809 2005-04-01  Joseph S. Myers  <joseph@codesourcery.com>
8810
8811         PR c/17855
8812         * gimplify.c (gimplify_expr): Create a temporary for lvalue
8813         COND_EXPR and CALL_EXPR.
8814
8815 2005-03-31  Vladimir Makarov  <vmakarov@redhat.com>
8816
8817         PR target/20632
8818         * genautomata.c (first_cycle_unit_presence): Check all alternative
8819         states for unit presence.
8820
8821         * doc/md.texi: Remove remark about impossibility to query unit
8822         presence in non nondeterministic automaton state.
8823
8824         * config/ia64/ia64.c (get_template): Change order of unit querying.
8825
8826 2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
8827
8828         * tree-ssa-dom.c (cprop_into_successor_phis): Remove an
8829         obsolete comment.
8830
8831 2005-03-31  Zdenek Dvorak  <dvorakz@suse.cz>
8832
8833         * cfgloopanal.c (mark_loop_exit_edges): Clean EDGE_LOOP_EXIT
8834         flag for edges outside any loops.
8835
8836 2005-03-31  Janis Johnson  <janis187@us.ibm.com>
8837
8838         * doc/sourcebuild.texi (Test Directives): Describe cleanup-* procs.
8839
8840 2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
8841
8842         * tree-ssa-alias.c: Follow spelling conventions.
8843         * doc/tree-ssa.texi: Fix a typo.
8844
8845 2005-03-31  J"orn Rennecke <joern.rennecke@st.com>
8846
8847         * postreload-gcse.c: Include target.h.
8848         (gcse_after_reload_main): Return early if we cannot modify jumps.
8849         * Makefile.in (postreload-gcse.o): Depend on $(TARGET_H).
8850
8851 2005-03-31  David Edelsohn  <edelsohn@gnu.org>
8852
8853         * tree-ssa-loop-im.c (stmt_cost): Add RDIV_EXPR to list of
8854         expensive operations.
8855
8856 2005-03-31  Ian Lance Taylor  <ian@airs.com>
8857
8858         * collect2.c (lderrout): New variable.
8859         (collect_exit): Dump ldout to stdout.  Dump and unlink lderrout,
8860         if it is set, to stderr.
8861         (handler): Unlink lderrout if it is set.
8862         (dump_file): Add "to" parameter.  Change all callers.
8863         (main): Initialize lderrout.
8864         (collect_execute): Add errname parameter.  Change all callers.
8865         Rename redir parameter to outname.  Never pass
8866         PEX_STDERR_TO_STDOUT to pex_run.
8867         * collect2.h (collect_execute, dump_file): Update declarations.
8868         * tlink.c (tlink_execute): Add errname parameter.  Change all
8869         callers.
8870         (do_tlink): Check lderrout as well as ldout.
8871
8872 2005-03-31  Caroline Tice  <ctice@apple.com>
8873
8874         * Makefile.in (varasm.o): Add basic-block.h to list of requirements.
8875         (bb-reorder.o): Add errors.h to list of requirements.
8876         (STAGEFEEDBACK_FLAGS_TO_PASS): Add -freorder-blocks-and-partition to
8877         profiledbootstrap flags.
8878         * bb-reorder.c (errors.h): Add new include.
8879         (struct bbro_basic_block_data_def): Add new field, in_trace.
8880         (add_unlikely_executed_notes):  Remove function.
8881         (mark_bb_for_unlikely_executed_section): Remove function.
8882         (insert_section_boundary_note): New function.
8883         (verify_hot_cold_block_grouping): New function.
8884         (push_to_next_round_p): Remove variables and tests that push all
8885         cold blocks to last round.
8886         (find_traces): Remove code that added extra round of trace finding
8887         when doing partitioning.
8888         (find_traces_1_round) :  Remove variable last_round;  add code to
8889         update new struct field, in_trace; correct trace_length where it was
8890         incorrect before (after call to copy_bb); change code that pushed all
8891         cold blocks to last round. Instead verify that all blocks going into
8892         a trace belong in the same partition.
8893         (connect_traces): Modify to connect the traces in two passes, if the
8894         function contains both hot and cold blocks.  The first pass connects
8895         all the traces for blocks in the partition that the first block in
8896         the function belongs to; the second pass connnects all the traces
8897         containing blocks that belong in the other partition.
8898         (find_rarely_executed_basic_blocks_and_crossing_edges):  Remove
8899         code that automatically put the first block in a function into the
8900         hot partition if the function had any hot blocks.
8901         (fix_crossing_unconditional_branches): Check number of succ edges
8902         before attempting to get one.
8903         (fix_edges_for_rarely_executed_code):  Update comment describing
8904         function.
8905         (reorder_basic_blocks):  Add code to initialize new field (in_trace);
8906         remove call to add_unlikely_executed_notes; add call to
8907         verify_hot_cold_block_grouping.
8908         (duplicate_computed_gotos): Don't change computed goto if it's a
8909         crossing edge.
8910         (partition_hot_cold_basic_blocks):  Update function comment.
8911         * cfgcleanup.c (try_simplify_condjump): Remove redundacy from
8912         condition.
8913         (try_forward_edges): Likewise.
8914         (merge_blocks_move_predecessor_nojumps): Likewise.
8915         (merge_blocks_move_successor_nojumps): Likewise.
8916         (merge_blocks_move): Likewise.
8917         (try_crossjump_bb): Likewise.
8918         * cfglayout.c (update_unlikely_executed_notes): Remove function.
8919         (fixup_reorder_chain): Remove code for adding UNLIKELY_EXECUTED_CODE
8920         notes to cold bb's; remove call to update_unlikely_executed_notes.
8921         (duplicate_insn_chain):  change NOTE_INSN_UNLIKELY_EXECUTED_CODE to
8922         NOTE_INSN_SWITCH_TEXT_SECTIONS.
8923         * cfglayout.h (scan_ahead_for_unlikely_executed_note): Remove
8924         function declaration.
8925         * cfgrtl.c (can_delete_note_p): Remove UNLIKELY_EXECUTED_CODE note
8926         from consideration.
8927         (rtl_can_merge_blocks): Remove redundancy from condition.
8928         (try_redirect_by_replacing_jump): Likewise.
8929         (force_nonfallthru_and_redirect): Remove code for adding
8930         UNLIKELY_EXECUTED_CODE notes to cold bb's.
8931         (commit_one_edge_insertion): Likewise.
8932         (cfg_layout_can_merge_blocks_p): Remove redundancy from condition.
8933         * dbxout.c (FORCE_TEXT): Replace function_section with
8934         current_function_section.
8935         (struct dbx_debug_h): Add do_nothing function for new debug_hooks
8936         function, switch_text_section.
8937         (struct xcoff_debug): Likewise.
8938         (dbxout_function_end): Add code to put out label diffs for both
8939         hot and cold sections.
8940         * debug.c (struct do_nothing_debug_hooks): Add do_nothing function
8941         for new debug_hooks funciton, switch_text_section..
8942         * debug.h (struct gcc_debug_hooks):  Add new function to debug_hooks,
8943         switch_text_section.
8944         * dwarf2out.c (struct dw_fde_struct):  Add five new fields:
8945         dw_fde_hot_section_label, dw_fde_hot_section_end_label,
8946         dw_fde_unlikely_section_label, dw_fde_unlikely_section_end_label and
8947         dw_fde_switched_sections.
8948         (output_call_frame_info):  Add test to see if function switches text
8949         sections in the middle; if so, use appropriate extra hot and cold
8950         section labels to compute size deltas for the hot and cold sections.
8951         (dwarf2out_begin_prologue): Add code to initialize new fields in
8952         dw_fde_struct.
8953         (dwarf2out_switch_text_section): New function (invoked through
8954         debug_hook); updates new fields in dw_fde_struct appropriately and
8955         increments separate_line_info_table_in_use.
8956         (dwarf2_debug_hooks): Initialize switch_text_section function to be
8957         dwarf2out_switch_text_section.
8958         (struct var_loc_node): Add new field, section_label.
8959         (output_aranges): Add code to check whether in hot or cold section and
8960         use the appropriate label in calculating deltas.
8961         (output_ranges): Likewise.
8962         (output_line_info): Add code to check which section we're in and
8963         use appropriate hot/cold label.
8964         (add_location_or_constant_value_attribute): Likewise.
8965         (gen_subprogam_die): Modify arange attributes to use correct labels.
8966         (dwarf2out_begin_block): Change call to function_section into call to
8967         current_function_section.
8968         (dwarf2out_end_block): Likewise.
8969         (dwarf2out_source_line): Likewise.
8970         (dwarf2out_var_location): Add code to check whether in hot or cold
8971         section and use the appropriate label.
8972         * except.c (output_function_exception_table): Change call to
8973         function_section into call to current_function_section.
8974         * final.c (profile_function): Likewise.
8975         (scan_ahead_for_unlikely_executed_note): Remove function.
8976         (final_scan_insn):  Remove calls to
8977         scan_ahead_for_unlikely_executed_note, and related code for switching
8978         to cold section, except for the single time
8979         NOTE_INSN_SWITCH_TEXT_SECTIONS may be encountered;  add calls to
8980         debug_hooks->switch_text_sections; replace appropriate calls to
8981         function_section with calls to current_function_section.
8982         * ifcvt.c (find_if_case_1): Remove redundancy from condition, add
8983         test_bb to condition.
8984         (find_if_case_2): Likewise.
8985         * insn-notes.def: Change NOTE_INSN_UNLIKELY_EXECUTED_CODE to
8986         NOTE_INSN_SWITCH_TEXT_SECTIONS.  Update comment appropriately.
8987         * opts.c (decode_options): Change warning about hot/cold partitioning
8988         with exceptionss to inform (so as not to cause bootstrap failures);
8989         remove warning about partitioning with DWARF debug info.
8990         * output.h (current_function_section): Add new function decl.
8991         (insert_section_boundary_note): Likewise.
8992         (enum in_section): Move this declaration here from varasm.c.
8993         (unlikely_section_label): Likewise.
8994         (unlikely_text_section_name): Likewise.
8995         (last_text_section_name): New global variable.
8996         (last_text_section): Likewise.
8997         (hot_section_label): Likewise.
8998         (hot_section_end_label): Likewise.
8999         (cold_section_end_label): Likewise.
9000         * passes.c (rest_of_handle_final): Free unlikely_text_section_name.
9001         * print-rtl.c (print_rtx): Change NOTE_INSN_UNLIKELY_EXECUTED_CODE
9002         to NOTE_INSN_SWITCH_TEXT_SECTIONS.
9003         * reg-stack.c (emit_swap_insn): Remove UNLIKELY_EXECUTED_CODE note
9004         insn from consideration.
9005         * sdbout.c (sdb_debug_hooks): Add do_nothing for new function,
9006         switch_text_section.
9007         * varasm.c (basic-block.h): Add new include.
9008         (unlikely_section_label_printed): Remove global variable.
9009         (unlikely_section_label): Make global variable not be static any more.
9010         (unlikely_text_section_name): Likewise.
9011         (hot_section_end_label): New global variable (not static)
9012         (first_function_block_is_cold): Likewise.
9013         (hot_section_label): Likewise.
9014         (cold_section_end_label): Likewise..
9015         (last_text_section): New global variable, not static.
9016         (last_text_section_name): New global variable, not static.
9017         (initialize_cold_section_name): New function.
9018         (enum in_section): Move declaration to output.h.
9019         (text_section): Update last_text_section.
9020         (unlikely_text_section): Replace code to determine cold section name
9021         with call to initialize_cold_section_name; Add code to update
9022         last_text_section; remove code for printing out label.
9023         (named_section_real): Add code to update last_text_section and
9024         last_text_section_name as appropriate.
9025         (function_section): Change test for 'unlikely' to depend on
9026         first_function_block_is_cold (moved old test to
9027         current_function_section).
9028         (current_function_section): New function.
9029         (assemble_start_function): Move code that frees
9030         unlikely_text_section_name; initialize hot_section_end_label;
9031         print hot and cold section labels at the start of the function;
9032         set first_function_block_is_cold, if appropriate; initialize l
9033         ast_text_section; add call to insert_section_boundary_note.
9034         (assemble_end_function):  Add code to write out hot and cold section
9035         end labels.
9036         *vmsdbgout.c (vmsdbg_debug_hooks): Add do_nothing for new function,
9037         switch_text_section.
9038         * config/darwin.c (machopic_select_section): Replace incorrect
9039         function in base_funs; update reloc for cold sections if necessary.
9040         * config/darwin.h (SECTION_FUNCTION):  Add code to update
9041         last_text_section if appropriate.
9042         (text_unlikely_section): Remove.
9043         * config/sparc/sparc.c (sparc_output_deferred_case_vectors): Likewise.
9044         * config/stormy16/stormy16.c (stormy_16_output_addr_vec): Likewise.
9045         * config/xtensa/xtensa.c (override_options): Turn off hot/cold
9046         partitioning for this architecture.
9047
9048 2005-03-31  Olivier Hainque  <hainque@adacore.com>
9049
9050         * dwarf2out.c (dwarf2out_frame_finish): Honor DWARF2_FRAME_INFO
9051         defined and non-zero.
9052
9053 2005-03-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
9054
9055         PR c++/18644
9056         * doc/invoke.texi (-Wsynth): Don't document, as it now is void of
9057         semantics.
9058
9059 2005-03-31  Alan Modra  <amodra@bigpond.net.au>
9060
9061         PR target/20611
9062         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Remove inline
9063         label operand.  Remove (use (unspec..)).  Don't emit a label on
9064         the offset word.
9065         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Don't
9066         generate inline label for load_toc_v4_PIC_1b.
9067         (rs6000_emit_load_toc_table): Likewise.
9068
9069 2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
9070
9071         * config.gcc: Obsolete i860-*-sysv4*, ip2k-*-elf,
9072         ns32k-*-netbsdelf*, and ns32k-*-netbsd*.
9073
9074 2005-03-29  Devang Patel  <dpatel@apple.com>
9075
9076         * tree-sra.c (decide_block_copy): Disable scalarization of
9077         sub-elements.
9078
9079 2005-03-30  Stuart Hastings  <stuart@apple.com>
9080             Dale Johannesen  <dalej@apple.com>
9081
9082         * Makefile.in (print-tree.o):  Depend on tree-iterator.h.
9083         * print-tree.c (print_node):  Add case STATEMENT_LIST.
9084
9085 2005-03-31  Alan Modra  <amodra@bigpond.net.au>
9086
9087         * config.gcc (cpu_is_64bit): Set for 64-bit powerpc cpus.
9088         (powerpc64-*-linux*): Use it.  Rearrange tm_file assignment.
9089         (powerpc-*-linux*): Build a biarch compiler when --enable-targets
9090         is given with "powerpc64*" or "all", or when --with-cpu chooses
9091         a 64-bit cpu.
9092
9093 2005-03-30  James E. Wilson  <wilson@specifixinc.com>
9094
9095         PR debug/20268
9096         * dwarf2out.c (add_high_low_attributes): New function, extracted from
9097         gen_lexical_block_die.
9098         (gen_lexical_block_die, gen_inlined_subroutine_die): Call it.
9099
9100 2005-03-31  Jan Hubicka  <jh@suse.cz>
9101
9102         2004-11-02  Jan Hubicka  <jh@suse.cz>
9103
9104         * cgraph.c (cgraph_varpool_node_name): New function.
9105         (dump_cgraph_varpool_node): New function.
9106         (dump_varpool): New function.
9107         * cgraphunit.c (cgraph_optimize): Dump varpool.
9108
9109         2004-10-16  Jan Hubicka  <jh@suse.cz>
9110
9111         * cgraph.c (decide_is_variable_needed): New function.
9112         (cgraph_varpool_finalize_decl): Use it.
9113         * cgraphunit.c (cgraph_optimize): Assemble_pending_decls when not doing
9114         unit-at-a-time.
9115         * final.c (output_addr_const): Do not call mark_referenced.
9116         * passes.c (rest_of_decl_compilation): ifdef out DECL_RTL_SET_P hack;
9117         always go via cgraph.
9118         * toplev.c (wrapup_global_declarations): Kill non-unit-at-a-time code.
9119         (check_global_declarations): Ifdef out code clearing DECL_RTL.
9120         * tree-optimize.c (execute_inline): Mark functions called.
9121         * i386.c (output_pic_addr_const): Do not call mark_decl_referenced.
9122
9123         2004-10-11  Jan Hubicka  <jh@suse.cz>
9124
9125         * cgraph.c (cgraph_varpool_first_unanalyzed_node): New global voriable
9126         (cgraph_varpool_last_needed_node): New static variable.
9127         (enqueue_needed_varpool_node): Break out from ...; add items to the
9128         end of queue; update first pointers.
9129         (cgraph_varpool_mark_needed_node): ... here.
9130         (cgraph_varpool_finalize_decl): Use enqueue_needed_varpool_node.
9131         (cgraph_varpool_assemble_pending_decls): Move to cgraphunit.c
9132         * cgraph.h (cgraph_varpool_node): Add analyzed field.
9133         (cgraph_varpool_first_unanalyzed_node): Declare.
9134         * cgraphunit.c: Include output.h.
9135         (cgraph_varpool_analyze_pending_decls): New function.
9136         (cgraph_varpool_assemble_pending_decls): Move from cgraph.c; bail out
9137         for errors, analyze pending decls.
9138         (cgraph_finalize_compilation_unit): Only analyze decls.
9139         (cgraph_optimize): Assemble the decls after expanding.
9140
9141 2005-03-30  Daniel Berlin  <dberlin@dberlin.org>
9142
9143         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Make sure
9144         subvars get marked properly in tags for grouping.
9145         (add_pointed_to_var): Mark only actual pointed to
9146         variables/subvars in addresses needed.
9147         (create_overlap_variables_for): Clear call clobbered on original
9148         variable.
9149         * tree-ssa-operands.c (get_asm_expr_operands): Don't let regular
9150         addresable vars with subvars into list.
9151         * tree-ssa.c (verify_ssa_name): Verify original is not used where
9152         subvar should be.
9153
9154 2005-03-30  Richard Henderson  <rth@redhat.com>
9155
9156         * cgraph.h (struct cgraph_node): Add alias.
9157         * varasm.c (assemble_alias): Set it.
9158         * cgraphunit.c (cgraph_assemble_pending_functions): Check it and
9159         avoid calling cgraph_expand_function.
9160
9161 2005-03-30  Tom Tromey  <tromey@redhat.com>
9162
9163         * tree.def (FILE_TYPE): Removed.
9164         * typeclass.h (enum type_class): Removed file_type_class.
9165         * dwarf2out.c (is_base_type): Updated.
9166         (gen_type_die): Likewise.
9167         * dbxout.c (dbxout_type): Updated.
9168         * builtins.c (type_to_class): Updated.
9169         * tree.c (type_contains_placeholder_1): Updated.
9170         * config/sparc/sparc.c (sparc_type_code): Updated.
9171         * config/ia64/ia64.c (hfa_element_mode): Updated.
9172         * expr.c (count_type_elements): Updated.
9173         * stor-layout.c (layout_type): Updated.
9174         * tree-inline.c (remap_type): Updated.
9175         * tree-pretty-print.c (dump_generic_node): Updated.
9176
9177 2005-03-30 Fariborz Jahanian <fjahanian@apple.com>
9178
9179         * builtins.c (expand_builtin_powi): Fix mode of
9180         2nd argument to match int.
9181         * libgcc2.h (__powisf2, __powidf2, __powixf2, __powitf2): Change
9182         2nd argument type to int.
9183         * libgcc2.c: Change prototype of __powi* functions to use
9184         int.
9185
9186 2005-03-30  Dale Johannesen  <dalej@apple.com>
9187
9188         PR middle-end/19225
9189         * calls.c (expand_call):  Flush pending deferrals before
9190         throwing call.
9191
9192 2005-03-30  Joseph S. Myers  <joseph@codesourcery.com>
9193
9194         PR c/772
9195         PR c/17913
9196         * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR,
9197         C_DECL_UNDEFINABLE_STMT_EXPR, struct c_label_list, struct
9198         c_label_context, label_context_stack): New.
9199         * c-decl.c (define_label): Check for jumps into statement
9200         expressions.  Add label to list of defined labels.
9201         (start_function): Push context on label_context_stack.
9202         (finish_function): Pop context from label_context_stack.
9203         * c-typeck.c (label_context_stack): New.
9204         (c_finish_goto_label): Check for jumps into statement
9205         expressions.  Add label to list of jumped to labels.
9206         (struct c_switch): Add blocked_stmt_expr.
9207         (c_start_case): Initialize it.
9208         (do_case): Check it.
9209         (c_finish_case): Verify !blocked_stmt_expr.
9210         (c_begin_stmt_expr):  Push context on label_context_stack.
9211         Increment blocked_stmt_expr.  Mark labels jumped to from outside
9212         as undefinable.
9213         (c_finish_stmt_expr): December blocked_stmt_expr.  Mark labels
9214         defined in the statement expression and no longer jumpable to.
9215         Mark labels jumped to from just outside the statement expression
9216         as again definable.  Pop context from label_context_stack.
9217         * doc/extend.texi (Statement Exprs): Update.
9218
9219 2005-03-30  Joseph S. Myers  <joseph@codesourcery.com>
9220
9221         PR c/20368
9222         * c-decl.c (start_function): Check for old_decl being
9223         error_mark_node.
9224
9225 2005-03-30  Ian Lance Taylor  <ian@airs.com>
9226
9227         * final.c (final): Remove prescan parameter.  Change all callers.
9228         (final_scan_insn): Remove prescan parameter.  Change all callers.
9229
9230 2005-03-30  Kazu Hirata  <kazu@cs.umass.edu>
9231
9232         * tree-vectorizer.c: Fix comment typos.
9233
9234 2005-03-30  Sebastian Pop  <pop@cri.ensmp.fr>
9235
9236         * tree-scalar-evolution.c (instantiate_parameters_1): Return
9237         as soon as a chrec_dont_know is detected.
9238
9239 2005-03-31  Danny Smith  <dannysmith@users.sourceforge.net>
9240
9241         Merge from csl-arm-branch.
9242         2004-02-12  Mark Mitchell  <mark@codesourcery.com>
9243
9244         * tlink.c (recompile_files): Do not assume that "rename" can
9245         overwrite an existing file.
9246
9247 2005-03-31  Paolo Bonzini  <bonzini@gnu.org>
9248
9249         * gcc/configure.ac (TL_AC_GNU_MAKE_GCC_LIB_PATH): Remove.
9250         * gcc/configure: Regenerate.
9251
9252 2005-03-30  Alan Modra  <amodra@bigpond.net.au>
9253
9254         * doc/install.texi: Update binutils requirement for powerpc*-linux.
9255
9256         * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Update comments.
9257
9258         * calls.c (struct arg_data): Update "partial" comment.
9259         (load_register_parameters): Update "nregs" comment.
9260
9261 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
9262
9263         * config/iq2000/iq2000.h (target_flags, MASK_GPOPT, MASK_EMBEDDED_DATA)
9264         (MASK_UNINIT_CONST_IN_RODATA, TARGET_EMBEDDED_DATA, TARGET_SWITCHES)
9265         (TARGET_DEFAULT, TARGET_CPU_DEFAULT, SUBTARGET_TARGET_OPTIONS)
9266         (TARGET_OPTIONS, iq2000_cpu_string, iq2000_arch_string): Delete.
9267         (TARGET_DEBUG_MODE, TARGET_DEBUG_A_MODE, TARGET_DEBUG_B_MODE)
9268         (TARGET_DEBUG_C_MODE, TARGET_DEBUG_D_MODE): Define to 0 rather
9269         than target_flags & 0.
9270         * config/iq2000/iq2000.c (iq2000_cpu_string, iq2000_arch_string)
9271         (iq2000_arch, iq2000_parse_cpu): Delete.
9272         (TARGET_HANDLE_OPTION): Override default.
9273         (iq2000_handle_option): New function.
9274         (override_options): Remove -march= and -mcpu= handling.
9275         * config/iq2000/iq2000.opt: New file.
9276
9277 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
9278
9279         * config/c4x/c4x-protos.h (c4x_rpts_cycles, c4x_cpu_version): Delete.
9280         * config/c4x/c4x.h (SMALL_MEMORY_FLAG, MPYI_FLAG, FAST_FIX_FLAG)
9281         (RPTS_FLAG, C3X_FLAG, TI_FLAG, PARANOID_FLAG, MEMPARM_FLAG, DEVEL_FLAG)
9282         (RPTB_FLAG, BK_FLAG, DB_FLAG, DEBUG_FLAG, HOIST_FLAG)
9283         (LOOP_UNSIGNED_FLAG, FORCE_FLAG, PRESERVE_FLOAT_FLAG)
9284         (PARALLEL_INSN_FLAG, PARALLEL_MPY_FLAG, ALIASES_FLAG, C30_FLAG)
9285         (C31_FLAG, C32_FLAG, C33_FLAG, C40_FLAG, C44_FLAG, TARGET_SWITCHES)
9286         (TARGET_DEFAULT, TARGET_SMALL, TARGET_MPYI, TARGET_FAST_FIX)
9287         (TARGET_RPTS, TARGET_TI, TARGET_PARANOID, TARGET_MEMPARM, TARGET_DEVEL)
9288         (TARGET_RPTB, TARGET_BK, TARGET_DB, TARGET_DEBUG, TARGET_HOIST)
9289         (TARGET_LOOP_UNSIGNED, TARGET_FORCE, TARGET_PRESERVE_FLOAT)
9290         (TARGET_PARALLEL, TARGET_PARALLEL_MPY, TARGET_ALIASES)
9291         (c4x_rpts_cycles_string, c4x_cpu_version_string)
9292         (TARGET_OPTIONS): Delete.
9293         (c4x_rpts_cycles, c4x_cpu_version): Declare.
9294         (TARGET_C3X, TARGET_C30, TARGET_C31, TARGET_C32, TARGET_C33)
9295         (TARGET_C40, TARGET_C44): Redefine in terms of c4x_cpu_version.
9296         * config/c4x/c4x.c (c4x_rpts_cycles_string): Delete.
9297         (c4x_cpu_version_string): Delete.
9298         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
9299         (c4x_handle_option): New function.  Map -m3x and -m4x options to the
9300         equivalent -mcpu= option.
9301         (c4x_override_options): Remove -mrpts= and -mcpu= handling from here.
9302         Deal with the extra conditions in the old TARGET_MPYI, TARGET_RPTB,
9303         TARGET_DB, TARGET_PARALLEL and TARGET_PARALLEL_MPY macros by setting
9304         or clearing the appropriate MASK_* bit.
9305         (c4x_file_start): Use c4x_cpu_version.
9306         * config/c4x/c4x.opt: New file.
9307
9308 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
9309
9310         * doc/options.texi: Document the new MaskExists flag.
9311         * opth-gen.awk: Don't output MASK and TARGET macros for Mask(...)
9312         if the option has the MaskExists flag.
9313
9314 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
9315
9316         * opt-functions.awk (flag_set_p, test_flag): New functions.
9317         (switch_flags): Use them.
9318         * opth-gen.awk: Use flag_set_p to check for flags.
9319         * optc-gen.awk: Likewise.  Use opt_args to check for Init(...) flags.
9320
9321 2005-03-30  Ian Lance Taylor  <ian@airs.com>
9322
9323         * config.host (i[34567]86-*-mingw32*): Don't set
9324         host_can_use_collect2 to no.
9325
9326 2005-03-30  Alan Modra  <amodra@bigpond.net.au>
9327
9328         PR target/20203
9329         * builtins.c (get_memory_rtx): Expand address exp using EXPAND_NORMAL.
9330         Remove convert_memory_address call duplicating that in memory_address.
9331
9332 2005-03-29  Richard Henderson  <rth@redhat.com>
9333
9334         PR c/20519
9335         * c-decl.c (c_finish_incomplete_decl): Update complete_array_type call.
9336         (build_compound_literal): Likewise.  Propagate decl type into the
9337         initializer.
9338         (finish_decl): Likewise.  Use new return value from complete_array_type
9339         for zero sized arrays.
9340         (complete_array_type): Move ...
9341         * c-common.c (complete_array_type): ... here.  Change first argument
9342         to pointer-to-type-node.  Consistently use sizetype for the index
9343         except for zero sized arrays.  Detect zero sized arrays for pedantic
9344         mode diagnostics.  Create a new type node instead of modifying the
9345         old node in place.
9346         * c-tree.h (complete_array_type): Move decl ...
9347         * c-common.h (complete_array_type): ... here.
9348
9349 2005-03-29  Richard Henderson  <rth@redhat.com>
9350
9351         PR tree-opt/19108
9352         * tree-sra.c (generate_element_init_1): Handle RANGE_EXPR.
9353
9354 2005-03-29  Kazu Hirata  <kazu@cs.umass.edu>
9355
9356         * builtin-types.def, c-convert.c, c-format.c, ddg.c, debug.c,
9357         debug.h, et-forest.c, et-forest.h, gcov.c, rtl-profile.c,
9358         rtlhooks-def.h, rtlhooks.c, sdbout.c, tree-inline.h,
9359         tree-profile.c, tsystem.h, value-prof.h: Update copyright.
9360
9361 2005-03-29  Eric Christopher  <echristo@redhat.com>
9362
9363         * config/mips/mips.c (mips_gimplify_va_arg_expr): Update for
9364         truthvalue conversion removal.
9365
9366 2005-03-29  Ian Lance Taylor  <ian@airs.com>
9367
9368         PR bootstrap/14316
9369         * collect2.c: Never include <vfork.h>.
9370         (VFORK_STRING, vfork): Don't define.
9371         (pid): Remove global variable.
9372         (handler): Call raise instead of kill (getpid(), ...).
9373         (collect_wait): Add pex parameter.  Change all callers.  Use
9374         pex_get_status rather than pwait.
9375         (do_wait): Add pex parameter.  Change all callers.
9376         (collect_execute): Return struct pex_obj * rather than void.  Use
9377         pex routines rather than pexecute.
9378         (fork_execute): Get pex_obj from collect_execute, and pass it to
9379         do_wait.
9380         (scan_prog_file): Use pex routines rather than pipe/vfork/exec.
9381         Only declare quit_handler if SIGQUIT is defined.
9382         (scan_libraries): Likewise.
9383         * collect2.h (collect_execute): Update declaration.
9384         (collect_wait): Update declaration.
9385         * tlink.c (tlink_execute): Get pex_obj from collect_execute, and
9386         pass it to collect_wait.
9387
9388 2005-03-29  Joseph S. Myers  <joseph@codesourcery.com>
9389
9390         PR c/20672
9391         * c-parser.c (c_parser_compound_statement_nostart): Give error
9392         message for EOF instead of just setting parser->error.
9393
9394 2005-03-29  Dorit Naishlos  <dorit@il.ibm.com>
9395
9396         * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard): Removed.
9397         (slpeel_update_phi_nodes_for_guard1): New function.
9398         (slpeel_update_phi_nodes_for_guard2): New function.
9399         (slpeel_tree_peel_loop_to_edge): Call above new functions instead
9400         of slpeel_update_phi_nodes_for_guard.
9401         (vectorize_loops): Remove call to loop_closed_rewrite.
9402         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Remove
9403         assertion.
9404
9405 2005-03-29  Richard Sandiford  <rsandifo@redhat.com>
9406
9407         * config/m32r/little.h (TARGET_ENDIAN_DEFAULT): Delete.
9408         (TARGET_LITTLE_ENDIAN): New macro.
9409         * config/m32r/m32r.h (SUBTARGET_SWITCHES, target_flags)
9410         (TARGET_RELAX_MASK, TARGET_DEBUG_MASK, TARGET_DEBUG)
9411         (TARGET_ALIGN_LOOPS_MASK, TARGET_ALIGN_LOOPS)
9412         (TARGET_LOW_ISSUE_RATE_MASK, TARGET_LOW_ISSUE_RATE)
9413         (TARGET_BRANCH_COST_MASK, TARGET_BRANCH_COST, TARGET_M32RX_MASK)
9414         (TARGET_M32RX, TARGET_M32R2_MASK, TARGET_M32R2, LITTLE_ENDIAN_BIT)
9415         (TARGET_ENDIAN_DEFAULT, SUBTARGET_SWITCHES, TARGET_DEFAULT)
9416         (TARGET_SWITCHES, m32r_model_string, m32r_sdata_string)
9417         (m32r_cache_flush_trap_string, SUBTARGET_OPTIONS)
9418         (TARGET_OPTIONS): Delete.
9419         (M32R_MODEL_DEFAULT, M32R_SDATA_DEFAULT): Turn into enums.
9420         (CACHE_FLUSH_TRAP): Turn into an integer.
9421         (TARGET_LITTLE_ENDIAN): Define to 0 by default.
9422         (INITIALIZE_TRAMPOLINE): Check m32r_cache_trap >= 0 to see if
9423         -mflush-trap is in use.
9424         * config/m32r/m32r.c (m32r_model_string, m32r_sdata_string)
9425         (m32r_cache_flush_trap_string): Delete.
9426         (m32r_model) Initialize to M32R_MODEL_DEFAULT.
9427         (m32r_sdata): Likewise M32R_SDATA_DEFAULT.
9428         (m32r_cache_trap): Likewise CACHE_FLUSH_TRAP.
9429         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
9430         (m32r_handle_option): New function.  Move -mflush-trap=, -mflush-func=,
9431         -mmodel= and -msdata= handling from...
9432         (m32r_init): ...here.
9433         * config/m32r/m32r.opt: New file.
9434
9435 2005-03-29  Keith Besaw  <kbesaw@us.ibm.com>
9436
9437         * tree-ssanames.c (duplicate_ssa_name_ptr_info): New function.
9438         (duplicate_ssa_name): Call duplicate_ssa_name_ptr_info.
9439         * tree-vect-analyze.c (vect_object_analysis): additional parm
9440         pass back a "struct ptr_info_def *" with the points-to info.
9441         (vect_analyze_data_refs): set the STMT_VINFO_PTR_INFO for the
9442         statement using info returned from vect_object_analysis.
9443         * tree-vect-transform.c (update_vuses_to_preheader): New function.
9444         (vect_create_data_ref_ptr): Remove updates to vars_to_rename
9445         for virtual uses and defs when creating a replacement vector
9446         reference.  Call duplicate_ssa_name_ptr_info to define points-to
9447         info for vector pointer replacement using STMT_VINFO_PTR_INFO.
9448         (vectorizable_store): copy_virtual_operands and update
9449         definition statements.
9450         (vectorizable_load): copy_virtual_operands.  Remove call to
9451         mark_call_clobbered_vars_to_rename for call to "const" builtin.
9452         * tree-vectorizer.c (vectorize_loops): Remove calls to
9453         rewrite_into_ssa and bitmap_clear (vars_to_rename).
9454         (new_stmt_vec_info): initialize STMT_VINFO_PTR_INFO for stmt.
9455         * tree-vectorizer.h (_stmt_vec_info): add field ptr_info and
9456         define macro STMT_VINFO_PTR_INFO for use in accessing.
9457         * tree.h add export of duplicate_ssa_name_ptr_info.
9458         * rs6000.c (altivec_init_builtins): Declare builtin function
9459         __builtin_altivec_mask_for_load to be "const".
9460
9461 2005-03-29  Jakub Jelinek  <jakub@redhat.com>
9462
9463         PR middle-end/20622
9464         * cgraph.h (struct cgraph_varpool_node): Add alias field.
9465         * cgraph.c (cgraph_varpool_assemble_pending_decls): Don't call
9466         assemble_variable on aliases.
9467         * varasm.c (assemble_alias): Set node->alias.
9468         * toplev.c (wrapup_global_declarations): Don't call
9469         rest_of_decl_compilation on aliases again.
9470
9471 2005-03-29  Paul Brook  <paul@codesourcery.com>
9472
9473         * config/arm/arm-protos.h (arm_dbx_register_number): Add prototype.
9474         * config/arm/arm.c (arm_dbx_register_number): New function.
9475         * config/arm/arm.h (IS_FPA_REGNUM, DBX_REGISTER_NUMBER): Define.
9476
9477 2005-03-29  Eric Botcazou  <ebotcazou@libertysurf.fr>
9478
9479         PR middle-end/20263
9480         * varasm.c (make_decl_rtl) [ASM_DECLARE_REGISTER_GLOBAL]: Use
9481         the DECL_NAME, not the DECL_ASSEMBLER_NAME.
9482
9483 2005-03-29  Dale Johannesen <dalej@apple.com>
9484
9485         * Makefile.in (value-prof.o): New dependencies on $(DIAGNOSTIC_H)
9486         $(TREE_H) and $(COVERAGE_H).
9487         * coverage.c (compute_checksum): Use DECL_NAME not DECL_ASSEMBLER_NAME.
9488         * opts.c (common_handle_option): Enable tree-based value transforms.
9489         * toplev.c (process_options): Ditto.
9490         * value-prof.h (struct histogram_value_t): Redefine. "Adjust" below
9491         refers to references to this type.
9492         * tree-flow.h: (struct stmt_ann_d): Add histograms field.
9493         * rtl-profile.c (rtl_gen_interval_profiler): Adjust. Remove checks
9494         for may_be_more, may_be_less.
9495         (rtl_gen_pow2_profiler): Adjust.
9496         (rtl_gen_one_value_profiler_no_edge_manip): Adjust.
9497         (rtl_gen_one_value_profiler): Adjust.
9498         (rtl_gen_const_delta_profiler): Adjust.
9499         * tree-profile.c (tree_gen_interval_profiler): Implement.
9500         (tree_gen_pow2_profiler): Ditto.
9501         (tree_gen_one_value_profiler): Ditto.
9502         (tree_profiling): New.
9503         (pass_tree_profile): Reference it.
9504         * value-prof.c: Include tree-flow.h, tree-flow-inline.h, diagnostic.h,
9505         tree.h, gcov-io.h.
9506         (insn_divmod_values_to_profile): Rename to
9507         rtl_divmod_values_to_profile. Adjust.
9508         (insn_values_to_profile): Rename to rtl_values_to_profile. Adjust.
9509         (insn_prefetch_values_to_profile): Adjust.
9510         (rtl_value_profile_transformations): Adjust.
9511         (gen_divmod_fixed_value): Rename to rtl_divmod_fixed_value.
9512         (gen_mod_pow2): Rename to rtl_mod_pow2.
9513         (gen_mod_subtract): Rename to rtl_mod_subtract.
9514         (divmod_fixed_value_transform): Rename to
9515         rtl_divmod_fixed_value_transform.
9516         (mod_pow2_value_transform): Rename to rtl_mod_pow2_value_transform.
9517         (mod_subtract_transform): Rename to rtl_mod_subtract_transform.
9518         (rtl_find_values_to_profile): Adjust.
9519         (tree_value_profile_transformations): Implement.
9520         (tree_divmod_values_to_profile): New.
9521         (tree_values_to_profile): New.
9522         (tree_divmod_fixed_value): New.
9523         (tree_mod_pow2): New.
9524         (tree_mod_subtract): New.
9525         (tree_divmod_fixed_value_transform): New.
9526         (tree_mod_pow2_value_transform): New.
9527         (tree_mod_subtract_transform): New.
9528         (tree_find_values_to_profile): Implement.
9529         * profile.c (instrument_values):  Free histograms.
9530         (compute_value_histograms): Adjust. Implement tree version.
9531
9532 2005-03-29  Uros Bizjak  <uros@kss-loka.si>
9533
9534         * reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST> case.
9535         * config/i386/i386.c (output_fix_trunc): Add new round_mode
9536         variable.  Output "fldcw" depending on round_mode.
9537         * config/i386/i386.md (UNSPEC_FIST): New.
9538         (fistdi2, fistdi2_with_temp, fist<mode>2, fist<mode>2_with_temp):
9539         New isns patterns to implement lrint and llrint built-ins as x87
9540         intrinsic function.
9541         (fistdi2, fist<mode>2 splitters): New splitters.
9542         (lrint<mode>2): New expanders.
9543
9544 2005-03-28  Ian Lance Taylor  <ian@airs.com>
9545
9546         * config/arc/arc.c (arc_output_function_epilogue): Pass prescan as
9547         0 when calling final_scan_insn.
9548
9549 2005-03-28  Jan Hubicka  <jh@suse.cz>
9550
9551         PR middle-end/20635
9552         * varasm.c (mark_decl_referenced): Do not mark extern inline functions
9553         as needed.
9554
9555         * tree-inline.c (estimate_num_insns_1): Use declaration to discover argument
9556         types where possible.
9557
9558 2005-03-26  Per Bothner  <per@bothner.com>
9559
9560         Make -f[no-]show-column also control non-cpp diagnostics.
9561         * c.opt (fshow-column): Move option from here ...
9562         * common.opt (fshow-column): ... to here.
9563         * diagnostic.c (diagnostic_build_prefix): Only print column number
9564         if flag_show_column.
9565
9566 2005-03-27  Steven Bosscher  <stevenb@suse.de>
9567
9568         * vax-protos.h (vax_output_int_move, vax_output_int_add,
9569         vax_output_conditional_branch): New prototypes.
9570         * vax.c (vax_output_int_move, vax_output_int_add): New functions,
9571         extracted from vax.md mov and add patterns.
9572         (vax_output_conditional_branch): New function to output conditional
9573         branch instructions.
9574         * vax.md: Use mode macros for arithmetic and mov patterns.
9575         Use code macros for the jump patterns.
9576
9577 2005-03-26  Andrew Pinski  <pinskia@physics.uc.edu>
9578
9579         * Makefile.in (libbackend.o): Depend on version files;
9580         add custom generation command.
9581
9582 2005-03-26  Andrew Pinski  <pinskia@physics.uc.edu>
9583
9584         PR target/20636
9585         * config/rs6000/rs6000.md (extendsfdf2_fpr): Check to make
9586         sure that we have a REG before getting its REGNO.
9587
9588 2005-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9589
9590         * builtin-types.def (BT_FN_STRING_CONST_STRING_SIZE): New.
9591         * builtins.def (BUILT_IN_STRNDUP): New.
9592
9593 2005-03-25  Pat Haugen  <pthaugen@us.ibm.com>
9594
9595         PR tree-optimization/20470
9596         * fold-const.c (fold_cond_expr_with_comparison): Recognize/fold
9597         ABS(x-y).
9598
9599 2005-03-25  Mike Stump  <mrs@apple.com>
9600
9601         * config/darwin.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Don't allow 0
9602         sized objects.
9603
9604 2005-03-25  Geoffrey Keating  <geoffk@apple.com>
9605
9606         * config/rs6000/darwin-fallback.c: Don't include <ucontext.h>.
9607         Use our own structure definitions.
9608
9609         * config/rs6000/rs6000.md (UNSPEC constants): Add UNSPEC_STFIWX.
9610         (fix_truncdfsi2): Allow registers or memory as destination.
9611         When TARGET_PPC_GFXOPT, generate simplified pattern.
9612         (fix_truncdfsi2_internal): Use define_insn_and_split.
9613         (fix_truncdfsi2_internal_gfxopt): New.
9614         (fctiwz): Don't confuse register allocation by giving it no choices.
9615         (stfiwx): New.
9616         * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'Z'.
9617         (EXTRA_MEMORY_CONSTRAINT): Likewise.
9618         * config/rs6000/rs6000.c (indexed_or_indirect_operand): New.
9619         * config/rs6000/rs6000-protos.h (indexed_or_indirect_operand): New.
9620
9621 2005-03-25  Kazu Hirata  <kazu@cs.umass.edu>
9622
9623         * dominance.c (free_dominance_info): Speed up by freeing et
9624         data structures without maintaining other nodes.
9625         * et-forest.c (et_free_tree_force): New.
9626         * et-forest.h: Add a prototype for et_free_tree_force.
9627
9628         * tree.c (get_set_constructor_bits,
9629         get_set_constructor_bytes): Remove.
9630         * tree.h: Remove the corresponding prototypes.
9631
9632 2005-03-25  John David Anglin  <dave.anglin@nrc-crnc.gc.ca>
9633
9634         PR target/15491
9635         * vax.c (vax_rtx_costs_1): Merge with vax_rtx_costs.
9636         (vax_rtx_costs): Return false when passed unsupported rtx's.  Handle
9637         FLOAT_EXTEND, FLOAT_TRUNCATE and TRUNCATE.  Fix costs for POST_INC,
9638         PRE_DEC, NEG and NOT.
9639
9640 2005-03-25  Kazu Hirata  <kazu@cs.umass.edu>
9641
9642         * fold-const.c: Convert uses of fold (build (...)) to
9643         fold_buildN.
9644
9645 2005-03-25  Zdenek Dvorak  <dvorakz@suse.cz>
9646
9647         PR rtl-optimization/20249
9648         * cse.c (insert_regs): Do not record equivalence of registers in
9649         different modes.
9650
9651 2005-03-24  Kazu Hirata  <kazu@cs.umass.edu>
9652
9653         * emit-rtl.c (reverse_comparison): Remove.
9654         * rtl.h: Remove the corresponding prototype.
9655
9656 2005-03-24  James E Wilson  <wilson@specifixinc.com>
9657
9658         * doc/install.texi (--enable-altivec): Delete docs.
9659
9660 2005-03-24  David Edelsohn  <edelsohn@gnu.org>
9661
9662         * config/rs6000/predicates.md (easy_fp_constant): Return 0 for
9663         SFmode and DFmode before reload when
9664         flag_unsafe_math_optimizations not enabled.
9665
9666 2005-03-24  Geoffrey Keating  <geoffk@apple.com>
9667
9668         * c.opt (fvisibility-inlines-hidden): Allow for ObjC++.
9669
9670         * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Add
9671         MASK_128BIT_LONG_DOUBLE, MASK_ALIGN_DOUBLE.
9672
9673 2005-03-24  Nathan Sidwell  <nathan@codesourcery.com>
9674
9675         * configure.ac (enable-checking): Add 'runtime' option.
9676         * doc/install.texi (enable-checking): Document 'runtime' checking.
9677         * tsystem.h (gcc_assert, gcc_unreachable): Define.
9678         * config.in: Regenerated.
9679         * configure: Regenerated.
9680
9681 2005-03-23  Uros Bizjak  <uros@kss-loka.si>
9682
9683         * optabs.h (enum optab_index): Remove OTI_llrint.
9684         (llrint_optab): Remove macro.
9685         * optabs.c (init_optabs): Remove llrint_optab initialization.
9686         * genopinit.c (optabs): Remove llrint_optab implementation.
9687         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LLRINT{,F,L}
9688         using lrint_optab.
9689
9690 2005-03-24  Alexandre Oliva  <aoliva@redhat.com>
9691
9692         PR rtl-optimization/20532
9693         * simplify-rtx.c (simplify_binary_operation_1): Protect from
9694         overflow when adding coefficients for PLUS or MINUS.
9695         (simplify_binary_operation_1): Handle CONST_DOUBLE exact power of
9696         two as multiplier.
9697
9698 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
9699
9700         * langhooks.h (truthvalue_conversion): Remove.
9701         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
9702         LANG_HOOKS_TRUTHVALUE_CONVERSION.
9703         * system.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Poison.
9704         * gimplify.c (gimple_boolify): Don't use truthvalue_conversion.
9705         * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
9706
9707 2005-03-23  Kazu Hirata  <kazu@cs.umass.edu>
9708
9709         * params.def: Fix a typo.
9710         * config/mips/mips.c: Follow the spelling convensions.
9711         * doc/invoke.texi: Fix typos.
9712
9713 2005-03-23  Daniel Berlin  <dberlin@dberlin.org>
9714
9715         Fix PR tree-optimization/20601
9716
9717         * tree-ssa-pre.c (insert_aux): Add missing condition to
9718         constification.
9719
9720 2005-03-23  Ian Lance Taylor  <ian@airs.com>
9721
9722         * final.c (final_scan_insn): Don't remove no-op instructions.
9723         * reload1.c (reload): Remove simple no-op instructions even when
9724         not optimizing.
9725
9726 2005-03-23  Dorit Naishlos  <dorit@il.ib.com>
9727
9728         PR tree-optimization/20501
9729         * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Debug print
9730         reporting that peeling for alignment is applied moved to...
9731         * (vect_analyze_data_refs_alignment): Here.
9732
9733 2005-03-23  Ian Lance Taylor  <ian@airs.com>
9734
9735         * reorg.c (dbr_schedule): Remove #if 0 code to call final.
9736
9737 2005-03-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9738
9739         * config.gcc (alpha*-dec-osf[45]*): Remove target_cpu_default.
9740         Define TARGET_SUPPORT_ARCH except on Tru64 UNIX V4.0A.
9741
9742 2005-03-23  Hans-Peter Nilsson  <hp@axis.com>
9743
9744         * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Adjust wording to not
9745         imply that this is called once, independent of asms in code.
9746         Adjust to now being pased output and input lists.  Mention helper
9747         function decl_overlaps_hard_reg_set_p.
9748         * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Rename from
9749         hook_tree_tree_identity and to take three trees, returning third.
9750         * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Adjust the
9751         prototype.
9752         * stmt.c: include hard-reg-set.h before tree.h.
9753         (decl_overlaps_hard_reg_set_p): New function, broken out from...
9754         (decl_conflicts_with_clobbers_p): Call
9755         decl_overlaps_hard_reg_set_p.
9756         (expand_asm_operands): Pass output and input lists in call to
9757         targetm.md_asm_clobbers.
9758         * target-def.h (TARGET_MD_ASM_CLOBBERS): Define as
9759         hook_tree_tree_tree_tree_3rd_identity.
9760         * target.h (struct gcc_target.md_asm_clobbers): Take three tree
9761         parameters.
9762         * tree.h [HARD_CONST] (decl_overlaps_hard_reg_set_p): Prototype.
9763         * config/i386/i386.c (ix86_md_asm_clobbers): Adjust to three
9764         parameters, first two unused.
9765         * config/cris/cris.c (cris_md_asm_clobbers): Adjust to added
9766         parameters.  Only add MOF to clobbers if there's no 'h' mentioned
9767         in constraint letters and MOF is not mentioned as a asm-declared
9768         register in neither of the input and output lists.
9769
9770 2005-03-23  DJ Delorie  <dj@redhat.com>
9771
9772         * optabs.c (expand_binop): Make sure the first subword's result
9773         gets stored.
9774
9775 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
9776
9777         * c-common.c (c_common_truthvalue_conversion): Adjust comment.
9778         Call c_common_truthvalue_conversion rather than
9779         lang_hooks.truthvalue_conversion.
9780         * c-convert.c (convert): Call c_objc_common_truthvalue_conversion.
9781         * c-objc-common.c (c_objc_common_truthvalue_conversion): Move to
9782         c-typeck.c.
9783         * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Change to
9784         c_common_truthvalue_conversion.
9785         * c-parser.c (c_parser_paren_condition, c_parser_for_statement,
9786         c_parser_conditional_expression, c_parser_binary_expression): Call
9787         c_objc_common_truthvalue_conversion.
9788         * c-typeck.c (build_unary_op): Call
9789         c_objc_common_truthvalue_conversion.
9790         (build_conditional_expr): Do not call
9791         lang_hooks.truthvalue_conversion.
9792         (build_binary_op): Call c_common_truthvalue_conversion.
9793         (c_objc_common_truthvalue_conversion): Moved from
9794         c-objc-common.c.  Call default_function_array_conversion instead
9795         of default_conversion.
9796
9797 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
9798
9799         * c-common.h (default_conversion): Remove.
9800         (perform_integral_promotions): Add.
9801         * c-tree.h (default_conversion): Add.
9802         * c-typeck.c (perform_integral_promotions): New, split out from
9803         default_conversion.
9804         * c-common.c (check_case_value): Use perform_integral_promotions,
9805         not default_conversion.
9806         (c_add_case_label): Don't continue processing case label after
9807         found to be pointer.
9808
9809 2005-03-23  Mark Mitchell  <mark@codesourcery.com>
9810
9811         * gcc.c (do_spec_1): Do not add a -L path for a directory in
9812         the prefix list if we have already added a multilib directory
9813         based on that path.
9814         (main): Do not add MD_EXEC_PREFIX to the list of directories to
9815         search with -L.
9816
9817 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
9818
9819         * reload1.c (indirect_symref_ok, reload_obstack): Make them
9820         static.
9821         * reload.h: Remove the prototype for indirect_symref_ok.
9822
9823         * reload1.c (indirect_symref_ok): Make it global.
9824         * reload.h: Add a prototype for indirect_symref_ok.
9825
9826 2005-03-22  Kaz Kojima  <kkojima@gcc.gnu.org>
9827
9828         * config/sh/sh.md (ashlhi3): Rename to *ashlhi3_n and add a new
9829         ashlhi3 expander.
9830
9831 2005-03-22  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
9832
9833         * tree.h (DECL_IGNORED_P, DECL_IN_SYSTEM_HEADER): Clarify comments.
9834
9835 2005-03-22  Daniel Berlin  <dberlin@dberlin.org>
9836
9837         * c-opts.c (c_common_parse_file): Only start/end main source file
9838         if debug hooks says the writer wants it.
9839         * dbxout.c (dbx_debug_hooks): Add start_end_main_source_file
9840         member.
9841         (xcoff_debug_hooks): Ditto.
9842         * debug.c (do_nothing_hooks): Ditto.
9843         * debug.h (gcc_debug_hooks): Ditto.
9844         * dwarf2out.c (dwarf2_debug_hooks): Ditto.
9845         * sdbout.c (sdb_debug_hooks): Ditto.
9846         * vmsdbgout.c (vmsdbg_debug_hooks): Ditto.
9847
9848 2005-03-22  Mark Mitchell  <mark@codesourcery.com>
9849
9850         * doc/extend.texi: Deprecate C++ min/max operators.
9851
9852 2005-03-22  Zdenek Dvorak  <dvorakz@suse.cz>
9853
9854         * tree-ssa-loop-ivopts.c (determine_iv_cost): Do not try to preserve
9855         artificial original candidates.
9856
9857 2005-03-22  Richard Guenther <rguenth@tat.physik.uni-tuebingen.de>
9858             Jan Hubicka  <jh@suse.cz>
9859             Steven Bosscher <stevenb@suse.de>
9860
9861         * cgraphunit.c (cgraph_estimate_size_after_inlining): Compute
9862         call cost based on argument sizes.
9863         (cgraph_mark_inline_edge): Avoid inline unit from shrinking by
9864         inlining.
9865         * params.def: (max-inline-inssn-single): Set to 450.
9866         (max-inline-insns-auto): Set to 90.
9867         (max-inline-insns-recursive): Set to 450
9868         (max-inline-insns-recursive-auto): Set to 450.
9869         (large-function-insns): Set to 2700.
9870         (inline-call-cost): New parameter.
9871         * tree-inline.c (estimate_move_cost): New function.
9872         (estimate_num_insns_1): Compute move sizes costs by estimate_move_cost
9873         for non-gimple-regs, set cost to 0 for gimple-regs.  Compute call size
9874         based on arguments.
9875         * tree-inline.h (estimate_move_cost): Declare.
9876         * invoke.texi: (max-inline-inssn-single): Change default to 450.
9877         (max-inline-insns-auto): Change default to 90.
9878         (max-inline-insns-recursive): Change default to 450
9879         (max-inline-insns-recursive-auto): Change default to 450.
9880         (large-function-insns): Change default to 2700.
9881         (inline-call-cost): Document new parameter.
9882
9883 2005-03-22  Richard Sandiford  <rsandifo@redhat.com>
9884
9885         * config/i860/i860.h (target_flags, TARGET_XP, TARGET_SWITCHES)
9886         (TARGET_DEFAULT): Delete.
9887         * config/i860/i860.opt: New file.
9888
9889 2005-03-22  Richard Sandiford  <rsandifo@redhat.com>
9890
9891         * config/frv/frv-protos.h (frv_branch_cost_string, frv_branch_cost_int)
9892         (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
9893         (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
9894         (frv_sched_lookahead): Delete.
9895         * config/frv/frv.h (MASK_DEFAULT_ALLOC_CC): Move to frv.c.
9896         (target_flags, MASK_GPR_32, MASK_FPR_32, MASK_SOFT_FLOAT)
9897         (MASK_ALLOC_CC, MASK_DWORD, MASK_DOUBLE, MASK_MEDIA, MASK_MULADD)
9898         (MASK_LIBPIC, MASK_ACC_4,  MASK_PACK, MASK_LONG_CALLS)
9899         (MASK_ALIGN_LABELS, MASK_LINKED_FP, MASK_BIG_TLS, MASK_DEBUG_ARG)
9900         (MASK_DEBUG_ADDR, MASK_DEBUG_STACK, MASK_DEBUG, MASK_DEBUG_LOC)
9901         (MASK_DEBUG_COND_EXEC, MASK_NO_COND_MOVE, MASK_NO_SCC)
9902         (MASK_NO_COND_EXEC, MASK_NO_VLIW_BRANCH, MASK_NO_MULTI_CE)
9903         (MASK_FDPIC, MASK_INLINE_PLT, MASK_GPREL_RO, MASK_DEFAULT)
9904         (TARGET_GPR_32, TARGET_FPR_32, TARGET_SOFT_FLOAT, TARGET_ALLOC_CC)
9905         (TARGET_DWORD, TARGET_DOUBLE, TARGET_MEDIA, TARGET_MULADD)
9906         (TARGET_LIBPIC, TARGET_ACC_4, TARGET_DEBUG_ARG, TARGET_DEBUG_ADDR)
9907         (TARGET_DEBUG_STACK, TARGET_DEBUG, TARGET_DEBUG_LOC)
9908         (TARGET_DEBUG_COND_EXEC, TARGET_NO_COND_MOVE, TARGET_NO_SCC)
9909         (TARGET_NO_COND_EXEC, TARGET_NO_VLIW_BRANCH, TARGET_NO_MULTI_CE)
9910         (TARGET_NO_NESTED_CE, TARGET_FDPIC, TARGET_INLINE_PLT, TARGET_BIG_TLS)
9911         (TARGET_GPREL_RO, TARGET_PACK, TARGET_LONG_CALLS, TARGET_ALIGN_LABELS)
9912         (TARGET_LINKED_FP, TARGET_GPR_64, TARGET_FPR_64, TARGET_HARD_FLOAT)
9913         (TARGET_FIXED_CC, TARGET_COND_MOVE, TARGET_SCC, TARGET_COND_EXEC)
9914         (TARGET_VLIW_BRANCH, TARGET_MULTI_CE, TARGET_NESTED_CE, TARGET_ACC_8)
9915         (TARGET_SWITCHES, TARGET_OPTIONS, DEFAULT_CONDEXEC_TEMPS)
9916         (DEFAULT_BRANCH_COST, DEFAULT_CONDEXEC_INSNS): Delete.
9917         * config/frv/frv.c (frv_branch_cost_string, frv_branch_cost_int)
9918         (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
9919         (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
9920         (frv_sched_lookahead): Delete.
9921         (MASK_DEFAULT_ALLOC_CC): Moved from frv.h.
9922         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
9923         (frv_handle_option): New function.  Move -mcpu= handling from...
9924         (frv_override_options): ...here.  Remove handling of other
9925         TARGET_OPTIONS.
9926         (frv_ifcvt_modify_tests): Check !TARGET_COND_EXEC instead of
9927         TARGET_NO_COND_EXEC and !TARGET_NESTED_CE to TARGET_NO_NESTED_CE.
9928         (frv_ifcvt_modify_multiple_tests): Likewise !TARGET_MULTI_CE
9929         and TARGET_NO_MULTI_CE.
9930         (frv_for_each_packet): Likewise TARGET_NO_VLIW_BRANCH and
9931         !TARGET_VLIW_BRANCH.
9932         * config/frv/frv.opt: New file.
9933
9934 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
9935
9936         * fold-const.c (fold_ternary): Take decomposed arguments of
9937         CALL_EXPR.
9938         (fold): Update a call to fold_ternary.
9939
9940         * fold-const.c (fold_build1, fold_build2, fold_build3): New.
9941         * tree.h: Add corresponding prototypes.
9942
9943 2005-03-22  Jakub Jelinek  <jakub@redhat.com>
9944
9945         PR target/20561
9946         * cfglayout.c (reemit_insn_block_notes): Don't put block notes in
9947         between jump table and its label.
9948         * final.c (shorten_branches): Handle notes in between ADDR_VEC
9949         resp. ADDR_DIFF_VEC and the label preceeding it.
9950         (final_scan_insn): Likewise.  Ensure ADDR_VEC resp. ADDR_DIFF_VEC
9951         is emitted in the right section.
9952
9953 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
9954
9955         * fold-const.c (fold_unary, fold_binary): Update comments
9956         about arguments.
9957
9958 2005-03-22  Hans-Peter Nilsson  <hp@axis.com>
9959
9960         PR rtl-optimization/20527
9961         * combine.c (can_combine_p) [AUTO_INC_DEC]: When INSN has an
9962         REG_INC note, test that the register also isn't mentioned in PRED
9963         or SUCC.
9964
9965 2005-03-22  Ben Elliston  <bje@au.ibm.com>
9966
9967         * dwarf2out.c (dwarf_type_encoding_name): Remove unused prototype
9968         and definition.
9969
9970 2005-03-21  Mike Stump  <mrs@apple.com>
9971
9972         * varasm.c (default_assemble_visibility): Remove extra ().
9973
9974 2005-03-21  Roger Sayle  <roger@eyesopen.com>
9975
9976         PR middle-end/20557
9977         * bb-reorder.c (duplicate_computed_gotos): Use can_duplicate_block_p
9978         to determine whether a block can be duplicated, rather than test
9979         whether the block contains noncopyable insns ourselves.
9980
9981 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
9982
9983         * config/i860/i860.h (PREDICATE_CODES): Remove nonexistent
9984         predicates.
9985
9986 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
9987
9988         * config/ip2k/ip2k.h (target_flags, TARGET_SWITCHES): Delete.
9989
9990 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
9991
9992         * config/fr30/fr30.h (TARGET_SMALL_MODEL_MASK, TARGET_SMALL_MODEL)
9993         (TARGET_DEFAULT, target_flags, TARGET_SWITCHES): Delete.
9994         * config/fr30/fr30.opt: New file.
9995
9996 2005-03-18  Daniel Berlin  <dberlin@dberlin.org>
9997
9998         Fix PR tree-optimization/20542
9999
10000         * tree-flow-inline.h (overlap_subvar): Move to here.
10001         * tree-ssa-operands.c: From here.
10002         * tree-flow.h (overlap_subvar): Declare.
10003         * tree-ssa-alias.c (add_pointed_to_var): Use overlap_subvar here.
10004         * tree-ssa-loop-im.c (is_call_clobbered_ref): Return proper answer
10005         for variables with subvars.
10006
10007 2005-03-21 Mostafa Hagog <mustafa@il.ibm.com>
10008
10009         PR middle-end/20177
10010         * ddg.c (create_ddg_dependence): Ignore reg-anti dependency.
10011         * modulo-sched.c (const_iteration_count): Return on NULL
10012         pre-header.
10013         (print_node_sched_params): Return on NULL dump_file.
10014         (generate_reg_moves): Handle reg-anti dependencies and disregard
10015         closing branch when generating register moves.
10016         (sms_schedule): Mark the SMSed block dirty.
10017         * passes.c (rest_of_handle_sms): Call update_life_info for all
10018         basic-blocks.
10019         * testsuite/gcc.dg/20050321-1.c: New test.
10020
10021 2005-03-21  Bob Wilson  <bob.wilson@acm.org>
10022
10023         * config/xtensa/lib1funcs.asm (__mulsi3): Use symbolic name for ACCLO.
10024         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
10025         movqi_internal): Likewise.
10026
10027 2005-03-21  Bob Wilson  <bob.wilson@acm.org>
10028
10029         * config/xtensa/xtensa-protos.h: (xtensa_simm7, xtensa_uimm8,
10030         xtensa_uimm8x2, xtensa_uimm8x4, xtensa_ai4const, xtensa_lsi4x4,
10031         xtensa_b4const): Delete prototypes.
10032         (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b, xtensa_b4constu,
10033         xtensa_mask_immediate, xtensa_mem_offset): Update prototypes.
10034         (xtensa_b4const_or_zero, xtensa_const_ok_for_letter_p,
10035         xtensa_extra_constraint): New prototypes.
10036         (add_operand, arith_operand, nonimmed_operand, mem_operand,
10037         mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
10038         lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
10039         move_operand, const_float_1_operand, fpmem_offset_operand,
10040         branch_operator, ubranch_operator, boolean_operator): Delete prototypes.
10041         * config/xtensa/xtensa.c (b4const_or_zero): Rename to ...
10042         (xtensa_b4const_or_zero): ...this.  Change return type to bool and
10043         argument type to HOST_WIDE_INT.
10044         (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b,
10045         xtensa_mask_immediate): Likewise.
10046         (xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4, xtensa_b4const):
10047         Likewise.  Also make these functions static.
10048         (xtensa_simm7, xtensa_ai4const, xtensa_lsi4x4): Delete.
10049         (xtensa_const_ok_for_letter_p): New.
10050         (add_operand, arith_operand, nonimmed_operand, mem_operand,
10051         mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
10052         lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
10053         move_operand, const_float_1_operand, fpmem_offset_operand,
10054         branch_operator, ubranch_operator, boolean_operator): Move to
10055         predicates.md.
10056         (smalloffset_mem_p): Inline code from xtensa_lsi4x4.
10057         (xtensa_mem_offset): Change return type to bool.
10058         (xtensa_extra_constraint): New.
10059         (gen_int_relational): Update type of const_range_p function pointer.
10060         Use xtensa_b4const_or_zero.
10061         * config/xtensa/xtensa.h (CONST_OK_FOR_LETTER_P): Define to
10062         xtensa_const_ok_for_letter_p.  Update comments.
10063         (EXTRA_CONSTRAINT): Define to xtensa_extra_constraint.
10064         (PREDICATE_CODES): Delete.
10065         * config/xtensa/xtensa.md: Include predicates.md.
10066         * config/xtensa/predicates.md: New file.
10067
10068 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
10069
10070         * config/v850/v850-protos.h: Remove the prototypes for
10071         reg_or_int9_operand, reg_or_const_operand,
10072         pattern_is_ok_for_prepare, pattern_is_ok_for_dispose,
10073         reg_or_0_operand, reg_or_int5_operand, call_address_operand,
10074         movsi_source_operand, power_of_two_operand,
10075         not_power_of_two_operand, special_symbolref_operand,
10076         pattern_is_ok_for_prologue, pattern_is_ok_for_epilogue, and
10077         register_is_ok_for_epilogue.
10078         * config/v850/v850.c (reg_or_0_operand, reg_or_int5_operand,
10079         reg_or_int9_operand, reg_or_const_operand,
10080         call_address_operand, special_symbolref_operand,
10081         movsi_source_operand, power_of_two_operand,
10082         not_power_of_two_operand, register_is_ok_for_epilogue,
10083         pattern_is_ok_for_epilogue, pattern_is_ok_for_prologue,
10084         pattern_is_ok_for_dispose, pattern_is_ok_for_prepare): Move to
10085         predicates.md.
10086         * config/v850/v850.h (PREDICATE_CODES): Remove.
10087         * config/v850/v850.md: Include predicates.md.
10088         * config/v850/predicates.md: New.
10089
10090 2005-03-21  Zack Weinberg  <zack@codesourcery.com>
10091
10092         * Makefile.in (BASEVER, DEVPHASE, DATESTAMP)
10093         (BASEVER_c, DEVPHASE_c, DATESTAMP_c)
10094         (BASEVER_s, DEVPHASE_s, DATESTAMP_s, version): Set with :=.
10095         (itoolsdir, itoolsdatadir): Move definition above new first use.
10096         (install-itoolsdirs): New rule.
10097         (install-mkheaders): Depend on install-itoolsdirs, not
10098         install-include-dir.
10099
10100 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
10101
10102         * tree-into-ssa.c: Remove obsolete comments.
10103
10104 2005-03-21  Richard Guenther  <rguenth@gcc.gnu.org>
10105
10106         * tree-ssa-loop.c (gate_tree_complete_unroll): Run complete
10107         unrolling if -fpeel-loops is specified, too.
10108         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
10109         Remove superfluous check for flag_unroll_loops.
10110
10111 2005-03-21  Uros Bizjak  <uros@kss-loka.si>
10112
10113         * optabs.h (enum optab_index): Add new OTI_lrint and OTI_llrint.
10114         (lrint_optab, llrint_optab): Define corresponding macros.
10115         * optabs.c (init_optabs): Initialize lrint_optab and llrint_optab.
10116         * genopinit.c (optabs): Implement lrint_optab using lrintsi2
10117         pattern and llrint_optab using llrintdi2 patterns.
10118         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LRINT{,F,L}
10119         using lrint_optab and BUILT_IN_LLRINT{,F,L} using llrint_optab.
10120         (expand_builtin): Expand BUILT_IN_LRINT{,F,L} and
10121         BUILT_IN_LLRINT{,F,L} using expand_builtin_mathfn if
10122         flag_unsafe_math_optimizations is set.
10123
10124 2005-03-21  Paolo Bonzini  <bonzini@gnu.org>
10125
10126         * combine.c (combine_simplify_rtx, simplify_if_then_else,
10127         simplify_logical, if_then_else_cond, known_cond,
10128         simplify_comparison): Adjust calls to reverse_comparison.
10129         Don't use combine_reversed_comparison_code).
10130         (combine_reversed_comparison_code): Remove.
10131         (reversed_comparison): Using reversed_comparison_code, move it...
10132         * jump.c (reversed_comparison): ... here.
10133         * rtl.h (reversed_comparison): Add prototype.
10134
10135 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
10136
10137         * builtins.c (fold_builtin): Take decomposed arguments of
10138         CALL_EXPR.
10139         * fold-const.c (fold_ternary): Update a call to fold_builtin.
10140         * gimplify.c (gimplify_call_expr): Likewise.
10141         * tree-ssa-ccp.c (ccp_fold, ccp_fold_builtin): Likewise.
10142         * tree.h: Update the prototype of fold_builtin.
10143
10144 2005-03-21  Paolo Bonzini  <bonzini@gnu.org>
10145
10146         * rtl.h (struct rtx_hooks): Add gen_lowpart_no_emit.
10147         * rtlhooks.c (gen_lowpart_no_emit_general): New.
10148         * rtlhooks-def.h (gen_lowpart_no_emit_general): Declare.
10149         (RTL_HOOKS_GEN_LOWPART_NO_EMIT): New.
10150         * simplify-rtx.c (simplify_binary_operation_1): Use it.
10151
10152 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
10153
10154         * builtins.c (fold_builtin_1): Take decomposed arguments of
10155         CALL_EXPR.
10156         (fold_builtin): Update a call to fold_builtin_1.
10157
10158 2005-03-21  Nathan Sidwell  <nathan@codesourcery.com>
10159
10160         PR other/20564
10161         * gcov.c (output_lines): Only output function block summary when
10162         outputting branch information.
10163         * doc/gcov.texi: Document format of preamble and additional block
10164         information lines.
10165
10166 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
10167
10168         * libgcc2.h (LIBGCC2_HAS_SF_MODE): New macro.
10169         (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_TF_MODE, LIBGCC2_HAS_XF_MODE): Make
10170         the defaults false if BITS_PER_UNIT != 8.
10171         (SFtype, SCtype, __fixsfdi, __floatdisf, __fixunssfSI, __fixunssfDI)
10172         (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE rather
10173         than BITS_PER_UNIT != 8.
10174         (L_fixdfdi, L_fixsfdi, L_fixtfdi, L_fixunsdfdi, L_fixunsdfsi)
10175         (L_fixunssfdi, L_fixunssfsi, L_fixunstfdi, L_fixunsxfdi, L_fixunsxfsi)
10176         (L_fixxfdi, L_floatdidf, L_floatdisf, L_floatditf, L_floatdixf): Remove
10177         #undefs.
10178         * libgcc2.c (__fixunssfDI, __fixsfdi, __floatdisf, __fixunssfSI)
10179         (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE.
10180
10181 2005-03-20  Roger Sayle  <roger@eyesopen.com>
10182
10183         PR middle-end/20539
10184         * fold-const.c (fold_binary): Fix type mismatch between
10185         TRUTH_{AND,OR,XOR}_EXPR nodes an their operands' types.
10186         (fold_binary) <TRUTH_XOR_EXPR>: Avoid calling invert_truthvalue
10187         for non-truth-valued expressions.
10188
10189         * c-common.c (c_common_truthvalue_conversion): Handle ERROR_MARK
10190         and FUNCTION_DECL in the main switch.
10191         <TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
10192         TRUTH_XOR_EXPR>: When changing the result type of these tree nodes,
10193         we also need to convert their operands to match.
10194         <TRUTH_NOT_EXPR>: Likewise.
10195
10196 2005-03-21  Joseph S. Myers  <joseph@codesourcery.com>
10197
10198         * c-common.c (lvalue_or_else): Replace by lvalue_error; only give
10199         diagnostic without checking whether an lvalue.
10200         * c-common.h (lvalue_p): Remove.
10201         (enum lvalue_use): Update comment.
10202         (lvalue_or_else): Replace by lvalue_error.
10203         * c-typeck.c (lvalue_p): Make static.
10204         (lvalue_or_else): New.  Call lvalue_error.
10205
10206 2005-03-21  Alan Modra  <amodra@bigpond.net.au>
10207
10208         * config/rs6000/rs6000.c (rs6000_parm_start): New function.
10209         (function_arg_advance): Use rs6000_parm_start.
10210         (function_arg, rs6000_arg_partial_bytes): Likewise.
10211
10212 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
10213
10214         * c-common.c (check_case_value): Adjust comment about stripping
10215         NOPs.
10216         (handle_vector_size_attribute): Don't strip NON_LVALUE_EXPR.
10217         * c-typeck.c (default_conversion, convert_arguments,
10218         build_modify_expr, convert_for_assignment, store_init_value,
10219         digest_init): Use STRIP_TYPE_NOPS instead of stripping nops
10220         manually.  Remove inaccurate comments.
10221
10222 2005-03-20  Roger Sayle  <roger@eyesopen.com>
10223             Joseph S. Myers  <joseph@codesourcery.com>
10224
10225         * varasm.c (do_assemble_alias): Restore comment describing function.
10226         Annotate the target parameter as potentially unused.
10227
10228 2005-03-20  Marek Michalkiewicz  <marekm@amelek.gda.pl>
10229
10230         PR target/18551
10231         * config/avr/avr.c (avr_output_function_prologue): Do not use
10232         current_function_name() in a label, use a local label instead.
10233
10234 2005-03-20  David Edelsohn  <edelsohn@gnu.org>
10235
10236         * config/rs6000/rs6000.c (rs6000_generate_compare): Test
10237         flag_finite_math_only, not flag_unsafe_math_optimizations.
10238
10239 2005-03-20  Kazu Hirata  <kazu@cs.umass.edu>
10240
10241         * builtins.c (fold_builtin_1): Update a call to
10242         targetm.fold_builtin.
10243         * hooks.c (hook_tree_tree_bool_null): Rename to
10244         hook_tree_tree_tree_bool_null.  Take one more argument of type
10245         tree.
10246         * hooks.h: Update the prototype of hook_tree_tree_bool_null.
10247         * target-def.h (TARGET_FOLD_BUILTIN): Define it as
10248         hook_tree_tree_tree_bool_null.
10249         * target.h (gcc_target): Update the prototype of fold_builtin.
10250         * config/alpha/alpha.c (alpha_fold_builtin): Take decomposed
10251         arguments of CALL_EXPR.
10252         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update.  Mention the
10253         new prototype.
10254
10255 2005-03-20  Jan Hubicka  <jh@suse.cz>
10256
10257         * cgraph.h (cgraph_node): Add prev_clone pointer.
10258         * cgraph.c (cgraph_remove_node): Remove from doubly linked chain.
10259         (cgraph_clone_node): Produce doubly linked chain.
10260
10261 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
10262
10263         * c-common.c (handle_aligned_attribute, check_function_sentinel,
10264         get_nonnull_operand, handle_sentinel_attribute,
10265         check_function_arguments_recurse): Do not strip NOPS from
10266         INTEGER_CSTs.
10267         * c-decl.c (check_bitfield_type_and_width, build_enumerator):
10268         Likewise.
10269         * c-format.c (get_constant): Likewise.
10270         * c-parser.c (c_parser_postfix_expression): Likewise.
10271         * c-typeck.c (set_init_index): Likewise.
10272         (convert_arguments): Don't check for NOP_EXPR containing integer
10273         constant.
10274
10275 2005-03-20  Kazu Hirata  <kazu@cs.umass.edu>
10276
10277         * builtins.c (fold_fixed_mathfn, fold_builtin_trunc,
10278         fold_builtin_floor, fold_builtin_ceil, fold_builtin_lround):
10279         Take decomposed arguments of CALL_EXPR.
10280         (fold_builtin_1): Update calls to the functions mentioned
10281         above.
10282
10283 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
10284
10285         * c-decl.c (check_bitfield_type_and_width): Require bit-field
10286         width to have integer type.
10287         (build_enumerator): Require enumerator value to have integer type.
10288
10289 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
10290
10291         * doc/extend.texi (__builtin_inf): Move statement about INFINITY
10292         to __builtin_inff.
10293
10294 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
10295
10296         * c.opt (ansi, std=iso9899:1990, std=iso9899:1999,
10297         std=iso9899:199x): Correct descriptions.
10298
10299 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
10300
10301         * config.gcc: Consistently use solaris2.1[0-9]* instead of
10302         solaris2.1[0-9].
10303
10304 2005-03-19  Kazu Hirata  <kazu@cs.umass.edu>
10305
10306         * builtins.c (fold_builtin_memcpy): Take decomposed arguments
10307         of CALL_EXPR.
10308         (expand_builtin_memcpy, fold_builtin_1): Update calls to
10309         fold_builtin_memcpy.
10310
10311         * builtins.c (fold_trunc_transparent_mathfn): Take decomposed
10312         arguments of CALL_EXPR.
10313         (fold_builtin_trunc, fold_builtin_floor, fold_builtin_ceil,
10314         fold_builtin_found, fold_builtin_1): Update calls to
10315         fold_trunc_transparent_mathfn.
10316
10317 2005-03-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10318
10319         PR middle-end/20493
10320         * fold-const.c (fold_widened_comparison): Don't optimize casts of
10321         function pointers on targets that require function pointer
10322         canonicalization.
10323         (fold_sign_changed_comparison): Likewise.
10324
10325 2005-03-19  Bernd Schmidt  <bernd.schmidt@analog.com>
10326
10327         * combine.c (try_combine): When changing the mode of a hard reg, make
10328         sure that doing so is valid.
10329
10330 2005-03-19  Richard Sandiford  <rsandifo@redhat.com>
10331
10332         * config/avr/avr.c (avr_init_stack, avr_mcu_name): Make static.
10333         (TARGET_HANDLE_OPTION): Override default.
10334         (avr_handle_option): New function.
10335         * config/avr/avr.h (MASK_ALL_DEBUG, MASK_ORDER_1, MASK_INSN_SIZE_DUMP)
10336         (MASK_ORDER_2, MASK_NO_TABLEJUMP, MASK_INT8, MASK_NO_INTERRUPTS)
10337         (MASK_CALL_PROLOGUES, MASK_TINY_STACK, MASK_SHORT_CALLS)
10338         (TARGET_ORDER_1, TARGET_ORDER_2, TARGET_INT8, TARGET_NO_INTERRUPTS)
10339         (TARGET_INSN_SIZE_DUMP, TARGET_CALL_PROLOGUES, TARGET_TINY_STACK)
10340         (TARGET_NO_TABLEJUMP, TARGET_SHORT_CALLS, TARGET_ALL_DEBUG)
10341         (TARGET_SWITCHES, avr_init_stack, avr_mcu_name)
10342         (TARGET_OPTIONS): Delete.
10343         * config/avr/avr.opt: New file.
10344
10345 2005-03-18  2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
10346
10347         * config/m32r/m32r-protos.h: Remove the prototypes for
10348         call_address_operand, symbolic_operand, seth_add3_operand,
10349         cmp_int16_operand, uint16_operand, reg_or_int16_operand,
10350         reg_or_uint16_operand, reg_or_cmp_int16_operand,
10351         two_insn_const_operand, move_src_operand,
10352         move_double_src_operand, move_dest_operand,
10353         eqne_comparison_operator, signed_comparison_operator,
10354         large_insn_p, conditional_move_operand, carry_compare_operand,
10355         m32r_block_immediate_operand, extend_operand,
10356         reg_or_eq_int16_operand, int8_operand, and
10357         reg_or_zero_operand.
10358         * config/m32r/m32r.c (call_address_operand, symbolic_operand,
10359         seth_add3_operand, int8_operand, cmp_int16_operand,
10360         uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
10361         reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
10362         reg_or_zero_operand, two_insn_const_operand, move_src_operand,
10363         move_double_src_operand, move_dest_operand,
10364         eqne_comparison_operator, signed_comparison_operator,
10365         extend_operand, small_insn_p, large_insn_p,
10366         conditional_move_operand, carry_compare_operand,
10367         m32r_block_immediate_operand): Move to predicates.md.
10368         (MAX_MOVE_BYTES): Move to m32r.h.
10369         * config/m32r/m32r.h (PREDICATE_CODES): Remove.
10370         * config/m32r/m32r.md: Include predicates.md.
10371         * config/m32r/predicates.md: New.
10372
10373 2005-03-18  James E Wilson  <wilson@specifixinc.com>
10374
10375         PR c++/19769
10376         * dwarf2out.c (declare_in_namespace): Ignore decls with an abstract
10377         origin.
10378
10379 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
10380
10381         * config/mn10300/mn10300-protos.h: Remove the prototypes for
10382         call_address_operand, const_8bit_operand.
10383         * config/mn10300/mn10300.c (call_address_operand,
10384         const_8bit_operand, const_1f_operand): Move to predicates.md.
10385         * config/mn10300/mn10300.h (PREDICATE_CODES): Remove.
10386         * config/mn10300/mn10300.md: Include predicates.md.
10387         * config/mn10300/predicates.md: New.
10388
10389 2005-03-18  Joseph S. Myers  <joseph@codesourcery.com>
10390
10391         * c-common.c, c-decl.c, c-format.c, c-typeck.c: Use %D for
10392         declarations in diagnostics and %E for identifiers, not %s.
10393
10394 2005-03-18  Jan Hubicka  <jh@suse.cz>
10395             Dale Johannesen  <dalej@apple.com>
10396
10397         * basic-block.h (scale_bbs_frequencies_int,
10398         scale_bbs_frequencies_gcov_type): Declare.
10399         * cfg.c (RDIV): New macro.
10400         (update_bb_frequency_for_threading): Fix.
10401         * basic-block.h (scale_bbs_frequencies_int,
10402         scale_bbs_frequencies_gcov_type): New.
10403         * cfgloopmanip.c (scale_bbs_frequencies): Kill.
10404         (scale_loop_frequencies, duplicate_loop_to_header_edge): Use
10405         scale_bbs_frequencies_int.
10406         * tree-ssa-loop-ch.c (copy_loop_headers): Fix profiling info.
10407
10408 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
10409
10410         * config/m32r/m32r-protos.h: Remove the prototypes for
10411         call_address_operand, symbolic_operand, seth_add3_operand,
10412         cmp_int16_operand, uint16_operand, reg_or_int16_operand,
10413         reg_or_uint16_operand, reg_or_cmp_int16_operand,
10414         two_insn_const_operand, move_src_operand,
10415         move_double_src_operand, move_dest_operand,
10416         eqne_comparison_operator, signed_comparison_operator,
10417         large_insn_p, conditional_move_operand, carry_compare_operand,
10418         m32r_block_immediate_operand, extend_operand,
10419         reg_or_eq_int16_operand, int8_operand, and
10420         reg_or_zero_operand.
10421         * config/m32r/m32r.c (call_address_operand, symbolic_operand,
10422         seth_add3_operand, int8_operand, cmp_int16_operand,
10423         uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
10424         reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
10425         reg_or_zero_operand, two_insn_const_operand, move_src_operand,
10426         move_double_src_operand, move_dest_operand,
10427         eqne_comparison_operator, signed_comparison_operator,
10428         extend_operand, small_insn_p, large_insn_p,
10429         conditional_move_operand, carry_compare_operand,
10430         m32r_block_immediate_operand): Move to predicates.md.
10431         (MAX_MOVE_BYTES): Move to m32r.h.
10432         * config/m32r/m32r.h (PREDICATE_CODES): Remove.
10433         * config/m32r/m32r.md: Include predicates.md.
10434         * config/m32r/predicates.md: New.
10435
10436         * config/pa/pa-protos.h: Add prototypes for magic_milli and
10437         shadd_constant_p.
10438         * config/pa/pa.c (reg_or_0_operand, call_operand_address,
10439         symbolic_operand, symbolic_memory_operand,
10440         reg_or_0_or_nonsymb_mem_operand, reg_before_reload_operand,
10441         indexed_memory_operand, move_dest_operand, move_src_operand,
10442         prefetch_cc_operand, prefetch_nocc_operand,
10443         reg_or_cint_move_operand, pic_label_operand, fp_reg_operand,
10444         arith_operand, arith11_operand, pre_cint_operand,
10445         post_cint_operan, arith_double_operand, ireg_or_int5_operand,
10446         ireg_operand, int5_operand, uint5_operand, int11_operand,
10447         uint32_operand, arith5_operand, and_operand, ior_operand,
10448         lhs_lshift_operand, lhs_lshift_cint_operand, arith32_operand,
10449         pc_or_label_operand, div_operand, plus_xor_ior_operator,
10450         shadd_operand, movb_comparison_operator,
10451         cmpib_comparison_operator): Move to predicates.md.
10452         (magic_milli, shadd_constant_p): Make it extern.
10453         * config/pa/pa.h (PREDICATE_CODES): Remove.
10454         * config/pa/pa.md: Include predicates.md.
10455         * config/pa/predicates.md: New.
10456
10457         * config/v850/v850.h (PREDICATE_CODES): Remove a nonexistent
10458         predicate.
10459
10460 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
10461
10462         * hooks.c, hooks.h, intl.c, opts.h, prefix.c, tree-gimple.c,
10463         config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
10464         config/alpha/freebsd.h, config/alpha/linux.h,
10465         config/alpha/netbsd.h, config/alpha/osf5.h,
10466         config/alpha/vms.h, config/arc/arc.c, config/arc/arc.h,
10467         config/h8300/h8300-protos.h, config/h8300/h8300.c,
10468         config/h8300/h8300.h, config/ia64/unwind-ia64.c,
10469         doc/cppopts.texi: Update copyright.
10470
10471 2005-03-18  Jan Hubicka  <jh@suse.cz>
10472
10473         PR middle-end/20225
10474         * cgraph.c (cgraph_mark_reachable_node): Assert that it is not called
10475         too late.
10476         * varasm.c (find_decl_and_mark_needed): Mark needed only when not
10477         called too late.
10478
10479 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
10480
10481         * tree-into-ssa.c (find_idf): Use VEC_quick_push instead of
10482         VEC_safe_push.
10483
10484 2005-03-18  Paolo Bonzini  <bonzini@gnu.org>
10485
10486         * combine.c (gen_binary): Remove.
10487         (known_cond, simplify_shift_const, find_split_point,
10488         combine_simplify_rtx, simplify_if_then_else, simplify_set,
10489         simplify_logical, expand_field_assignment, extract_left_shift,
10490         force_to_mode, if_then_else_cond, apply_distributive_law,
10491         simplify_and_const_int, simplify_shift_const, gen_lowpart_for_combine,
10492         simplify_comparison, reversed_comparison): Replace with
10493         simplify_gen_binary, simplify_gen_relational or
10494         distribute_and_simplify_rtx.
10495         (distribute_and_simplify_rtx): New function.
10496
10497 2005-03-18  Alexey Neyman  <alex.neyman@auriga.ru>
10498             Paolo Bonzini  <gcc.gnu.org>
10499
10500         * calls.c (setjmp_call_p, special_function_p): Update comments
10501         at the head of the functions.
10502
10503 2005-03-18  Jan Hubicka  <jh@suse.cz>
10504
10505         * tree-cfg.c (fold_cond_expr_cond): Use boolean types for condition.
10506
10507         * cgraph.c (cgraph_remove_node): Avoid loop in code deciding whether
10508         function body should be released; do not proactively release function
10509         bodies in non-unit-at-a-time mode.
10510
10511 2005-03-18  Ralf Corsepius  <ralf.corsepius@rtems.org>
10512
10513         * config/i386/t-rtems-i386 (MULTILIBS): Remove k6, athlon,
10514         mno-fp-ret-in-387 multilib variants.
10515
10516 2005-03-18  Richard Sandiford  <rsandifo@redhat.com>
10517
10518         * common.opt (m): Remove.
10519         * opts.c (handle_option): Pass 'm' options to set_target_switch if
10520         table lookup fails.
10521         (common_handle_option): Remove OPT_m case.
10522
10523 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
10524
10525         * builtins.c (fold_builtin_bitop): Take decomposed arguments
10526         of CALL_EXPR.
10527         (fold_builtin_1): Update a call to fold_builtin_bitop.
10528
10529         * builtins.c (fold_builtin_signbit): Take decomposed arguments
10530         of CALL_EXPR.
10531         (fold_builtin_1): Update a call to fold_builtin_signbit.
10532
10533 2005-03-17  Dorit Naishlos  <dorit@il.ibm.com>
10534
10535         PR tree-optimization/20474
10536         * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Check the
10537         size_type of the relevant pointer. Check for COMPLETE_TYPE_P.
10538
10539 2005-03-17  Kazu Hirata  <kazu@cs.umass.edu>
10540
10541         * config/h8300/h8300-protos.h: Remove prototypes for
10542         general_operand_src, general_operand_dst, single_one_operand,
10543         single_zero_operand, call_insn_operand,
10544         two_insn_adds_subs_operand, small_call_insn_operand,
10545         jump_address_operand, bit_operand, bit_memory_operand,
10546         stack_pointer_operand, const_int_gt_2_operand,
10547         const_int_ge_8_operand, const_int_qi_operand,
10548         const_int_hi_operand, incdec_operand, bit_operator,
10549         nshift_operator, eqne_operator, gtle_operator,
10550         gtuleu_operator, iorxor_operator.
10551         Add prototypes for h8sx_shift_type h8sx_classify_shift and
10552         h8300_ldm_stm_parallel.
10553         * config/h8300/h8300.c (h8sx_shift_type,): Move to
10554         h8300-protos.h.
10555         (SYMBOL_FLAG_FUNCVEC_FUNCTION, SYMBOL_FLAG_EIGHTBIT_DATA,
10556         SYMBOL_FLAG_TINY_DATA): Move to h8300.h.
10557         (h8300_ldm_stm_parallel): Make it extern.
10558         (h8300_ldm_parallel, h8300_stm_parallel,
10559         h8300_return_parallel, general_operand_src,
10560         general_operand_dst, h8300_dst_operand, h8300_src_operand,
10561         nibble_operand, reg_or_nibble_operand, single_one_operand,
10562         single_zero_operand, call_insn_operand,
10563         two_insn_adds_subs_operand, small_call_insn_operand,
10564         jump_address_operand, bit_operand, bit_memory_operand,
10565         stack_pointer_operand, const_int_gt_2_operand,
10566         const_int_ge_8_operand, const_int_qi_operand,
10567         const_int_hi_operand, incdec_operand, eqne_operator,
10568         gtle_operator, gtuleu_operator, iorxor_operator, bit_operator,
10569         h8sx_binary_memory_operator, h8sx_unary_memory_operator,
10570         h8sx_unary_shift_operator, h8sx_binary_shift_operator,
10571         nshift_operator): Move to predicates.md.
10572         * config/h8300/h8300.h (PREDICATE_CODES): Remove.
10573         * config/h8300/h8300.md: Include predicates.md.
10574         * config/h8300/predicates.md: New.
10575
10576 2005-03-17  Richard Henderson  <rth@redhat.com>
10577
10578         * config.gcc (ia64*-*-hpux*): Add extra_options.
10579         * config/ia64/hpux.h (SUBTARGET_SWITCHES): Remove.
10580         (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
10581         * config/ia64/ia64.c (ia64_fixed_range_string): Remove.
10582         (ia64_tls_size_string, ia64_tune_string): Remove.
10583         (ia64_tune): Init to PROCESSOR_ITANIUM2.
10584         (TARGET_DEFAULT_TARGET_FLAGS): New.
10585         (TARGET_HANDLE_OPTION): New.
10586         (ia64_override_options): Move options parsing ...
10587         (ia64_handle_option): ... here.  New.
10588         * config/ia64/ia64.h (target_flags, MASK_BIG_ENDIAN, MASK_GNU_AS,
10589         MASK_GNU_LD, MASK_NO_PIC, MASK_VOL_ASM_STOP, MASK_ILP32,
10590         MASK_REG_NAMES, MASK_NO_SDATA, MASK_CONST_GP, MASK_AUTO_PIC,
10591         MASK_INLINE_FLOAT_DIV_LAT, MASK_INLINE_FLOAT_DIV_THR,
10592         MASK_INLINE_INT_DIV_LAT, MASK_INLINE_INT_DIV_THR,
10593         MASK_INLINE_SQRT_LAT, MASK_INLINE_SQRT_THR, MASK_DWARF2_ASM,
10594         MASK_EARLY_STOP_BITS, TARGET_BIG_ENDIAN, TARGET_GNU_AS, TARGET_GNU_LD,
10595         TARGET_NO_PIC, TARGET_VOL_ASM_STOP, TARGET_ILP32, TARGET_REG_NAMES,
10596         TARGET_NO_SDATA, TARGET_CONST_GP, TARGET_AUTO_PIC,
10597         TARGET_INLINE_FLOAT_DIV_LAT, TARGET_INLINE_FLOAT_DIV_THR,
10598         TARGET_INLINE_INT_DIV_LAT, TARGET_INLINE_INT_DIV_THR,
10599         TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_INT_DIV, TARGET_INLINE_SQRT_LAT,
10600         TARGET_INLINE_SQRT_THR, TARGET_INLINE_SQRT, TARGET_DWARF2_ASM,
10601         TARGET_EARLY_STOP_BITS): Remove.
10602         (TARGET_ILP32): Default false.
10603         (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS): Remove.
10604         (enum ia64_inline_type): New.
10605         (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
10606         * config/ia64/ia64.md: Update for new definitions of
10607         TARGET_INLINE_INT_DIV, TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_SQRT.
10608         * config/ia64/ia64.opt: New file.
10609         * config/ia64/ilp32.opt: New file.
10610
10611 2005-03-17  H.J. Lu  <hongjiu.lu@intel.com>
10612
10613         PR target/18380
10614         * config/ia64/unwind-ia64.c (_Unwind_FindTableEntry): Removed.
10615
10616 2005-03-17  Kazu Hirata  <kazu@cs.umass.edu>
10617
10618         * config/h8300/h8300.c (h8300_init_once): Use MASK_H8300S_1
10619         instead of MASK_H8300S.
10620         * config/h8300/h8300.h (target_flags, MASK_H8300S, MASK_MAC,
10621         MASK_INT32, MASK_ADDRESSES, MASK_QUICKCALL, MASK_SLOWBYTE,
10622         MASK_NORMAL_MODE, MASK_RELAX, MASK_H8300H, MASK_ALIGN_300,
10623         MASK_H8300SX, TARGET_INT32, TARGET_ADDRESSES,
10624         TARGET_QUICKCALL, TARGET_SLOWBYTE, TARGET_H8300H,
10625         TARGET_H8300XS, TARGET_NORMAL_MODE, TARGET_ALIGN_300,
10626         TARGET_SWITCHES): Remove.
10627         (TARGET_H8300S): Redefine interms of TARGET_H8300S_1 and
10628         TARGET_H8300SX.
10629         * config/h8300/h8300.opt: New.
10630
10631         * config/alpha/alpha.opt, config/arc/arc.opt,
10632         config/h8300/h8300.opt, config/mips/mips.opt: Add copyright
10633         notices.
10634
10635 2005-03-17  Ian Lance Taylor  <ian@airs.com>
10636
10637         * gmon.c: Remove.
10638
10639 2005-03-17  Richard Sandiford  <rsandifo@redhat.com>
10640
10641         * config/arc/arc.c (arc_cpu_string): Make static.  Default to "base"
10642         (arc_text_string, arc_data_string, arc_rodata_string): Make static.
10643         (TARGET_HANDLE_OPTION): Override default.
10644         (arc_handle_option): New function.
10645         (arc_init): Remove code to set arch_cpu_string.
10646         * config/arc/arc.h (target_flags, TARGET_MASK_MANGLE_CPU)
10647         (TARGET_MANGLE_CPU, TARGET_MASK_MANGLE_CPU_LIBGCC)
10648         (TARGET_MANGLE_CPU_LIBGCC, TARGET_MASK_ALIGN_LOOPS, TARGET_ALIGN_LOOPS)
10649         (TARGET_MASK_BIG_ENDIAN, TARGET_BIG_ENDIAN, TARGET_MASK_NO_COND_EXEC)
10650         (TARGET_NO_COND_EXEC, TARGET_SWITCHES, TARGET_DEFAULT)
10651         (SUBTARGET_SWITCHES, arc_cpu_string, arc_text_string, arc_data_string)
10652         (arc_rodata_string, TARGET_OPTIONS): Delete.
10653         * config/arc/arc.opt: New file.
10654
10655 2005-03-17  Richard Henderson  <rth@redhat.com>
10656
10657         * doc/extend.texi (Weak Pragmas): New section.
10658         (attribute alias): Clarify that target must be in the same
10659         translation unit.
10660
10661 2005-03-17  Richard Henderson  <rth@redhat.com>
10662
10663         * config/alpha/alpha.opt: New file.
10664         * config/alpha/alpha.c (alpha_tune): New.  Rename all existing uses
10665         of alpha_cpu.
10666         (alpha_cpu_string, alpha_tune_string, alpha_tp_string,
10667         alpha_fprm_string, alpha_fptm_string): Make static.
10668         (alpha_tls_size_string): Remove.
10669         (alpha_handle_option): New.
10670         (override_options): Update for alpha_cpu/alpha_tune split.
10671         (alpha_file_start): Likewise.
10672         (TARGET_DEFAULT_TARGET_FLAGS): New.
10673         (TARGET_HANDLE_OPTION): New.
10674         * config/alpha/alpha.h (alpha_tune): Declare.
10675         (MASK_FP, MASK_FPREGS, TARGET_FPREGS, MASK_GAS, TARGET_GAS,
10676         MASK_IEEE_CONFORMANT, TARGET_IEEE_CONFORMANT, MASK_IEEE, TARGET_IEEE,
10677         MASK_IEEE_WITH_INEXACT, TARGET_IEEE_WITH_INEXACT, MASK_BUILD_CONSTANTS,
10678         TARGET_BUILD_CONSTANTS, MASK_FLOAT_VAX, TARGET_FLOAT_VAX, MASK_BWX,
10679         TARGET_BWX, MASK_MAX, TARGET_MAX, MASK_FIX, TARGET_FIX, MASK_CIX,
10680         TARGET_CIX, MASK_EXPLICIT_RELOCS, TARGET_EXPLICIT_RELOCS,
10681         MASK_SMALL_DATA, TARGET_SMALL_DATA, MASK_TLS_KERNEL, TARGET_TLS_KERNEL,
10682         MASK_SMALL_TEXT, TARGET_SMALL_TEXT, MASK_LONG_DOUBLE_128,
10683         TARGET_LONG_DOUBLE_128, MASK_CPU_EV5, TARGET_CPU_EV5, MASK_CPU_EV6,
10684         TARGET_CPU_EV6, MASK_SUPPORT_ARCH): Remove.
10685         (TARGET_SWITCHES, TARGET_OPTIONS): Remove.
10686         (TARGET_DEFAULT): Remove MASK_FP.
10687         (TARGET_FP): Redefined based on TARGET_SOFT_FP.
10688         (TARGET_SUPPORT_ARCH): Default on if HAVE_AS_EXPLICIT_RELOCS.
10689         (alpha_cpu_string, alpha_tune_string, alpha_fprm_string,
10690         alpha_fptm_string, alpha_tp_string, alpha_mlat_string,
10691         alpha_tls_size_string): Remove.
10692         * config/alpha/alpha.md (prefetch): Use alpha_cpu.
10693         (attribute tune): Rename from attribute cpu.
10694         * config/alpha/ev4.md: Update to match.
10695         * config/alpha/ev5.md, config/alpha/ev6.md: Likewise.
10696         * config/alpha/freebsd.h (TARGET_DEFAULT): Remove MASK_FP.
10697         * config/alpha/linux.h (TARGET_DEFAULT): Likewise.
10698         * config/alpha/netbsd.h (TARGET_DEFAULT): Likewise.
10699         * config/alpha/osf5.h (TARGET_DEFAULT): Likewise.
10700         * config/alpha/vms.h (TARGET_DEFAULT): Likewise.
10701
10702 2005-03-16  James E. Wilson  <wilson@specifixinc.com>
10703
10704         * config/ia64/ia64.c (issue_nops_and_insn): Check first_insn attribute,
10705         and return without creating new state if before_nops_num is nonzero.
10706         * config/ia64/ia64.md (first_insn): New attribute.
10707         (alloc): Set it to yes.
10708
10709 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
10710
10711         * tree-vectorizer.c (new_vec_stmt_info): Initialize
10712         STMT_VINFO_SUBVARS to NULL.
10713         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
10714
10715 2005-03-16 Dale Johannesen  <dalej@apple.com>
10716
10717         * rtlanal.c (find_first_parameter_load):  Rewrite to
10718         return actual first param load or the call if none,
10719         instead of first in block, when not all loads exist.
10720
10721 2005-03-16  Roger Sayle  <roger@eyesopen.com>
10722
10723         * optabs.c (expand_copysign_absneg): Make static.
10724         * optabs.h (expand_copysign_absneg): Delete prototype.
10725         * config/rs6000/rs6000.md (copysigntf3): Delete pattern.
10726
10727 2005-03-16  Richard Henderson  <rth@redhat.com>
10728
10729         PR middle-end/15700
10730         * varasm.c (struct alias_pair): Rename from struct output_def_pair.
10731         (alias_pairs): Rename from output_defs.
10732         (find_decl_and_mark_needed): Split out from assemble_alias.
10733         (do_assemble_alias): New.
10734         (assemble_output_def): Remove.
10735         (finish_aliases_1, finish_aliases_2): New.
10736         (process_pending_assemble_output_defs): Remove.
10737         (assemble_alias): Defer aliases for which we don't yet have a
10738         non-external decl for the target symbol.
10739         * passes.c (rest_of_decl_compilation): Register variables with cgraph.
10740         * cgraphunit.c (cgraph_finalize_compilation_unit): Use finish_aliases_1.
10741         * toplev.c (compile_file): Use finish_aliases_2 instead of
10742         process_pending_assemble_output_defs.
10743         * tree.h (finish_aliases_1, finish_aliases_2): Declare.
10744         (process_pending_assemble_output_defs): Remove.
10745
10746 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
10747
10748         Fix PR tree-optimization/20489
10749
10750         * tree-ssa-alias.c (push_fields_onto_fieldstack): DTRT
10751         for empty structures.
10752
10753 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
10754
10755         Fix PR tree-optimization/20490
10756
10757         * tree-ssa-pre.c (create_expression_by_pieces): Use
10758         force_gimple_operand on result of fold.
10759
10760 2005-03-16  Andrew Pinski  <pinskia@physics.uc.edu>
10761
10762         * config/i386/emmintrin.h (_mm_extract_epi16): Correct the number
10763         of closing parenthesis.
10764
10765 2005-03-16  Kazu Hirata  <kazu@cs.umass.edu>
10766
10767         * builtins.c (expand_movstr): Update a call to
10768         fold_builtin_strcpy.
10769         (expand_builtin_strncpy): Update a call to
10770         fold_builtin_strncpy.
10771         (fold_builtin_strcpy, fold_builtin_strncpy): Take decomosed
10772         arguments of CALL_EXPR.
10773         (fold_builtin_1): Update calls to fold_builtin_strcpy and
10774         fold_builtin_strncpy.
10775         * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
10776         * tree.h: Update the prototypes of fold_builtin_strcpy and
10777         fold_builtin_strncpy.
10778
10779 2005-03-16  Steven Bosscher  <stevenb@suse.de>
10780             Dorit Naishlos  <dorit@il.ibm.com>
10781
10782         * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Copy
10783         UNITS_PER_SIMD_WORD to a local variable to avoid a "division by zero"
10784         error.
10785
10786 2005-03-16  Steven Bosscher  <stevenb@suse.de>
10787
10788         * tree-inline.c (walk_type_fields, walk_tree,
10789         walk_tree_without_duplicates): Move from here...
10790         * tree.c: ...to here.
10791
10792 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
10793
10794         * BASE-VER, DATESTAMP, DEV-PHASE: New files.
10795         * Makefile.in (gcc_version, gcc_version_trigger, ): Delete.
10796         (BASEVER, DEVPHASE, DATESTAMP, BASEVER_c, DEVPHASE_c, DATESTAMP_c)
10797         (BASEVER_s, DEVPHASE_s, DATESTAMP_s): New variables.
10798         (version): Define using $(BASEVER_c).
10799         (Makefile, config.status, build/gcov-iov.o): No longer depends on
10800         version.c.
10801         (version.o): Depend on version files; add custom generation command.
10802         (prefix.o): Define BASEVER on command line.
10803         (s-iov): Depend on version files; adjust command.
10804         (TEXI_CPP_FILES, TEX_IGCC_FILES, TEXI_GCCINT_FILES, TEXI_CPPINT_FILES):
10805         Add gcc-vers.texi.
10806         (gcc-vers.texi): New rule.
10807         (doc/%.info, doc/%.dvi): Add -I . to command line.
10808         (doc/gccinstall.dvi): Likewise.
10809         (PACKAGE): Delete.  All uses replaced with "gcc".
10810         * aclocal.m4: Do not include gcc-version.m4.
10811         * configure.ac: Do not invoke TL_AC_GCC_VERSION.
10812         Do not AC_SUBST nor AC_DEFINE PACKAGE or VERSION.
10813         Set is_release based on contents of DEV-PHASE.
10814         Set gcc_version based on contents of BASE-VER.
10815         Define WIN32_REGISTRY_KEY only if the user overrode the default.
10816         * config.in, configure: Regenerate.
10817         * gccbug.in: Determine version of GCC in use at runtime.
10818         * gcov-iov.c: Get version number and development phase from
10819         command line, not by including version.c.
10820         * intl.c: Replace all uses of PACKAGE with "gcc".
10821         * libada-mk.in: Delete unused "gcc_version" variable.
10822         * prefix.c: Default WIN32_REGISTRY_KEY to BASEVER.
10823         * version.c: (VERSUFFIX): New hook for redistributors; adjust
10824         commentary to match.
10825         (version_string): Put together from pieces.
10826         * config/alpha/x-vms: Do not use $(gcc_version).
10827         * config/i386/t-nwld: Likewise.
10828         * doc/include/gcc-common.texi: Include gcc-vers.texi for
10829         version-GCC and DEVELOPMENT.
10830
10831 2005-03-15  Roger Sayle  <roger@eyesopen.com>
10832
10833         PR tree-optimization/17454
10834         * tree.c (tree_size): Add case for TREE_BINFO.
10835         * fold-const.c (fold_checksum_tree): Only clear the overloaded
10836         field TYPE_CACHED_VALUES if TYPE_CACHED_VALUES_P is set.
10837
10838 2005-03-15  Roger Sayle  <roger@eyesopen.com>
10839
10840         * optabs.c (expand_doubleword_mult): Avoid clobbering op0 and
10841         op1 whilst expanding the signed widenening multiply variant.
10842
10843 2005-03-15  Richard Sandiford  <rsandifo@redhat.com>
10844
10845         * toplev.c (display_target_options): Avoid unused variable warning if
10846         TARGET_SWITCHES and TARGET_OPTIONS are both undefined.
10847         * config/mips/mips.c (mips_arch_string, mips_tune_string): Make static.
10848         (mips_isa_string, mips_abi_string, mips_fix_vr4130_string): Delete.
10849         (mips_isa): Initialize to MIPS_ABI_DEFAULT.
10850         (mips_isa_info): New variable.
10851         (mips_parse_cpu): Remove the first argument and leave the caller
10852         to report errors.
10853         (TARGET_HANDLE_OPTION): Override default.
10854         (mips_handle_option): New function.  Move option validation code from...
10855         (override_options): ...here.  Update calls to mips_parse_cpu.
10856         * config/mips/mips.h (mips_arch_string, mips_tune_string)
10857         (mips_isa_string, mips_abi_string, TARGET_OPTIONS)
10858         (SUBTARGET_TARGET_OPTIONS): Delete.
10859         * config/mips/mips.opt (mabi=, march=, mflush-func=, mips)
10860         (mno-flush-func, mtune=): New options.
10861
10862 2005-03-15  Roger Sayle  <roger@eyesopen.com>
10863             Richard Henderson  <rth@redhat.com>
10864
10865         * real.c (c4x_single_format, c4x_extended_format): Provide values
10866         for signbit_ro for c4x's single and extended floating point formats.
10867         * optabs.c (expand_copysign): Use the floating point format's
10868         signbit_ro for expanding via expand_copysign_absneg, and it's
10869         signbit_rw field for expanding via expand_copysign_bit.
10870
10871 2005-03-15  Dorit Naishlos  <dorit@il.ibm.com>
10872
10873         * tree-vectorizer.h (unknown_alignment_for_access_p): Replaced by
10874         known_alignment_for_access_p.
10875         (known_alignment_for_access_p): New.
10876         (do_peeling_for_alignment): Field made int instead of bool and renamed
10877         to peeling_for_alignment.
10878         (LOOP_DO_PEELING_FOR_ALIGNMENT): Renamed to LOOP_PEELING_FOR_ALIGNMENT.
10879         * tree-vect-analyze.c (vect_determine_vectorization_factor): New. This
10880         functionality used to be in vect_analyze_operations.
10881         (vect_analyze_operations): Code to determine vectorization factor was
10882         moved to vect_determine_vectorization_factor.
10883         (vect_enhance_data_refs_alignment): Update to correct alignment when it
10884         is known instead of -1.  Set LOOP_PEELING_FOR_ALIGNMENT to peeling
10885         factor.
10886         (vect_analyze_loop): Call vect_determine_vectorization_factor (used to
10887         be part of vect_analyze_operations).
10888         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Use fold when
10889         creating the guard condition, as the number of iterations may be
10890         constant.
10891         (slpeel_tree_peel_loop_to_edge): Use new name of
10892         LOOP_DO_PEELING_FOR_ALIGNMENT. Set it to 0 instead of false.
10893         * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Handle known
10894         alignment case more efficiently. Use LOOP_PEELING_FOR_ALIGNMENT.
10895         (vect_do_peeling_for_alignment): Use fold.
10896         (vect_transform_loop): Use new name of LOOP_DO_PEELING_FOR_ALIGNMENT.
10897
10898         (vect_update_inits_of_dr): Renamed to
10899         vect_update_init_of_dr.
10900         (vect_update_inits_of_drs): Use new name of vect_update_inits_of_dr.
10901         (vectorizable_store): Fix assertion to use == instead of =.
10902
10903 2005-03-15  Daniel Jacobowitz  <dan@codesourcery.com>
10904
10905         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't clear
10906         call_used_regs for wCG registers.
10907
10908 2005-03-15  Ulrich Weigand  <uweigand@de.ibm.com>
10909
10910         * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
10911         for non-offsettable memory references to cope with outstanding reload
10912         replacements, take 2.
10913
10914 2005-03-15  Uros Bizjak  <uros@kss-loka.si>
10915
10916         PR target/18668
10917         * config/i386/i386.h (x86_fisttp): New.
10918         (TARGET_FISTTP): New macro.
10919         * config/i386/i386.c (x86_fisttp): Set for NOCONA.
10920         (output_fix_trunc): Add fisttp parameter.  Generate fisttp x87
10921         instruction when fisttp flag is set.
10922         * config/i386/i386-protos.h (output_fix_trunc): Change declaration.
10923
10924         * config/i386/i386.md (type attribute): Add fisttp.
10925         (unit attribute): Set to i387 for fisttp type.
10926         (X87MODEF, X87MODEI, SSEMODEF, SSEMODEI24): New mode macros.
10927         (fix_truncxfdi2, fix_truncxfsi2): Generate fisttp patterns for
10928         TARGET_FISTTP.
10929         (fix_truncdfdi2, fix_truncsfdi2, fix_truncdfsi2, fix_truncsfsi2):
10930         Generate fisttp patterns for TARGET_FISTTP. Implement using mode
10931         macros.
10932         (fix_truncxfhi2, fix_truncdfhi2, fix_truncsfhi2): Generate fisttp
10933         patterns for TARGET_FISTTP.  Enable patterns for
10934         (TARGET_FISTTP && !TARGET_SSE_MATH). Implement using mode macros.
10935         (fix_trunc<mode>_i387_fisttp_1, fix_trunc<mode>_i387_fisttp,
10936         fix_trunc<mode>_i387_fisttp_with_temp): New instruction patterns to
10937         implement fisttp x87 insn.
10938         (fix_trunc*_i387_fisttp splitters): New patterns.
10939         (*fix_truncdi_i387, *fix_truncsi_i387, *fix_trunchi_i387):
10940         Rename to *fix_trunc<mode>_i387_1.  Implement using mode macros.
10941         Disable patterns for TARGET_FISTTP.  Add comment about FLAGS_REG
10942         clobber.
10943         (fix_truncdi_memory, fix_truncdi_nomemory, fix_trunchi_nomemory):
10944         Rename to fix_trunc<mode>_i387 and fix_trunc<mode>_i387_with_temp.
10945         Implement using mode macros. Disable patterns for TARGET_FISTTP.
10946         (fix_truncsi_memory, fix_truncsi_nomemory, fix_trunchi_memory,
10947         fix_trunchi_nomemory): Rename to fix_trunc<mode>_i387 and
10948         fix_trunc<mode>_i387_with_temp. Implement using mode macros.
10949         Disable patterns for TARGET_FISTTP.
10950         (fix_trunc*_i387 splitters): Implement usign mode macros.
10951         (fix_truncdfdi_sse, fix_truncsfdi_sse, fix_truncdfsi_sse,
10952         fix_truncsfsi_sse): Disable for (TARGET_FISTTP && !TARGET_SSE_MATH).
10953         (fix_trunx*_sse peephole2s): Implement using mode macros.
10954
10955 2005-03-15  J"orn Rennecke <joern.rennecke@st.com>
10956
10957         PR rtl-optimization/20291
10958         * combine.c (try_combine): If splitting fails, re-try with
10959         original combined pattern, i.e. before clobber stripping.
10960
10961 2005-03-14  Eric Christopher  <echristo@redhat.com>
10962
10963         * config/mips/mips.h (DWARF_CIE_DATA_ALIGNMENT): Change for
10964         STACK_GROWS_DOWNWARD.
10965
10966 2005-03-14  Roger Sayle  <roger@eyesopen.com>
10967
10968         * real.h (struct real_format): Split the signbit field into two
10969         two fields, signbit_ro and signbit_rw.
10970         * real.c (ieee_single_format, mips_single_format, ieee_double_format,
10971         mips_double_format, ieee_extended_motorola_format,
10972         ieee_extended_intel_96_format, ieee_extended_intel_96_round_53_format,
10973         ieee_extended_intel_128_format, ibm_extended_format,
10974         mips_extended_format, ieee_quad_format, mips_quad_format,
10975         vax_f_format, vax_d_format, vax_g_format, i370_single_format,
10976         i370_double_format, c4x_single_format, c4x_extended_format,
10977         real_internal_format): Update initializers for new field.
10978         * builtins.c (expand_builtin_signbit): Use signbit_ro field of the
10979         real_format structure.
10980         * optabs.c (expand_absneg_bit, expand_copysign): Use signbit_rw
10981         field of the real_format structure.
10982
10983 2005-03-14  Daniel Berlin <dberlin@dberlin.org>
10984
10985         Fix PR tree-optimization/20458
10986
10987         * tree-flow-inline.h (mark_call_clobbered): Don't fiddle
10988         DECL_EXTERNAL on STRUCT_FIELD tags.
10989         (clear_call_clobbered): Ditto.
10990         * tree-ssa-operands.c (note_addressable): Make sure the original
10991         variable doesn't slip into the addressable list if we have
10992         subvars.
10993         * tree-tailcall.c (suitable_for_tail_opt_p): Look at STRUCT_FIELD
10994         tags too.
10995
10996 2005-03-14  Geoffrey Keating  <geoffk@apple.com>
10997
10998         * doc/cppopts.texi (-fexec-charset): Add concept index entry.
10999         (-fwide-exec-charset): Likewise.
11000         (-finput-charset): Likewise.
11001         * doc/invoke.texi (Warning Options): Document -Wnormalized=.
11002         * c-opts.c (c_common_handle_option): Handle -Wnormalized=.
11003         * c.opt (Wnormalized): New.
11004
11005 2005-03-14  Devang Patel  <dpatel@apple.com>
11006
11007         * doc/invoke.texi: Add reference to Visibility document.
11008
11009 2005-03-14  Richard Sandiford  <rsandifo@redhat.com>
11010
11011         * config.gcc (mips*-*-*): Rename MASK_SPLIT_ADDRS to
11012         MASK_SPLIT_ADDRESSES.
11013         * config/mips/mips.h (target_flags, mips_fix_vr4130_string): Delete.
11014         (MASK_INT64, MASK_LONG64, MASK_SPLIT_ADDR, MASK_NO_FUSED_MADD)
11015         (MASK_EXPLICIT_RELOCS, MASK_MEMCPY, MASK_SOFT_FLOAT)
11016         (MASK_FLOAT64, MASK_ABICALLS, MASK_XGOT, MASK_LONG_CALLS)
11017         (MASK_64BIT, MASK_EMBEDDED_DATA, MASK_BIG_ENDIAN)
11018         (MASK_SINGLE_FLOAT, MASK_MAD, MASK_4300_MUL_FIX, MASK_MIPS16)
11019         (MASK_NO_CHECK_ZERO_DIV, MASK_BRANCHLIKELY)
11020         (MASK_UNINIT_CONST_IN_RODATA, MASK_FIX_R4000, MASK_FIX_R4400)
11021         (MASK_FIX_SB1, MASK_FIX_VR4120, MASK_VR4130_ALIGN)
11022         (MASK_FP_EXCEPTIONS, MASK_DIVIDE_BREAKS, MASK_PAIRED_SINGLE)
11023         (MASK_MIPS3D, MASK_SYM32, MASK_DEBUG, MASK_DEBUG_D)
11024         (MASK_MIPS_TFILE, TARGET_INT64, TARGET_LONG64, TARGET_FLOAT64)
11025         (TARGET_64BIT, TARGET_SPLIT_ADDRESSES, TARGET_DEBUG_MODE)
11026         (TARGET_DEBUG_D_MODE, TARGET_MEMCPY, TARGET_ABICALLS)
11027         (TARGET_XGOT, TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT)
11028         (TARGET_LONG_CALLS, TARGET_EMBEDDED_DATA)
11029         (TARGET_UNINIT_CONST_IN_RODATA, TARGET_BIG_ENDIAN)
11030         (TARGET_SINGLE_FLOAT, TARGET_DOUBLE_FLOAT, TARGET_MAD)
11031         (TARGET_FUSED_MADD, TARGET_4300_MUL_FIX, TARGET_CHECK_ZERO_DIV)
11032         (TARGET_DIVIDE_TRAPS, TARGET_BRANCHLIKELY, TARGET_FIX_SB1)
11033         (TARGET_FIX_R4000, TARGET_FIX_R4400, TARGET_FIX_VR4120)
11034         (TARGET_FIX_VR4130, TARGET_VR4130_ALIGN, TARGET_FP_EXCEPTIONS)
11035         (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D, TARGET_SYM32)
11036         (TARGET_EXPLICIT_RELOCS): Delete.
11037         (TARGET_SWITCHES, SUBTARGET_TARGET_SWITCHES): Delete.
11038         (TARGET_OPTIONS): Remove entry for -mfix-vr4130.
11039         * config/mips/mips.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
11040         (override_options): Set MASK_LONG64 if -mint64 is given and no
11041         -mlongXX option is.  Complain about -mint64 -mlong32.
11042         (override_options, CMP_BUILTINS, mips_bdesc, sb1_desc): Rename
11043         MASK_PAIRED_SINGLE to MASK_PAIRED_SINGLE_FLOAT.
11044         * config/mips/mips.opt: New file.
11045
11046 2005-03-14  Richard Sandiford  <rsandifo@redhat.com>
11047
11048         * config.gcc (extra_options): New variable for listing option files.
11049         Add ${cpu_type}/${cpu_type}.opt to it if that file exists.
11050         * configure.ac (extra_opt_files): New AC_SUBST variable.
11051         (tm_file_list, tm_include_list): Include options.h first.
11052         * configure: Regenerate.
11053         * Makefile.in (extra_opt_files, ALL_OPT_FILES): New variables.
11054         (s-options): Use $(ALL_OPT_FILES) instead of $(lang_opt_files)
11055         (s-options-h): New rule.
11056         (options.h): Depend on it.
11057         (TEXI_GCCINT_FILES): Add options.texi.
11058         * hooks.h (hook_bool_size_t_constcharptr_int_true): Declare.
11059         * hooks.c (hook_bool_size_t_constcharptr_int_true): New function.
11060         * target.h (gcc_target): Add default_target_flags and handle_option.
11061         * target-def.h (TARGET_DEFAULT_TARGET_FLAGS)
11062         (TARGET_HANDLE_OPTION): New macros.
11063         (TARGET_INITIALIZER): Include them.
11064         * opt-functions.awk (opt_args, nth_arg): New functions.
11065         (switch_flags): Handle the "Target" flag.
11066         (var_args): Delete.
11067         (var_name): Use opt_args and nth_arg.
11068         (var_set, var_ref): Likewise.  Handle "Mask" and "InverseMask".
11069         * opth-gen.awk: Declare target_flags.  Declare MASK_* and TARGET_*
11070         macros for the "Mask" and "InverseMask" options.
11071         * opts.h (cl_var_cond): New enum.
11072         (cl_option): Replace the "has_set_value" and "set_value" fields with
11073         "var_cond" and "var_value".
11074         (CL_TARGET): New macro.
11075         (option_enabled, print_filtered_help): Declare.
11076         (decode_options): Move definition.
11077         * opts.c (handle_option): Search for the original option before
11078         removing any "no-" prefix.  Handle CL_TARGET.  Adjust for the new
11079         var_cond and var_value fields.  Use targetm.handle_option to handle
11080         target options.
11081         (decode_options): Set target_flags to targetm.default_target_flags.
11082         (print_filtered_help): Make global.  Handle CL_TARGET.
11083         (option_enabled): New function.
11084         * toplev.c (target_switches): Guard with #ifdef TARGET_SWITCHES.
11085         (display_target_options, set_target_switch, print_switch_values)
11086         (default_pch_valid_p): Guard uses of target_switches with
11087         #ifdef TARGET_SWITCHES.  Also...
11088         (display_target_options): Display the CL_TARGET entries in cl_options.
11089         (set_target_option): Don't complain about the "" option when
11090         TARGET_SWITCHES is undefined.
11091         (print_switch_values): Use option_enabled.
11092         (default_pch_valid_p): Check cl_options[] when looking for something
11093         that has changed the value of target_flags.
11094         * c.opt: Remove documentation from top of file.
11095         * doc/gccint.texi: Add an "Options" chapter.  Include options.texi.
11096         * doc/sourecebuild.texi: Refer to the new options documentation
11097         instead of c.opt.  Document machine-specific .opt files.
11098         * doc/tm.texi (target_flags): Say that this variable is declared
11099         by options.h.
11100         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Document.
11101         (TARGET_SWITCHES, TARGET_OPTIONS): Refer to the option files as
11102         an alternative.
11103         * doc/options.texi: New file.
11104
11105 2005-03-14  Alexandre Oliva  <aoliva@redhat.com>
11106
11107         PR middle-end/18628
11108         * cse.c (fold_rtx_mem): Don't fold a load from a jumptable into a
11109         register.
11110
11111 2005-03-14  Alexandre Oliva  <aoliva@redhat.com>
11112
11113         PR c++/20280
11114         * gimplify.c (gimplify_cond_expr): Add fallback argument.  Use a
11115         temporary variable of pointer type if an lvalues is required.
11116         (gimplify_modify_expr_rhs): Request an rvalue from it.
11117         (gimplify_expr): Pass fallback on.
11118
11119 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
11120
11121         * cfgbuild.c: Update comments.
11122
11123 2005-03-14  Roger Sayle  <roger@eyesopen.com>
11124
11125         PR rtl-optimization/17236
11126         * optabs.c (expand_doubleword_mult): New helper function split out
11127         from expand_binop.  Permute the order in which instructions are
11128         emitted to minimize the number of simultaneously live registers.
11129         (expand_binop): Call expand_doubleword_mult to synthesize a double
11130         word multiplication.
11131
11132 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
11133
11134         * basic-block.h: Update the prototypes of cached_make_edge and
11135         rtl_make_eh_edge.
11136         * cfg.c (cached_make_edge): Take edge_cache representing one
11137         row of the adjacency matrix of edges.
11138         * cfgbuild.c (make_label_edge, rtl_make_eh_edge): Likewise.
11139         (make_edges): Initialize edge_cache to represent one row of
11140         the adjacency matrix of edges.
11141
11142 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
11143
11144         * tree-ssa-phiopt.c (minmax_replacement, blocks_in_phiopt_order):
11145         New functions.
11146         (tree_ssa_phiopt): Use blocks_in_phiopt_order and minmax_replacement.
11147         Remove unused removed_phis variable.
11148         (conditional_replacement): Use build1/build2.
11149         (abs_replacement): Use last_and_only_stmt and build1/build2.
11150
11151 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
11152
11153         * builtin-attrs.def (ATTR_NOVOPS, ATTR_NOVOPS_LIST,
11154         ATTR_PURE_NOTHROW_NOVOPS_LIST): New.
11155         * builtins.def (ATTR_MATHFN_FPROUNDING): Use NOVOPS.
11156         (BUILT_IN_PREFETCH): Set the NOVOPS attribute.
11157         * c-common.c (handle_novops_attribute): New function.
11158         (c_common_attribute_table): Add "no vops" entry.
11159         * c-decl.c (merge_decls): Copy DECL_IS_NOVOPS.
11160         * calls.c (flags_from_decl_or_type): Set ECF_NOVOPS.
11161         * tree-ssa-operands.c (get_call_expr_operands): Do not
11162         create virtual operands for calls with ECF_NOVOPS flag.
11163         * tree.h (DECL_IS_NOVOPS): New macro.
11164         (struct tree_decl): Add novops_flag.
11165         (ECF_NOVOPS): New constant.
11166
11167 2005-03-14  Uros Bizjak  <uros@kss-loka.si>
11168
11169         PR target/17688
11170         * config/i386/i386.c (x86_use_himode_fiop): New.
11171         (x86_use_simode_fiop): Rename from x86_use_fiop.
11172         * config/i386/i386.h (x86_use_himode_fiop): Declare.
11173         (TARGET_USE_HIMODE_FIOP): New.
11174         (x86_use_simode_fiop): Rename from x86_use_fiop.
11175         (TARGET_USE_SIMODE_FIOP): Rename from TARGET_USE_FIOP.
11176
11177         * config/i386/i386.md (X87MODEI12): New mode macro define.
11178         (*cmpfp_<mode>): Rename from *cmpfp_si.  Use X87MODEI12 mode macro
11179         to implement x87 FP compare with HImode input operands.
11180         (*fp_jcc_8<mode>_387, splitter): Rename from *fp_jcc_8_387.
11181         Use X87MODEI12 mode macro to handle HImode input operands.
11182         (*fop_sf_2<mode>_i387, *fop_sf_3<mode>_i387, *fop_df_2<mode>_i387,
11183         *fop_df_3<mode>_i387, *fop_xf_2<mode>_i387, *fop_xf_3<mode>_i387):
11184         Renamed from *fop_sf_2_i387, *fop_sf_3_i387, *fop_df_2_i387,
11185         *fop_df_3_i387, *fop_xf_2_i387, *fop_xf_3_i387. Use X87MODEI12 mode
11186         macro to implement x87 operators with HImode input operands.
11187         (fop splitters): Use X87MODEI12 mode macro to handle HImode
11188         input operands.
11189
11190 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
11191
11192         * tree-cfg.c (find_taken_edge_cond_expr): Use zero_p instead of
11193         integer_zerop.
11194         * tree-gimple.c (is_gimple_min_invariant): Consider overflowed
11195         constants invariant.
11196
11197 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
11198
11199         * basic-block.h (BB_VISITED): Removed.
11200         * cfganal.c (dfs_enumerate_from): Do not use BB_VISITED flag.
11201
11202 2005-03-14  Falk Hueffner  <falk@debian.org>
11203
11204         PR bootstrap/20424
11205         * config/alpha/alpha.c (alpha_fold_builtin_cmpbge): Fix typo.
11206
11207 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
11208
11209         * ggc-zone.c: Fix comment typos.
11210
11211         * alloc-pool.c, except.h, ggc-common.c, ggc-zone.c, ggc.h,
11212         stringpool.c, config/mips/mips-protos.h: Update copyright.
11213
11214 2005-03-14  Alan Modra  <amodra@bigpond.net.au>
11215
11216         * config/rs6000/rs6000-protos.h: Replace "struct rtx_def *"
11217         throughout with its typedef, "rtx".
11218         * config/rs6000/rs6000.c: Likewise.  Formatting fixes.
11219         (rs6000_tls_symbol_ref_1): Remove inline keyword.
11220         * config/rs6000/rs6000.h (REG_ALLOC_ORDER): Formatting.  Reorder
11221         regs in comment to match code.
11222
11223 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
11224
11225         * except.c (check_handled): Make it static.
11226         * except.h: Remove the corresponding prototype.
11227
11228         * function.c (get_func_frame_size): Make it static.
11229         * function.h: Remove the corresponding type.
11230
11231         * regclass.c (reg_class_superclasses, reg_class_subclasses):
11232         Make them static.
11233         * hard-reg-set.h: Remove the corresponding declarations.
11234
11235         * tree-cfg.c (verify_stmts): Check that
11236         bb_for_stmt (stmt) == bb for every PHI node and statement.
11237
11238 2005-03-14  Alan Modra  <amodra@bigpond.net.au>
11239
11240         * config.gcc: Remove excess indentation.
11241         (powerpc*-*-*, rs6000-*-*): Accept --with-cpu/tune power5 and 8548.
11242
11243 2005-03-13  Roger Sayle  <roger@eyesopen.com>
11244
11245         PR middle-end/19331
11246         * tree.c (get_unwidened): Treat CONVERT_EXPR and NOP_EXPR identically.
11247         * fold-const.c (fold_sign_changed_comparison): Likewise.
11248         (fold_binary): Optimize comparisons against widened operands if
11249         the extension is represented by a CONVERT_EXPR, same as a NOP_EXPR.
11250
11251 2005-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
11252
11253         * config/sparc/sparc.c (struct_value_alias_set): New global variable.
11254         (sparc_override_options): Initialize it.
11255         (sparc_struct_value_rtx): Set it on the MEM to be returned.
11256
11257 2005-03-13  David Edelsohn  <edelsohn@gnu.org>
11258
11259         * config/rs6000/predicates.md (mem_or_easy_const_operand): Delete.
11260         (reg_or_none500mem_operand): New predicate.
11261         (zero_reg_mem_operand): New predicate.
11262         * config/rs6000/rs6000.md (extendsfdf2): Change operand1 predicate
11263         to reg_or_none500mem_operand.
11264         (extendsfdf2_fpr): Add MEM alternative.
11265         (extenddftf2_internal): Change operand2 predicate to
11266         zero_reg_mem_operand.
11267
11268 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
11269
11270         * ggc-zone.c: Rewritten.
11271
11272         * alloc-pool.c (dump_alloc_pool_statistics): Don't print statistics
11273         if there are none.
11274         * configure.ac: Define GGC_ZONE for --with-gc=zone.
11275         * config.in: Regenerated.
11276         * configure: Regenerated.
11277         * gengtype.c (write_types_process_field, write_func_for_structure):
11278         Pass new argument to gt_pch_note_object.
11279         * ggc-common.c (struct ptr_data): Add TYPE.
11280         (gt_pch_note_object): Take TYPE argument and save it.
11281         (call_count): Update call to ggc_pch_count_object.
11282         (call_alloc): Update call to ggc_pch_alloc_object.
11283         (gt_pch_save): Call ggc_pch_prepare_write after paddng the PCH
11284         file.
11285         * ggc-none.c (rtl_zone, garbage_zone, ggc_alloc_zone_stat): Delete.
11286         * ggc-page.c (rtl_zone, tree_zone, garbage_zone)
11287         (ggc_alloc_zone_stat): Delete.
11288         (ggc_pch_count_object, ggc_pch_alloc_object): Add TYPE argument.
11289         * ggc.h (gt_pch_note_object, ggc_pch_count_object)
11290         (ggc_pch_alloc_object): Update prototypes.
11291         (garbage_zone): Delete.
11292         (tree_zone, rtl_zone, ggc_alloc_zone_stat, ggc_alloc_zone): Move to
11293         GGC_ZONE conditional.  Update.  Change tree_zone and rtl_zone into
11294         pointers.
11295         (tree_id_zone): New variable.
11296         (ggc_alloc_cleared_zone): Remove unused.
11297         (ggc_alloc_zone): Define.
11298         (ggc_alloc_rtvec, ggc_alloc_tree): Update to use ggc_alloc_zone.
11299         * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Use
11300         ggc_alloc_zone_stat.
11301         * stringpool.c (gt_pch_n_S): Update call to gt_pch_note_object.
11302         * tree.c (copy_node_stat, make_tree_binfo_stat, make_tree_vec_stat)
11303         (tree_cons_stat, build1_stat): Update call to ggc_alloc_zone_stat.
11304         (make_node_stat): Likewise.  Use tree_id_zone.
11305
11306 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
11307             Joseph S. Myers  <joseph@codesourcery.com>
11308
11309         * configure.ac: Check for MIPS TLS.
11310         * configure: Regenerated.
11311         * config/mips/mips-protos.h (enum mips_symbol_type): Add
11312         SYMBOL_TLS, SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL,
11313         SYMBOL_GOTTPREL, and SYMBOL_TPREL.
11314         * config/mips/mips.c (mips_regno_to_class): Handle V1_REG.
11315         (TARGET_HAVE_TLS, TARGET_CANNOT_FORCE_CONST_MEM): Define.
11316         (mips_classify_symbol, mips_symbolic_constant_p)
11317         (mips_symbolic_address_p, mips_symbol_insns): Handle TLS symbols.
11318         (mips_tls_operand_p, mips_call_tls_get_addr)
11319         (mips_legitimize_tls_address, mips_cannot_force_const_mem)
11320         (mips_tls_symbol_ref_1): New functions.
11321         (mips_legitimize_address, mips_legitimize_const_move): Call
11322         mips_legitimize_tls_address.
11323         (override_options): Handle V1_REG and TLS symbols.  Disable TLS
11324         for MIPS16.
11325         * config/mips/mips.h (enum reg_class, REG_CLASS_NAMES)
11326         (REG_CLASS_CONTENTS, GR_REG_CLASS_P): Include V1_REG.
11327         (mips_char_to_class): Document V1_REG.
11328         (HAVE_AS_TLS): Provide default.
11329         * config/mips/mips.md (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): New
11330         constants.
11331         (load_got<mode>): Renamed from *load_got<mode>.  Allow when
11332         !TARGET_ABICALLS.
11333         (tls_get_tp_<mode>): New instruction.
11334
11335 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
11336
11337         * configure.ac: Update checks for target tools.
11338         * configure: Regenerated.
11339
11340 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
11341
11342         * varasm.c (decl_tls_model): Check flag_shlib instead of flag_pic.
11343
11344 2005-03-13  Roger Sayle  <roger@eyesopen.com>
11345
11346         * expmed.c (expand_mult): Use synthetic multiplication sequences for
11347         more classes of DImode multiplication by constant.  Allow both
11348         multiplication by small negative constants (by performing a
11349         multiplication by a positive constant and negating the result) and
11350         multiplications by large powers of two, by using a left shift.
11351
11352 2005-03-13  Kazu Hirata  <kazu@cs.umass.edu>
11353
11354         * tree-into-ssa.c (find_idf): Speed up by putting the indexes
11355         of basic blocks into work_stack.
11356
11357         * builtin-attrs.def, c-lex.c, c-pragma.h, reg-stack.c,
11358         config/mips/vr.h: Update copyright.
11359
11360         * c-decl.c (c_init_decl_processing): Remove useless calls to
11361         build_function_type.
11362
11363         * builtins.c (fold_trunc_transparent_mathfn,
11364         fold_fixed_mathfn, fold_builtin_atan, fold_builtin_trunc,
11365         fold_builtin_floor, fold_builtin_ceil, fold_builtin_round,
11366         fold_builtin_lround, fold_builtin_bitop, fold_builtin_memcpy,
11367         fold_builtin_strcpy, fold_builtin_strncpy,
11368         fold_builtin_signbit): Use TYPE (TYPE (fndecl)) instead of
11369         TREE_TYPE (exp).
11370
11371         * builtins.c (expand_builtin_mathfn_3): Remove local variable
11372         before_call.
11373
11374         * lambda-code.c (lambda_compute_auxillary_space): Remove local
11375         variable determinant.
11376
11377         * tree-cfg.c (group_case_labels): Remove local variable type.
11378
11379         * tree-ssa-live.c (build_tree_conflict_graph): Remove local
11380         variable ann.
11381
11382         * tree-ssa-phiopt.c (value_replacement): Remove local variable
11383         result.
11384
11385 2005-03-13  Andy Hutchinson  <HutchinsonAndy@netscape.net>
11386
11387         PR target/18251
11388         * config/avr/avr.md (movmemhi): Rewrite as RTL loop.
11389         (*movmemqi_insn): Delete.
11390         (*movmemhi): Delete.
11391
11392 2005-03-13  Kazu Hirata  <kazu@cs.umass.edu>
11393
11394         * builtins.c (fold_builtin_classify): Take decomposed
11395         arguments of CALL_EXPR.
11396         (fold_builtin_1): Update a call to fold_builtin_classify.
11397
11398 2005-03-13  Joseph S. Myers  <joseph@codesourcery.com>
11399
11400         PR c/20402
11401         * c-parser.c (c_parser_struct_or_union_specifier): Don't fall
11402         through into call to parser_xref_tag after parse error.
11403         (c_parser_struct_declaration): Consistently return NULL_TREE on
11404         error.
11405
11406 2005-03-12  Daniel Berlin  <dberlin@dberlin.org>
11407
11408         * tree-flow-inline.h (ref_contains_array_ref): New function.
11409         (lookup_subvars_for_var): Ditto.
11410         (get_subvars_for_var): Ditto.
11411         (var_can_have_subvars): Ditto.
11412
11413         * tree-flow.h (mem_tag_kind): Add STRUCT_FIELD.
11414         (struct subvar): New type.
11415
11416         * tree-dfa.c (okay_component_ref_for_subvars): New function.
11417
11418         * tree-optimize.c (init_tree_optimization_passes): Call
11419         pass_create_structure_vars.
11420
11421         * tree-ssa-alias.c: Include vec.h.
11422         (init_alias_info): Don't auto-clear call clobbered on struct-field
11423         tags.
11424         (compute_flow_insensitive_aliasing): Handle subvars.
11425         (group_aliases): Handle STRUCT_FIELD aliases.
11426         (setup_pointers_and_addressables): Ditto.
11427         Don't mark variables non-addressable if they still have
11428         addressable subvars.
11429         Also mark subvars addressable when the real variable is marked
11430         addressable.
11431         (add_pointed_to_var): Try to prune the pointed-to set by only
11432         pointing to subvars when possible.
11433         Otherwise, make sure we set addresses_needed and pt_vars to
11434         properly include subvars.
11435         (bitpos_of_field): New function.
11436         (push_fields_onto_fieldstack): Ditto.
11437         (get_or_create_used_part_for): Ditto.
11438         (create_overlap_variables_for): Ditto.
11439         (find_used_portions): Ditto.
11440         (create_structure_vars): Ditto.
11441         (pass_create_structure_vars): New structure.
11442
11443         * tree-ssa-operands.c (finalize_ssa_v_must_defs): Remove assert.
11444         (get_expr_operands): Handle subvars.  Also try to turn
11445         COMPONENT_REF accesses into must-defs now that we can accurately
11446         portray it.
11447         (note_addressable): Try to only mark as addressable those subvars
11448         we know a COMPONENT_REF touches.
11449         (overlap_subvar): New function.
11450
11451         * tree-vect-analyze.c (vect_object_analysis): Add new parameter.
11452         Handle subvar storing.
11453         (vect_address_analysis): Update caller of vect_object_analysis.
11454
11455         * tree-vect-transform.c (vect_create_data_ref_ptr): Copy subvars.
11456
11457         * tree-vectorizer.h (struct _stmt_vec_info): Add subvars member.
11458         (STMT_VINFO_SUBVARS): New macro.
11459
11460         * common.opts: add flag_tree_salias.
11461
11462         * opts.c (decode_options): flag_tree_salias defaults to on.
11463
11464         * doc/invoke.texi: Document fdump-tree-svars and -ftree-salias.
11465
11466         * doc/tree-ssa.texi: Document structural alias analysis.
11467
11468 2005-03-12  Steven Bosscher  <stevenb@suse.de>
11469
11470         * tree-cfg.c (make_goto_expr_edges): Don't use error_mark_node.
11471         * tree-ssa-dce.c (mark_stmt_necessary): Don't check for it.
11472         * tree-ssa-operands.c (get_expr_operands): Likewise.
11473         (get_expr_operands): Likewise for ERROR_MARK.
11474
11475 2005-03-12  Kazu Hirata  <kazu@cs.umass.edu>
11476
11477         * tree-ssa.c (kill_redundant_phi_nodes): Remove local variable
11478         var.
11479
11480         * tree-ssa-phiopt.c (tree_ssa_phiopt): Remove local variable
11481         removed_phis.
11482
11483         * tree-ssa-pre.c (compute_avail): Remove local variable val.
11484         (mark_operand_necessary): Remove local variable ver.
11485
11486         * tree-vect-transform.c (vect_get_new_vect_var): Remove local
11487         variable prefix_len.
11488
11489         * value-prof.c (mod_subtract_transform): Remove local variable
11490         value.
11491
11492         * builtins.c (fold_builtin_exponent): Take decomposed
11493         arguments of CALL_EXPR.
11494         (fold_builtin_1): Update a call to fold_builtin_exponent.
11495
11496         * builtins.c (fold_builtin_logarithm): Take decomposed
11497         arguments of CALL_EXPR.
11498         (fold_builtin_1): Update a call to fold_builtin_logarithm.
11499
11500         * c-decl.c (c_init_decl_processing): Remove local variables
11501         ptr_ftype_void and ptr_ftype_ptr.
11502
11503         * gimplify.c (gimplify_expr): Remove local variables r0 and
11504         r1.
11505
11506         * reg-stack.c (move_for_stack_reg): Remove local variable
11507         push_insn.
11508         (compare_for_stack_reg): Remove local variable flags_user.
11509         (convert_regs_1): Remove local variable deleted.
11510
11511         * tree-if-conv.c (tree_if_convert_cond_expr): Remove local
11512         variable new_cond.
11513         (combine_blocks): Remove local variables exits and new_e.
11514
11515         * tree-inline.c (expand_call_inline): Remove local variable
11516         decl.
11517
11518         * tree-ssa-live.c (create_ssa_var_map,
11519         calculate_live_on_entry): Remove local variable snn.
11520
11521 2005-03-12  Geoffrey Keating  <geoffk@apple.com>
11522
11523         * c-lex.c (c_lex_with_flags): Add parameter to call to
11524         cpp_spell_token.
11525
11526 2005-03-11  Per Bothner  <per@bothner.com>
11527
11528         * c-tree.h (struct c_declarator): New id_loc field.
11529         * c-pragma.h (c_lex_with_flags): Take position reference.
11530         * c-lex.c (c_lex_with_flags): Set passed-in location from cpp token,
11531         iff USE_MAPPED_LOCATION. (Type doesn't match otherwise.)
11532         (c_lex): Pass dummy location to c_lex_with_flags.
11533         * c-parser.c (c_lex_one_token): Set c_token's location using
11534         c_lex_with_flags, instead of input_location, which might be "ahead".
11535         (c_parser_direct_declarator): Set declarator's id_loc from
11536         c_token's id_loc.
11537         * c-decl.c (grokdeclarator): Set DECL_SOURCE_LOCATION from
11538         declarator's id_loc, rather than probably-imprecise input_location.
11539         (build_id_declarator): Initialize c_declarator's id_loc field.
11540
11541 2005-03-11  Roger Sayle  <roger@eyesopen.com>
11542
11543         PR middle-end/20419
11544         * builtins.c (expand_builtin_signbit): Force the signbit's word
11545         into an integer register to avoid SUBREGs of floating point modes.
11546
11547 2005-03-12  Kazu Hirata  <kazu@cs.umass.edu>
11548
11549         * cfglayout.c, loop-doloop.c, profile.c, target-def.h,
11550         target.h, targhooks.c, tracer.c, tree-ssa-loop-ch.c,
11551         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, vec.c, vmsdbgout.c,
11552         config/m32r/m32r.md, config/xtensa/xtensa.h: Update copyright.
11553
11554 2005-03-11  David Edelsohn  <edelsohn@gnu.org>
11555
11556         PR rtl-optimization/20306
11557         * expr.c (emit_move_complex): Set try_int false if mode is
11558         MODE_COMPLEX_FLOAT and mov_optab exists for inner mode.  Only try
11559         emit_block_move if try_int is true.
11560
11561 2005-03-11  Richard Henderson  <rth@redhat.com>
11562
11563         PR target/20415
11564         * config/i386/mmx.md (vec_dupv4hi): Fix predicate.
11565         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Update
11566         to match.
11567
11568 2005-03-11  Richard Sandiford  <rsandifo@redhat.com>
11569
11570         * config/mips/mips.h (mips_fix_vr4130_string): Declare.
11571         (TARGET_FIX_VR4130): New macro.
11572         (TARGET_OPTIONS): Add -mfix-vr4130.
11573         (ISA_HAS_MACCHI): New macro.
11574         (ASM_SPEC): Add -mfix-vr4130.
11575         * config/mips/mips.c (mips_fix_vr4130_string): New variable.
11576         (override_options): Handle mips_fix_vr4130_string.
11577         (mips_avoid_hazards): Clear all_noreorder_p
11578         if we're working around VR4130 errata and the macc alternatives
11579         are not available.
11580         * config/mips/mips.md (mfhilo_<mode>): Turn into a define_expand.
11581         (*mfhilo_<mode>, *mfhilo_<mode>_macc): New insns.
11582         * config/mips/vr.h (DEFAULT_VR_ARCH): Set to mfix-vr4130.
11583         (MULTILIB_DEFAULTS): Remove leading "march=".
11584         (DRIVER_SELF_SPECS): Likewise.  Make -mfix-vr4130 imply -march=vr4130
11585         if no architecture option is given.
11586         * config/mips/t-vr (MULTILIB_OPTIONS): Use -mfix-vr4130 for the
11587         VR4130 multilibs.
11588         (MULTILIB_MATCHES): Map -march=vr4130 to the -mfix-vr4130 multilibs.
11589         * doc/invoke.texi: Document -mfix-vr4130.
11590
11591 2005-03-11  Richard Sandiford  <rsandifo@redhat.com>
11592
11593         * config/mips/mips.c (override_options): Only warn about -mint64
11594         deprecation if TARGET_INT64.
11595
11596 2005-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11597
11598         * builtin-attrs.def (ATTR_NONNULL_LIST, ATTR_NOTHROW_NONNULL,
11599         ATTR_CONST_NOTHROW_NONNULL, ATTR_PURE_NOTHROW_NONNULL,
11600         ATTR_MALLOC_NOTHROW_NONNULL): New "nonnull" attribute lists which
11601         are non-specific regarding the nonnull parameter positions.
11602         (ATTR_NONNULL_1_2, ATTR_NONNULL_1_4, ATTR_NOTHROW_NONNULL_1_2,
11603         ATTR_NOTHROW_NONNULL_1_4, ATTR_CONST_NOTHROW_NONNULL_1,
11604         ATTR_PURE_NOTHROW_NONNULL_1, ATTR_PURE_NOTHROW_NONNULL_1_2,
11605         ATTR_MALLOC_NOTHROW_NONNULL_1): Delete.
11606
11607         * builtins.def: Use the non-specific "nonnull" attibute lists.
11608
11609 2005-03-11  Zdenek Dvorak  <dvorakz@suse.cz>
11610
11611         * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
11612         single_pred_edge, single_succ, single_pred): Improve comments.
11613
11614 2005-03-11  Zdenek Dvorak  <dvorakz@suse.cz>
11615
11616         * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
11617         single_pred_edge, single_succ, single_pred): New inline functions.
11618         * bb-reorder.c (rotate_loop, find_traces_1_round,
11619         add_labels_and_missing_jumps, fix_up_fall_thru_edges,
11620         duplicate_computed_gotos): Use the single_succ/pred functions.
11621         * cfganal.c (forwarder_block_p): Ditto.
11622         * cfgbuild.c (compute_outgoing_frequencies): Ditto.
11623         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
11624         outgoing_edges_match, try_crossjump_to_edge, try_optimize_cfg,
11625         merge_seq_blocks): Ditto.
11626         * cfghooks.c (split_edge, tidy_fallthru_edges): Ditto.
11627         * cfglayout.c (fixup_reorder_chain): Ditto.
11628         * cfgloop.c (mark_single_exit_loops, update_latch_info,
11629         canonicalize_loop_headers, verify_loop_structure): Ditto.
11630         * cfgloopmanip.c (remove_path, unloop, loop_delete_branch_edge,
11631         mfb_update_loops, create_preheader, force_single_succ_latches,
11632         create_loop_notes): Ditto.
11633         * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
11634         force_nonfallthru_and_redirect, rtl_tidy_fallthru_edge,
11635         commit_one_edge_insertion, purge_dead_edges,
11636         cfg_layout_can_merge_blocks_p): Ditto.
11637         * except.c (sjlj_emit_function_enter): Ditto.
11638         * flow.c (init_propagate_block_info): Ditto.
11639         * function.c (thread_prologue_and_epilogue_insns): Ditto.
11640         * gcse.c (find_implicit_sets, bypass_conditional_jumps,
11641         insert_insn_end_bb): Ditto.
11642         * ifcvt.c (merge_if_block, find_if_block, find_if_case_1,
11643         find_if_case_2): Ditto.
11644         * lambda-code.c (perfect_nestify): Ditto.
11645         * lcm.c (optimize_mode_switching): Ditto.
11646         * loop-doloop.c (doloop_modify): Ditto.
11647         * loop-init.c (loop_optimizer_init): Ditto.
11648         * loop-iv.c (simplify_using_initial_values): Ditto.
11649         * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
11650         * loop-unswitch.c (unswitch_loop): Ditto.
11651         * modulo-sched.c (generate_prolog_epilog): Ditto.
11652         * predict.c (combine_predictions_for_insn, estimate_probability,
11653         tree_estimate_probability, last_basic_block_p,
11654         estimate_bb_frequencies): Ditto.
11655         * profile.c (branch_prob): Ditto.
11656         * regrename.c (copyprop_hardreg_forward): Ditto.
11657         * sched-rgn.c (is_cfg_nonregular, find_rgns, update_live): Ditto.
11658         * tracer.c (layout_superblocks): Ditto.
11659         * tree-cfg.c (tree_can_merge_blocks_p, tree_merge_blocks,
11660         cfg_remove_useless_stmts_bb, cleanup_control_flow,
11661         cleanup_control_expr_graph, disband_implicit_edges,
11662         tree_find_edge_insert_loc, bsi_commit_edge_inserts,
11663         tree_verify_flow_info, tree_make_forwarder_block,
11664         tree_forwarder_block_p, remove_forwarder_block,
11665         remove_forwarder_block_with_phi, merge_phi_nodes): Ditto.
11666         * tree-if-conv.c (tree_if_conversion): Ditto.
11667         * tree-mudflap.c (mf_build_check_statement_for): Ditto.
11668         * tree-ssa-dce.c (remove_dead_stmt): Ditto.
11669         * tree-ssa-dom.c (dom_opt_finalize_block): Ditto.
11670         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
11671         copy_loop_headers): Ditto.
11672         * tree-ssa-loop-im.c (loop_commit_inserts): Ditto.
11673         * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Ditto.
11674         * tree-ssa-loop-manip.c (split_loop_exit_edge, ip_normal_pos,
11675         lv_adjust_loop_entry_edge, tree_ssa_loop_version): Ditto.
11676         * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Ditto.
11677         * tree-ssa-loop-unswitch.c (simplify_using_entry_checks): Ditto.
11678         * tree-ssa-phiopt.c (tree_ssa_phiopt, value_replacement): Ditto.
11679         * tree-ssa-pre.c (compute_antic_aux, insert_aux, init_pre): Ditto.
11680         * tree-ssa-threadupdate.c (redirect_edges): Ditto.
11681         * tree-tailcall.c (independent_of_stmt_p, find_tail_calls,
11682         eliminate_tail_call, tree_optimize_tail_calls_1): Ditto.
11683         * tree-vect-analyze.c (vect_analyze_loop_form): Ditto.
11684         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
11685         * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard,
11686         slpeel_add_loop_guard): Ditto.
11687
11688 2005-03-11  James A. Morrison  <phython@gcc.gnu.org>
11689
11690         PR tree-optimization/15784
11691         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
11692         and -1 - A to ~A.
11693
11694         * stmt.c (expand_case): Don't change index_type.  Convert minval
11695         to the proper type.
11696
11697         PR tree-optimization/20130
11698         * fold-const.c (fold): Fold x * -1 into -x.
11699
11700 2005-03-11  Kaz Kojima  <kkojima@gcc.gnu.org>
11701
11702         PR rtl-optimization/20331
11703         * rtlanal.c (modified_between_p): Check its address first for MEM.
11704         (modified_in_p): Likewise.
11705
11706 2005-03-11  Joseph S. Myers  <joseph@codesourcery.com>
11707
11708         * config.gcc (hppa*64*-*-hpux11*): Use pa/t-hpux-shlib.
11709
11710 2005-03-10  Steven Bosscher  <stevenb@suse.de>
11711
11712         * expr.c (expand_expr_real_1): If possible, use a conditional
11713         move for expanding MIN_EXPR and MAX_EXPR.
11714         Use temp for moving around rtx-en.
11715
11716 2005-03-10  Andrew Pinski  <pinskia@physics.uc.edu>
11717
11718         PR rtl-opt/20412
11719         * simplify-rtx.c (simplify_relational_operation_1): Fix typo - check the
11720         correct mode.
11721
11722 2005-03-10  Roger Sayle  <roger@eyesopen.com>
11723
11724         * builtins.c (expand_builtin_signbit): Extend to handle floating
11725         point modes wider than the largest integer type, using the
11726         operand_subword_force function to obtain the signbit's word.
11727
11728 2005-03-10  Jakub Jelinek  <jakub@redhat.com>
11729
11730         PR target/20322
11731         * combine.c (try_combine): If recog_for_combine added CLOBBERs
11732         to NEWI2PAT, fail to combine if they are used by NEWPAT.
11733
11734 2005-03-10  Aldy Hernandez  <aldyh@redhat.com>
11735
11736         * doc/invoke.texi: Add 8540 to list of cpus in rs6000 cpu section.
11737
11738 2005-03-10  Kazu Hirata  <kazu@cs.umass.edu>
11739
11740         * tree-outof-ssa.c (analyze_edges_for_bb): Make the return
11741         type void.
11742         (perform_edge_inserts): Unconditionally call
11743         free_dominator_info.
11744
11745         * tree-outof-ssa.c (analyze_edges_for_bb): Update a comment.
11746
11747 2005-03-10  Bob Wilson  <bob.wilson@acm.org>
11748
11749         * config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Define.
11750
11751 2005-03-10  Nathan Sidwell  <nathan@codesourcery.com>
11752
11753         * bitmap.c (bitmap_copy): Remove manual loop unrolling.
11754
11755         * value-prof.c (rtl_find_values_to_profile): Use gcc_assert and
11756         gcc_unreachable.
11757         (rtl_register_value_prof_hooks,
11758         tree_value_profile_transformations,
11759         tree_register_value_prof_hooks): Likewise.
11760         * var-tracking.c (stack_adjust_offset_pre_post,
11761         variable_htab_free, variable_union, dataflow_set_different_2,
11762         count_uses, variable_was_changed, set_frame_base_location,
11763         set_variable_part, emit_note_insn_var_location, vt_emit_notes,
11764         vt_add_function_parameters): Likewise.
11765         * varasm.c (named_section_real, named_section, make_decl_rtl,
11766         asm_emit_uninitialised, assemble_integer, decode_addr_const,
11767         const_hash_1, compare_constant, copy_constant, force_const_mem,
11768         output_constant_pool_2, output_constant_pool_1, output_constant,
11769         output_constructor, make_decl_one_only, decl_tls_model,
11770         default_no_named_section, default_elf_select_section_1,
11771         default_unique_section_1): Likewise.
11772         * vec.c (vec_gc_o_reserve, vec_heap_o_reserve): Likewise.
11773         * vmsdbgout.c (addr_const_to_string): Likewise.
11774
11775         PR c++/20375
11776         * function.c (struct assign_parm_data_one): Remove last_named
11777         field.
11778         (assign_parm_find_data_types): Don't determine last_named.
11779         Reorder named_parm determination.
11780         (assign_parms): Only setup varargs on the last non-varadic
11781         parameter.
11782
11783 2005-03-10  Kazuhiro Inaoka  <inaoka.lazuhiro@renesas.com>
11784
11785         * config/m32r/m32r.md (load_sda_base_32): New pattern.  Loads
11786         sda base address on medium model.
11787
11788 2005-03-10  Zdenek Dvorak  <dvorakz@suse.cz>
11789
11790         * Makefile.in (tree-optimize.o): Add CFGLOOP_H dependence.
11791         * cfgloop.c (flow_loop_nodes_find): Export.
11792         * cfgloop.h (flow_loop_nodes_find, fix_loop_structure):
11793         Declare.
11794         * cfgloopmanip.c (fix_loop_structure): New function.
11795         * predict.c (predict_loops): Clean up the loops information.
11796         * tree-cfg.c (cleanup_tree_cfg_loop): New function.
11797         (tree_can_merge_blocks_p, remove_bb, tree_forwarder_block_p): Respect
11798         loop structure.
11799         * tree-flow.h (cleanup_tree_cfg_loop): Declare.
11800         (rewrite_into_loop_closed_ssa): Declaration changed.
11801         * tree-loop-linear.c (linear_transform_loops): Add argument to
11802         rewrite_into_loop_closed_ssa call.
11803         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
11804         * tree-ssa-loop-im.c (move_computations): Ditto.
11805         * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
11806         * tree-vectorizer.c (vectorize_loops): Ditto.
11807         * tree-optimize.c: Include cfgloop.h.
11808         (execute_todo): Choose whether to call cleanup_tree_cfg or
11809         cleanup_tree_cfg_loop.
11810         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables,
11811         (tree_unroll_loops_completely): Enable cleanup_tree_cfg_loop call.
11812         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Enable
11813         cleanup_tree_cfg_loop call.
11814         * tree-ssa-loop-manip.c (find_uses_to_rename_bb): New function.
11815         (find_uses_to_rename, rewrite_into_loop_closed_ssa): Support
11816         work on part of cfg.
11817
11818 2005-03-10  Jakub Jelinek  <jakub@redhat.com>
11819
11820         PR inline-asm/20314
11821         * gimplify.c (gimplify_asm_expr): Handle input/output constraints
11822         with multiple alternatives.
11823
11824         * stmt.c (parse_output_constraint): Fix a typo.
11825
11826 2005-03-09  Bob Wilson  <bob.wilson@acm.org>
11827
11828         * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Use "no-transform"
11829         assembly directive instead of deprecated "no-generics".
11830
11831 2005-03-09  Ulrich Weigand  <uweigand@de.ibm.com>
11832
11833         * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
11834         for non-offsettable memory references to cope with outstanding reload
11835         replacements.
11836         * config/s390/s390.md ("reload_outti"): Call find_replacement to
11837         avoid losing outstanding address reloads.
11838         ("reload_outdi", "reload_outdf"): Likewise.
11839
11840 2005-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11841
11842         * builtins.c (fold_builtin_cbrt, fold_builtin_pow): Rearrange
11843         code.  Add more cbrt transformations.
11844
11845 2005-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11846
11847         * fold-const.c (fold_unary_to_constant): Add FIX_ROUND_EXPR case.
11848
11849 2005-03-09  Kazu Hirata  <kazu@cs.umass.edu>
11850
11851         * fold-const.c (fold_unary, fold_binary, fold_ternary): Return
11852         NULL_TREE when a given tree is not simplified.
11853         (fold): Return the original tree when any of the functions
11854         mentioned above NULL_TREE.
11855
11856         * fold-const.c (fold_unary, fold_binary): Take decomposed
11857         arguments, code, type, op0, and op1 in case of fold_binary.
11858         (fold): Update calls to fold_unary and fold_binary.
11859
11860 2005-03-09  Roger Sayle  <roger@eyesopen.com>
11861
11862         * builtins.c (fold_builtin_unordered_cmp): Change prototype to take
11863         a fndecl and an arglist instead of a CALL_EXPR, exp.
11864
11865 2005-03-09  Kazu Hirata  <kazu@cs.umass.edu>
11866
11867         * cfglayout.c (fixup_reorder_chain): Remove old_bb.
11868
11869         * cfgrtl.c (cfg_layout_merge_blocks): Remove new_e.
11870
11871         * expr.c (expand_assignment): Remove orig_to_rtx.
11872
11873         * fold-const.c (int_const_binop): Remove no_overflow.
11874
11875         * ifcvt.c (noce_emit_move_insn): Remove inmode.
11876
11877         * loop-iv.c (get_biv_step_1): Remove lhs.
11878
11879         * loop-unroll.c (analyze_insns_in_loop): Remove preheader.
11880
11881         * real.c (real_nan): Remove neg.
11882
11883         * function.c (thread_prologue_and_epilogue_insns): Remove i
11884         and newinsn.
11885
11886         * tree-data-ref.c (array_base_name_differ_p): Remove ta and
11887         tb.
11888
11889         * tree-eh.c (tree_could_trap_p): Remove idx.
11890
11891         * tree-into-ssa.c (ann): Remove ann.
11892
11893         * tree-outof-ssa.c (num_nodes): Remove num_nodes.
11894
11895         * tree-sra.c (decide_block_copy): Remove inst_count.
11896
11897         * tree-ssa-alias.c (may_alias_p): Remove v_ann.
11898
11899         * tree-ssa-loop-im.c (lhs): Remove.
11900
11901         * cfgbuild.c (state, STATE, SET_STATE,
11902         BLOCK_USED_BY_TABLEJUMP, FULL_STATE): Move just before
11903         make_edges.
11904         (make_edges): Speed up by skipping blocks with BLOCK_ORIGINAL.
11905         (find_basic_blocks): Set the state of each basic block to
11906         BLOCK_NEW.
11907
11908 2005-03-08  Jeff Law  <law@redhat.com>
11909
11910         * tree-cfg.c (cleanup_control_flow): If removal of a computed
11911         goto results in the removal of edges in the CFG, then we need
11912         to recompute dominators.
11913
11914 2005-03-09  Ben Elliston  <bje@au.ibm.com>
11915
11916         * c-common.c (c_do_switch_warnings): Comment fix.
11917
11918 2005-03-08  Julian Brown  <julian@codesourcery.com>
11919
11920         * Patch from 2005-03-08 reverted for causing regressions and
11921         ppc-darwin bootstrap failure.
11922
11923 2005-03-08  Fariborz Jahanian <fjahanian@apple.com>
11924
11925         * config/rs6000/rs6000.c (invalid_arg_for_unprototyped_fn):
11926         Define the real function for ppc-darwin.
11927         * c-typeck.c (convert_arguments): Check for target-specific
11928         invalid argument call to unprototyped function.
11929         * target-def.h (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
11930         New Macro.
11931         * target.h (invalid_arg_for_unprototyped_fn): New field
11932         in struct calls.
11933         * targhooks.c (hook_invalid_arg_for_unprototyped_fn): New
11934         default target hook.
11935         * targhooks.h (hook_invalid_arg_for_unprototyped_fn):
11936         Declare.
11937
11938 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
11939
11940         * c-typeck.c (constructor_stack, constructor_range_stack,
11941         initializer_stack): Make them static.
11942
11943         * cfg.c (rbi_pool): Make it static.
11944
11945         * gimple-low.c (lower_stmt_body): Make it static.
11946         * tree-flow.h: Remove the corresponding prototype.  Don't
11947         declare lower_data.
11948
11949         * sched-deps.c (cache_size): Make it static.
11950
11951         * stor-layout.c (lang_adjust_rli): Make it static.
11952
11953 2005-03-08  Julian Brown  <julian@codesourcery.com>
11954
11955         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
11956         from being used for symbols with vague linkage when
11957         HAVE_GAS_COMDAT_GROUP is true.
11958
11959 2005-03-08  J"orn Rennecke <joern.rennecke@st.com>
11960
11961         * jump.c (invert_jump_1): Don't call redirect_jump_1 with
11962         nlabel == JUMP_LABEL (jump).
11963
11964 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
11965
11966         * c-common.c, c-opts.c, combine.c, cse.c, dojump.c,
11967         gimplify.c, tree-dfa.c, tree-ssa-loop-ivopts.c,
11968         tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-sink.c,
11969         tree-vect-analyze.c, tree.def, tree.h: Fix comment formatting.
11970
11971 2005-03-08  Alexey Neyman  <alex.neyman@auriga.ru>
11972
11973         PR c/14411
11974         * calls.c (flags_from_decl_or_type): Handle eturns_twice' attribute.
11975         * c-common.c (handle_returns_twice): New function.
11976         (c_common_attribute_table): Declare eturns_twice' attribute.
11977         * doc/extend.texi: Document eturns_twice' attribute.
11978         * tree.h (DECL_IS_RETURNS_TWICE): New macro.
11979         (struct tree_decl): Add returns_twice_flag.
11980
11981 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
11982
11983         * tree-ssa-phiopt.c: Fix a comment typo.
11984
11985         * c-semantics.c, cfghooks.c, diagnostic.h, loop-iv.c,
11986         loop-unswitch.c, modulo-sched.c, stor-layout.c, tree-gimple.h,
11987         config/i386/cygwin1.c, doc/cfg.texi, doc/objc.texi: Update
11988         copyright.
11989
11990 2005-03-08  Richard Henderson  <rth@redhat.com>
11991
11992         * config/alpha/alpha.c (code_for_builtin): Replace special-case
11993         builtin codes with ctzdi2, clzdi2, popcountdi2.
11994         (struct alpha_builtin_def): Add is_const.
11995         (zero_arg_builtins, one_arg_builtins, two_arg_builtins): Init it.
11996         (alpha_v8qi_u, alpha_v8qi_s, alpha_v4hi_u, alpha_v4hi_s): New.
11997         (alpha_init_builtins): Init them.  Set nothrow and const attributes
11998         on builtins.
11999         (alpha_fold_builtin_cmpbge, alpha_fold_builtin_zapnot,
12000         alpha_fold_builtin_extxx, alpha_fold_builtin_insxx,
12001         alpha_fold_builtin_mskxx, alpha_fold_builtin_umulh,
12002         alpha_fold_vector_minmax, alpha_fold_builtin_perr,
12003         alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb,
12004         alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw,
12005         alpha_fold_builtin_cttz, alpha_fold_builtin_ctlz,
12006         alpha_fold_builtin_ctpop, alpha_fold_builtin): New.
12007         (TARGET_FOLD_BUILTIN): New.
12008         * config/alpha/alpha.md (UNSPEC_CTTZ): Remove.
12009         (UNSPEC_CTLZ, UNSPEC_CTPOP): Remove.
12010         (ffsdi2): Use ctz.
12011         (cttz, builtin_cttz, builtin_ctlz, builtin_ctpop): Remove.
12012
12013 2005-03-08  Ira Rosen  <irar@il.ibm.com>
12014
12015         PR tree-optimization/20122
12016         * tree-vect-analyze.c (vect_object_analysis): Analyze initial
12017         condition of access function instead of base.
12018
12019 2005-03-07  Jeff Law  <law@redhat.com>
12020             Steven Bosscher  <stevenb@suse.de>
12021
12022         * tree-cfg.c (find_taken_edge_computed_goto): New function.
12023         (find_taken_edge): Call find_taken_edge_computed_goto as
12024         appropriate.  Allow any gimple invariant rather than just
12025         INTEGER_CST for VAL.
12026         (cleanup_control_flow): Cleanup a computed goto which has turned
12027         into a simple goto.
12028         (tree_merge_blocks): If block B has any forced labels, move
12029         them to the start of block A.
12030         * tree-ssa-dom.c (thread_across_edge): Allow threading across
12031         computed gotos as well.
12032         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Handle
12033         removal of unnecessary computed gotos too.
12034         (lookup_redirection_data): Fix type of INSERT argument.  Callers
12035         updated.
12036
12037 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
12038
12039         * tree-ssa-phiopt.c: Update copyright.  Fix indentations.
12040         Remove trailing spaces.
12041
12042         * gimplify.c (gimple_push_bind_expr, gimple_pop_bind_expr,
12043         unshare_all_trees): Make them static.
12044         * tree-gimple.h: Remove the corresponding prototypes.
12045
12046         * diagnostic.h: Remove unused prototype
12047         debug_output_buffer.
12048         * modulo-sched.c: Remove unused prototype
12049         set_row_column_for_ps.
12050
12051         * tree-ssa-phiopt.c (tree_ssa_phiopt,
12052         replace_phi_edge_with_variable): Remove unused variable i.
12053
12054 2005-03-07  Per Bothner  <per@bothner.com>
12055
12056         * tree.h (DECL_IS_BUILTIN): Reverted my patch from earlier today.
12057
12058 2005-03-06  Andrew Pinski  <pinskia@physics.uc.edu>
12059
12060         PR tree-opt/17671
12061         * tree-ssa-phiopt.c (tree_ssa_phiopt): Rewrite so we base the
12062         bbs on the COND_EXPR instead of the PHI_NODEs.
12063         (candidate_bb_for_phi_optimization): Remove.
12064         (replace_phi_with_stmt): Rename to ...
12065         (replace_phi_edge_with_variable): this and change so that we
12066         replace the phi argument instead of removing the PHI.
12067         (conditional_replacement): Change so we deal with PHI with more
12068         than two arguments.
12069         (value_replacement): Likewise.
12070         (abs_replacement): Likewise.
12071
12072 2005-03-07  Aldy Hernandez  <aldyh@redhat.com>
12073
12074         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_eq_bit to
12075         output_e500_flip_gt_bit.
12076
12077         * config/rs6000/rs6000.c (print_operand): case D: Print out bit 31
12078         as bit 31.
12079         (rs6000_generate_compare): Fix logic to look at the correct bits.
12080         (output_e500_flip_eq_bit): Rename to output_e500_flip_gt_bit.
12081         Look at GT bit.
12082         (rs6000_emit_sCOND): Rename gen_e500_flip_eq_bit to
12083         gen_e500_flip_gt_bit.  Rename gen_move_from_CR_eq_bit to
12084         gen_move_from_CR_gt_bit.
12085
12086         * config/rs6000/rs6000.md ("move_from_CR_eq_bit"): Change bit
12087         ("move_from_CR_eq_bit"): Rename to move_from_CR_gt_bit.
12088         (UNSPEC_MV_CR_EQ): Rename to UNSPEC_MV_CR_GT.
12089
12090         * config/rs6000/spe.md ("e500_cr_ior_compare"): New.
12091         (E500_CR_IOR_COMPARE): New constant.
12092
12093 2005-03-08  Earl Chew <earl_chew@agilent.com>
12094             David Billinghurst <David.Billinghurst@riotinto.com>
12095
12096         * config/i386/host-cygwin.c: New file to support precompiled
12097         headers on cygwin
12098         * config/i386/x-cygwin: Use host-cygwin.c on cygwin host
12099         * config.host: Use above files for cygwin host.
12100
12101 2005-03-07  David Edelsohn  <edelsohn@gnu.org>
12102
12103         * fold-const.c (fold_binary_op_with_conditional_arg): Fix typo
12104         ordering ops from earlier change.
12105
12106 2005-03-07  Per Bothner  <per@bothner.com>
12107
12108         Various fixes to allow us to again build if --enable-mapped-location:
12109         * c-decl.c (finish_function): Use SET_EXPR_LOCATION instead of
12110         unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
12111         * tree-cfg.c (remove_bb): If USE_MAPPED_LOCATION, change type of
12112         local variable loc. Change logic appropriately.
12113         * tree-vect-transform.c (vect_finish_stmt_generation): Use
12114         EXPR_LOCATION rather than EXPR_LOCUS if USE_MAPPED_LOCATION.
12115         * c-parser.c (c_parser_for_statement): Initialize loc variable.
12116         * tree.h (DECL_IS_BUILTIN): Temporarily revert definition of
12117         DECL_IS_BUILTIN in the USE_MAPPED_LOCATION because of jc1 issues.
12118
12119 2005-03-07  Richard Sandiford  <rsandifo@redhat.com>
12120
12121         PR rtl-optimization/19683
12122         * reload1.c (choose_reload_regs): Pass the number of bits, not the
12123         number of bytes, to smallest_int_for_mode.  Fix arguments to
12124         REG_CANNOT_CHANGE_MODE_P.
12125
12126 2005-03-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
12127
12128         * reorg.c (relax_delay_slots): Check that the jump is
12129         conditional before trying to invert it.
12130
12131 2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
12132
12133         * bb-reorder.c (max_entry_frequency, max_entry_frequency):
12134         Make them static.
12135
12136         * calls (stack_arg_under_construction): Make it static.
12137
12138         * flow.c (regs_live_at_setjmp): Make it static.
12139         * flow.h: Remove the corresponding prototype.
12140
12141         * reload1.c (reload_startobj, reload_firstobj,
12142         something_needs_operands_changed, reload_inherited,
12143         reload_inheritance_insn, reload_override_in,
12144         reload_spill_index): Make them static.
12145
12146         * recog.c (verify_changes): Make it static.
12147         * recog.h: Remove the corresponding prototype.
12148
12149         * cfgbuild.c (find_sub_basic_blocks): Remove.
12150         * basic-block.h: Remove the corresponding prototype.
12151         * cfgexpand.c, cfgrtl.c: Don't mention find_sub_basic_blocks
12152         in comments.
12153         * doc/cfg.texi: Don't mention find_sub_basic_blocks.
12154
12155         * tree-ssa-operands.c (check_build_stmt): Remove.
12156
12157         * stor-layout.c (set_alignment): Remove.
12158         * tree.h: Remove the corresponding prototype.
12159
12160         * tree-ssa-pre.c (has_abnormal_preds): Make it static.
12161
12162         * tree-ssa-dce.c (control_dependence_map,
12163         visited_control_parents): Make them static.
12164
12165         * cfghooks.c (verify_flow_info): Remove local variable
12166         num_bb_notes.
12167
12168         * cfgrtl.c (rtl_verify_flow_info_1): Remove local variable
12169         last_bb_seen.
12170
12171         * loop-unswitch.c (unswitch_loop): Remove local variable src.
12172
12173 2005-03-07  David Billinghurst <David.Billinghurst@riotinto.com>
12174
12175         * config/i386/cygwin1.c(mingw_scan): Use xstrdup in calls to putenv.
12176
12177 2005-03-07  Joseph S. Myers  <joseph@codesourcery.com>
12178
12179         * config/ia64/hpux.h (LINK_SPEC): Add -z.
12180         * config/ia64/ia64.c (ia64_function_value): Return a REG not a
12181         PARALLEL for an empty structure.
12182
12183 2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
12184
12185         * fold-const.c (fold_binary): Remove handling of RANGE_EXPR.
12186
12187         * fold-const.c (fold_binary): Unroll the very first "for"
12188         loop.
12189
12190 2005-03-06  David Edelsohn  <edelsohn@gnu.org>
12191
12192         * config/rs6000/predicates.md (branch_comparison_operator): Remove
12193         redundant match_code test.
12194         (scc_comparison_operator): Swap match_operand and match_code
12195         tests.
12196         (branch_positive_comparison_operator): Same.
12197         (trap_comparison_operator): Use comparison_operator and swap with
12198         match_code test.
12199
12200 2005-03-06  Marek Michalkiewicz  <marekm@amelek.gda.pl>
12201
12202         PR target/20288
12203         * config/avr/avr.c (print_operand): Add 'p' and 'r'.
12204         (out_movhi_r_mr): Read low byte of volatile MEM first.
12205         (out_movhi_mr_r): Write high byte of volatile MEM first.
12206
12207 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
12208
12209         * cselib.c (reg_values, reg_values_size): Make them static.
12210
12211         * cse.c (cse_reg_info_table): Make it static.
12212
12213         * fold-const.c (fold_unary): Use build1 instead of copy_node.
12214
12215 2005-03-06  Zdenek Dvorak  <dvorakz@suse.cz>
12216
12217         * cse.c (find_best_addr): Use canon_for_address.
12218
12219 2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
12220
12221         * cse.c (fold_rtx_subreg, fold_rtx_mem): New.
12222         (fold_rtx): Call fold_rtx_subreg and fold_rtx_mem to handle
12223         SUBREG and MEM, respectively.
12224
12225         * fold-const.c (fold_binary): Use code instead of t.
12226
12227         * fold-const.c (optimize_minmax_comparison): Take decomposed
12228         arguments code, type, op0, and op1 instead of t.
12229         (fold_binary): Update a call to optimize_minmax_comparison.
12230
12231         * fold-const.c (fold_range_test): Take decomposed arguments
12232         code, type, op0, and op1 instead of t.
12233         (fold_binary): Update a call to fold_range_test.
12234
12235         * fold-const.c (fold_binary_op_with_conditional_arg): Take
12236         decomposed arguments code, type, op0, and op1 instead of t.
12237         (fold_binary): Update a call to fold_range_test.
12238
12239 2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
12240
12241         * fold-const.c (fold_binary): Avoid directly using the original
12242         expression t as much as possible.
12243
12244 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
12245
12246         * c-semantics.c (build_stmt): Use TYPE_P instead of
12247         IS_NON_TYPE_CODE_CLASS.
12248         * tree.h (IS_NON_TYPE_CODE_CLASS): Remove.
12249         (NON_TYPE_CHECK): Use TYPE_P instead of
12250         IS_NON_TYPE_CODE_CLASS.
12251
12252         * fold-const.c (fold): Remove handling of binary expressions.
12253
12254 2005-03-05  James A. Morrison  <phython@gcc.gnu.org>
12255
12256         * doc/c-tree.texi: Wrap comments in @r{}.
12257         * doc/cpp.texi: Likewise.
12258         * doc/cppinternals.texi: Likewise.
12259         * doc/extend.texi: Likewise.
12260         * doc/md.texi: Likewise.
12261         * doc/objc.texi: Likewise.
12262         * doc/sourcebuild.texi: Likewise.
12263         * doc/tm.texi: Likewise.
12264         * doc/tree-ssa.texi
12265
12266 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
12267
12268         * predict.c (apply_return_prediction): Standardize PHI chain
12269         walking.
12270         * tree-ssa.c (ssa_redirect_edge): Likewise.
12271
12272         * genattrtab.c, genemit.c, genoutput.c, genrecog.c,
12273         gensupport.c, jump.c, tree-phinodes.c, unwind-dw2-fde-glibc.c:
12274         Update copyright.
12275
12276         * tree-phinodes.c (remove_phi_node): Drop the last argument.
12277         * tree-flow.h: Adjust the prototype for remove_phi_node.
12278         * lambda-code.c (perfect_nestify): Adjust a call to
12279         remove_phi_node.
12280         * tree-cfg.c
12281         (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
12282         * tree-outof-ssa.c (eliminate_virtual_phis, remove_ssa_form):
12283         Likewise.
12284         * tree-ssa-dce.c (remove_dead_phis): Likewise.
12285         * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
12286         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
12287         * tree-ssa.c (kill_redundant_phi_nodes): Likewise.
12288
12289         * combine.c (simplify_and_const_int): Use gen_int_mode instead
12290         of GEN_INT (trunc_int_for_mode (...)).
12291         * loop-iv.c (iv_number_of_iterations): Likewise.
12292         * postreload.c (reload_cse_move2add): Likewise.
12293         * simplify-rtx.c (simplify_const_unary_operation,
12294         simplify_const_binary_operation): Likewise.
12295         * stor-layout.c (get_mode_bounds): Likewise.
12296
12297         * fold-const.c (fold_binary): New.
12298         (fold): Call fold_binary on binary expressions.
12299
12300 2005-03-05  Richard Sandiford  <rsandifo@redhat.com>
12301
12302         * doc/invoke.texi: Document new MIPS -msym32 and -mno-sym32 options.
12303         * config/mips/mips.h (MASK_SYM32, TARGET_SYM32): New macros.
12304         (TARGET_SWITCHES): Add -msym32 and -mno-sym32.
12305         (ABI_HAS_64BIT_SYMBOLS): Set to false if TARGET_SYM32.
12306         (ASM_SPEC): Pass down -msym32 and -mno-sym32.
12307
12308 2005-03-04  Devang Patel  <dpatel@apple.com>
12309
12310         PR tree-optimization/18815
12311         * tree-if-conv.c (combine_blocks): Adjust loop header edges for
12312         loops with zero exit edges.
12313
12314 2005-03-04  Devang Patel  <dpatel@apple.com>
12315
12316         * doc/invoke.texi: Remove reference to webpage that does not exist.
12317
12318 2005-03-04  John David Anglin  <dave.danglin@nrc-cnrc.gc.ca>
12319             Joseph S. Myers  <joseph@codesourcery.com>
12320
12321         PR c++/19797
12322         * pa/elf.h, pa64-hpux.h, som.h (ASM_OUTPUT_EXTERNAL_REAL): Define.
12323         (ASM_OUTPUT_EXTERNAL): Call pa_hpux_asm_output_external.
12324         * pa-protos.h (pa_hpux_asm_output_external): Add prototype.
12325         * pa.c (get_plabel): Change argument to symbol_ref.  Call
12326         maybe_get_identifier instead of get_identifier.
12327         (pa_hpux_asm_output_external, pa_hpux_file_end): New functions.
12328         (struct deferred_plabel): Replace name field with symbol field.
12329         (TARGET_ASM_FILE_END): Define as pa_hpux_file_end if
12330         ASM_OUTPUT_EXTERNAL_REAL is defined.
12331         (output_global_address): Use output_addr_const for output of all
12332         symbol_refs.
12333         (output_deferred_plabels): Use symbol_ref instead of name for address
12334         output.
12335         * pa.h (SYMBOL_FLAG_REFERENCED, SYMBOL_REF_REFERENCED_P,
12336         ASM_OUTPUT_SYMBOL_REF): New macros.
12337         * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Use assemble_name_raw.  Update
12338         comment.
12339         (ASM_WEAKEN_LABEL): Use targetm.asm_out.globalize_label to globalize
12340         label.
12341
12342 2005-03-05  Joseph S. Myers  <joseph@codesourcery.com>
12343
12344         * config.gcc (hppa*64*-*-hpux11*): Use pa/pa-hpux1111.h for
12345         *-*-hpux11.[1-9]*, not just for *-*-hpux11.11.
12346
12347 2005-03-04  Jeff Law  <law@redhat.com>
12348
12349         * basic-block.h (rediscover_loops_after_threading): Declare.
12350         * tree-ssa-dom.c: Include cfgloop.h.
12351         (tree_ssa_dominator_optimize): Discover loops and some basic
12352         properties.  Remove forwarder blocks recreated by loop header
12353         canonicalization.  Also mark backedges in the CFG.
12354         * tree-ssa-threadupdate.c: Include cfgloop.h
12355         (rediscover_loops_after_threading): Define.
12356         (struct local_info): New field, JUMP_THREADED.
12357         (prune_undesirable_thread_requests): New function.
12358         (redirect_edges): Clear EDGE_ABNORMAL.  If edges were threaded
12359         then record that fact for the callers of redirct_edges.
12360         (thread_block): If BB has incoming backedges, then call
12361         prune_undesirable_thraed_requests.    Note when we are
12362         going to have to rediscover loop information.  Return a
12363         boolean indicating if any jumps were threaded.
12364         (thread_through_all_blocks): Bubble up boolean indicating
12365         if any jumps were threaded.
12366         * Makefile.in (tree-ssa-dom.o): Depend on cfgloop.h
12367         (tree-ssa-threadupdate.o): Similarly.
12368
12369 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
12370
12371         * fold-const.c (fold_ternary): Unroll the "for" loop to
12372         extract operands.
12373
12374 2005-03-04  Andrew Haley  <aph@redhat.com>
12375
12376         * unwind-dw2-fde-glibc.c (struct
12377         unw_eh_callback_data.check_cache): New field.
12378         (frame_hdr_cache): New.
12379         (_Unwind_IteratePhdrCallback): Add ext_dl_phdr_info.
12380         Cache frame header info.
12381
12382 2005-03-04  Richard Sandiford  <rsandifo@redhat.com>
12383
12384         * rtl.h (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
12385         (print_c_condition): Declare.
12386         * read-rtl.c (ptr_loc): New structure.
12387         (ptr_locs, ptr_loc_obstack, joined_conditions)
12388         (joined_conditions_obstack): New variables.
12389         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc)
12390         (get_rtx_ptr_loc, copy_rtx_ptr_loc, print_rtx_ptr_loc)
12391         (join_c_conditions, print_c_condition): New functions.
12392         (apply_macro_to_string): Associate the new string with the same
12393         source location as the old one.
12394         (add_condition_to_string): Use join_c_conditions.
12395         (read_string): Use set_rtx_ptr_loc to record a filename and line
12396         number for the string.
12397         (read_rtx): Initialize the new variables above.
12398         * genattrtab.c (write_test_expr, write_attr_value): Use
12399         print_c_condition.
12400         * genconditions.c (write_header): Don't define MAYBE_EVAL.  Move its
12401         comment above the GCC_VERSION check.
12402         (write_one_condition): Use print_rtx_ptr_loc and print_c_condition.
12403         Inline the definition of MAYBE_EVAL.
12404         * genemit.c (gen_expand, gen_split): Use print_rtx_ptr_loc.
12405         * genoutput.c (process_template): Likewise.
12406         * genpreds.c (write_predicate_subfunction): Likewise.
12407         (write_predicate_expr): Use print_c_condition.
12408         * genrecog.c (write_cond): Likewise.
12409         * gensupport.c (process_rtx): Use join_c_conditions to join the
12410         conditions of a define_insn_and_split.  Record a source location
12411         for the string after the "&&".
12412         (alter_test_for_insn): Use join_c_conditions.
12413
12414 2005-03-04  Andrew Pinski  <pinskia@physics.uc.edu>
12415
12416         Revert for now:
12417         2005-03-03  James A. Morrison  <phython@gcc.gnu.org>
12418         PR tree-optimization/15784
12419         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
12420         and -1 - A to ~A.
12421
12422 2005-03-04  Ben Elliston  <bje@au.ibm.com>
12423
12424         * gcc.c (option_map): Add --coverage.
12425         (LINK_COMMAND_SPEC): Pass -lgcov for `coverage'.
12426         (cc1_options): Pass -fprofile-arcs -ftest-coverage for `coverage'.
12427         * config/darwin.h: Pass -lgcov for `coverage'.
12428         * doc/invoke.texi (Debugging Options): Document --coverage.
12429
12430 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
12431
12432         * gcse.c (bypass_block): Use find_edge wherever possible.
12433
12434 2005-03-03  Daniel Berlin <dberlin@dbrelin.org>
12435
12436         Fix PR debug/20253
12437
12438         * c-opts.c (c_common_parse_file): Call start_source_file
12439         and end_source_file at the approriate times.
12440
12441         * dwarf2out.c (dwarf2out_finish): Don't auto-end
12442         the main file, it will be done for us now.
12443
12444 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
12445
12446         * fold-const.c (fold_ternary): New.
12447         (fold): Call fold_ternary on ternary expressions.  Remove
12448         handling of ternary expressions.
12449
12450 2005-03-03  James A. Morrison  <phython@gcc.gnu.org>
12451
12452         PR tree-optimization/15784
12453         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
12454         and -1 - A to ~A.
12455
12456 2005-03-03  David Edelsohn  <edelsohn@gnu.org>
12457
12458         * config/rs6000/predicates.md (branch_comparison_operator):
12459         Convert from C block to conditional format.
12460
12461 2005-03-03  Jan Hubicka  <jh@suse.cz>
12462
12463         * tree-dfa.c (add_referenced_var): Don't walk initializer of external
12464         and non-constant public variables.
12465
12466 2005-03-03  Kazu Hirata  <kazu@cs.umass.edu>
12467
12468         * tree-cfg.c (stmt_starts_bb_p): Clean up by replacing code
12469         with LABEL_EXPR.
12470
12471         * cfgexpand.c (construct_exit_block): Use EDGE_PRED instead of
12472         EDGE_I.
12473
12474         * tree-phinodes.c (remove_phi_node): Clean up by factoring out
12475         calls to release_ssa_name and release_phi_node.
12476
12477         * fold-const.c (fold): Remove handling of unary expressions.
12478
12479         * fold-const.c (fold_unary): Avoid directly using the original
12480         expression t as much as possible.
12481
12482 2005-03-03  Roger Sayle  <roger@eyesopen.com>
12483             Andrew Pinski  <pinskia@physics.uc.edu>
12484
12485         * jump.c (redirect_exp_1): If nlabel is a NULL pointer create a
12486         RETURN rtx, and not a LABEL_REF containing a NULL pointer.
12487
12488 2005-03-03  Hans-Peter Nilsson  <hp@axis.com>
12489
12490         Describe special registers SRP and MOF as allocatable registers.
12491         * config/cris/cris.c (cris_md_asm_clobbers): New function.
12492         (TARGET_MD_ASM_CLOBBERS): Define to cris_md_asm_clobbers.
12493         (cris_conditional_register_usage): Enable CRIS_MOF_REGNUM if
12494         TARGET_HAS_MUL_INSNS.
12495         (cris_print_operand) <case 'd'>: New case.
12496         <case REG>: Allow CRIS_MOF_REGNUM and CRIS_SRP_REGNUM.
12497         * config/cris/cris.h (CRIS_PC_REGNUM, CRIS_SRP_REGNUM): Don't
12498         define.
12499         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS)
12500         (REG_ALLOC_ORDER): Update for MOF.
12501         (enum reg_class): New members MOF_REGS, GENERAL_REGS and
12502         SPECIAL_REGS.
12503         (GENERAL_REGS): No longer a define of ALL_REGS.
12504         (REGNO_REG_CLASS, REG_CLASS_CONTENTS, REG_CLASS_NAMES)
12505         (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
12506         Adjust accordingly.
12507         (CRIS_SPECIAL_REGS_CONTENTS): New macro.
12508         (REG_CLASS_FROM_LETTER): Allocate 'h' and 'x'.
12509         (SECONDARY_RELOAD_CLASS): Define.
12510         (STACK_POINTER_REGNUM): Define as CRIS_SP_REGNUM.
12511         (FRAME_POINTER_REGNUM): Define as CRIS_FP_REGNUM.
12512         (ARG_POINTER_REGNUM): Define as CRIS_AP_REGNUM.
12513         (STATIC_CHAIN_REGNUM): Define as CRIS_STATIC_CHAIN_REGNUM.
12514         (REGISTER_MOVE_COST): Define.
12515         (PIC_OFFSET_TABLE_REGNUM): Define in terms of CRIS_GOT_REGNUM.
12516         * config/cris/cris.md (CRIS_GOT_REGNUM, CRIS_STATIC_CHAIN_REGNUM)
12517         (CRIS_FP_REGNUM, CRIS_SP_REGNUM, CRIS_SRP_REGNUM, CRIS_AP_REGNUM)
12518         (CRIS_MOF_REGNUM): New define_constants.
12519         ("*movsi_internal", "movhi", "movqi", "movsf"): Add alternatives for
12520         special registers.
12521         ("reload_inhi", "reload_outhi", "reload_inqi", "reload_outqi"):
12522         New patterns.
12523         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3")
12524         ("mulsidi3", "umulsidi3", "smulsi3_highpart", "umulsi3_highpart"):
12525         Adjust for MOF being properly described as a register.
12526         (indir_to_reg_split): Name this split.  Conditionalize on the
12527         destination register being a general register.
12528         (movei): Conditionalize on on operands 0 and 1 having the same
12529         register class.
12530
12531 2005-03-03  Alan Modra  <amodra@bigpond.net.au>
12532
12533         PR target/20277
12534         * config/rs6000/rs6000.c (rs6000_override_options): Don't allow
12535         -mcpu to override any other explicitly given flags.
12536
12537 2005-03-02  J"orn Rennecke <joern.rennecke@st.com>
12538
12539         * recog.c (verify_changes, confirm_change_group): New functions,
12540         broken out of apply_change_group.
12541         (apply_change_group): Use them.
12542         * recog.h (verify_change, confirm_change_group): Declare.
12543         * rtl.h (redirect_jump_2): Declare.
12544         * jump.c (redirect_exp, invert_exp): Delete.
12545         (invert_exp_1): Take second parameter.  Return value.  Changed caller.
12546         (redirect_jump_2): New function, broken out of redirect_jump.
12547         (redirect_jump): Use redirect_jump_1 and redirect_jump_2.
12548         (invert_jump): Use invert_jump_1 and redirect_jump_2.
12549         * ifcvt.c (dead_or_predicable): Use redirect_jump_2.
12550
12551 2005-03-02  Geoffrey Keating  <geoffk@apple.com>
12552
12553         * varasm.c (named_section): Use xstrdup rather than doing it by
12554         hand.
12555
12556         * config/darwin8.h (LIB_SPEC): Switch -lmx and -lSystem.
12557
12558 2005-03-02  Devang Patel  <dpatel@apple.com>
12559
12560         Undo PR tree-optimization/18815 fix.
12561
12562 2005-03-02  Devang Patel  <dpatel@apple.com>
12563
12564         PR tree-optimization/18815
12565         * tree-if-conv.c (combine_blocks): Adjust loop header edges for
12566         loops with zero exit edges.
12567
12568 2005-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12569
12570         * cfg.c (connect_src, connect_dest, disconnect_src,
12571         disconnct_dest): New.
12572         (unchecked_make_edge, remove_edge, redirect_edge_succ,
12573         redirect_edge_pred): Use the new functions.
12574
12575         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
12576         free_dominance_info only when needed.
12577
12578 2005-03-02  David Edelsohn  <edelsohn@gnu.org>
12579
12580         PR target/20276
12581         * config/rs6000/predicates.md (reg_or_cint64_operand): Fix typo.
12582         (reg_or_sub_cint64_operand): Same.
12583
12584 2005-03-02  Jeff Law  <law@redhat.com>
12585
12586         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Fix setting of
12587         CFG_ALTERED in the main DOM iteration loop.
12588
12589 2005-03-02  Mark Mitchell  <mark@codesourcery.com>
12590
12591         PR c++/19916
12592         * varasm.c (initializer_constant_valid_p): Allow conversions
12593         between OFFSET_TYPEs.  Tidy.
12594
12595 2005-03-02  Hans-Peter Nilsson  <hp@axis.com>
12596
12597         * config/cris/cris.md ("return"): Remove epilogue delay list
12598         sanity check.
12599
12600 2005-03-02  Daniel Jacobowitz  <dan@codesourcery.com>
12601
12602         * config/arm/linux-elf.h (ARM_FUNCTION_PROFILER): Do not use (PLT)
12603         for Thumb.
12604         * config/arm/netbsd-elf.h (ARM_FUNCTION_PROFILER): Likewise.
12605
12606 2005-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12607
12608         * cfgloop.h, cfgloopanal.c, cfgloopmanip.c, conflict.c,
12609         loop-init.c, loop-unroll.c, print-tree.c, reg-notes.def,
12610         config/m68k/m68k.c, config/mips/mips.h,
12611         config/rs6000/rs6000-protos.h, doc/contrib.texi,
12612         doc/include/gcc-common.texi: Update copyright.
12613
12614         PR middle-end/18029 and PR middle-end/18030
12615         * expr.c (optimize_bitfield_assignment_op): Add a special case
12616         to handle BIT_IOR_EXPR and BIT_XOR_EXPR.
12617
12618         * fold-const.c (fold_unary): New.
12619         (fold): Call fold_unary on unary expressions.
12620
12621 2005-03-02  Richard Guenther  <rguenth@gcc.gnu.org>
12622
12623         * cgraph.h (struct cgraph_edge): Add prev_caller and
12624         prev_callee fields.
12625         (cgraph_node_remove_callees): Export.
12626         * cgraph.c (cgraph_create_edge): Initialize prev_caller
12627         and prev_callee.
12628         (cgraph_edge_remove_callee): New function.
12629         (cgraph_edge_remove_caller): Likewise.
12630         (cgraph_remove_edge): Use.
12631         (cgraph_redirect_edge_callee): Likewise.
12632         (cgraph_node_remove_callees): New function.
12633         (cgraph_node_remove_callers): Likewise.
12634         (cgraph_remove_node): Use.
12635         * tree-optimize.c (tree_rest_of_compilation): Use
12636         cgraph_node_remove_callees instead of manual loop.
12637         * cgraphunit.c (cgraph_finalize_function): Likewise.
12638         (cgraph_expand_function): Likewise.
12639         (cgraph_remove_unreachable_nodes): Likewise.
12640
12641 2005-03-02  Joseph S. Myers  <joseph@codesourcery.com>
12642
12643         PR c/8927
12644         * c-tree.h (undeclared_variable, build_external_ref): Add extra
12645         argument.
12646         * c-decl.c (undeclared_variable): Take location as argument.
12647         * c-typeck.c (build_external_ref): Likewise.
12648         * c-parser.c (c_parser_postfix_expression): Pass location of
12649         identifier to build_external_ref.
12650
12651 2005-03-01  David Edelsohn  <edelsohn@gnu.org>
12652
12653         * config/rs6000/rs6000.md (cceq splitter): Use operand mode, not
12654         CCEQ mode for branch_positive_comparison_operator test.
12655         * config/rs6000/predicates (branch_comparison_operator): Revert to
12656         define_predicate.
12657         (scc_comparison_operator): Same.
12658         (branch_positive_comparison_operator): Same.
12659
12660 2005-03-01  Hans-Peter Nilsson  <hp@axis.com>
12661
12662         * config/cris/cris.c (cris_eligible_for_epilogue_delay)
12663         (cris_delay_slots_for_epilogue): Remove.
12664         (save_last): Move into cris_target_asm_function_epilogue.
12665         (cris_target_asm_function_epilogue): Remove tests for file being
12666         NULL.
12667         * config/cris/cris-protos.h (cris_eligible_for_epilogue_delay)
12668         (cris_delay_slots_for_epilogue): Remove prototypes.
12669         * config/cris/cris.h (DELAY_SLOTS_FOR_EPILOGUE)
12670         (ELIGIBLE_FOR_EPILOGUE_DELAY): Do not define.
12671
12672 2005-03-01  David Edelsohn  <edelsohn@gnu.org>
12673
12674         * config/rs6000/predicates.md (branch_comparison_operator): Change
12675         to define_special_predicate.
12676         (scc_comparison_operator): Same.
12677         (branch_positive_comparison_operator): Same.
12678
12679 2005-03-01  Daniel Berlin <dberlin@dberlin.org>
12680
12681         * Makefile.in (tree-ssa-sink.o): New.
12682         (OBJS-common): Add tree-ssa-sink.o.
12683         * common.opt: Add -ftree-sink
12684         * opts.c (decode_options): flag_tree_sink is set at O1 or higher.
12685         * timevar.def (TV_TREE_SINK): new timevar.
12686         * tree-flow.h (is_hidden_global_store): Prototype.
12687         * tree-optimize.c (init_tree_optimization_passes): Add
12688         pass_sink_code.
12689         * tree-pass.h (pass_sink_code): New.
12690         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Move checking
12691         for non-obvious global store store to is_hidden_global_store, and
12692         call that new function.
12693         * tree-ssa-sink.c: New file.
12694         * doc/invoke.texi: Document -fdump-tree-sink and -ftree-sink.
12695         * doc/passes.texi: Document forward store motion.
12696         * testsuite/gcc.dg/tree-ssa/ssa-sink-1.c: New test
12697         * testsuite/gcc.dg/tree-ssa/ssa-sink-2.c: New test
12698         * testsuite/gcc.dg/tree-ssa/ssa-sink-3.c: New test
12699         * testsuite/gcc.dg/tree-ssa/ssa-sink-4.c: New test
12700
12701 2005-03-01  Per Bothner  <per@bothner.com>
12702
12703         * diagnostic.c (diagnostic_build_prefix): If USE_MAPPED_LOCATION
12704         and we have a non-zero column-number, add it to the message.
12705         Also factor out the diagnostic_kind_text.
12706
12707 2005-03-01  Zdenek Dvorak  <dvorakz@suse.cz>
12708
12709         * cfgloop.c (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
12710         flow_loop_pre_header_scan, flow_loop_pre_header_find,
12711         flow_loop_scan): Removed.
12712         (flow_loop_dump): Do not dump removed fields.
12713         (flow_loop_free): Do not free removed fields.
12714         (flow_loops_find): Flags argument removed.  Do not call flow_loop_scan.
12715         (loop_exit_edge_p): New function.
12716         * cfgloop.h (struct loop): Removed fields pre_header, pre_header_edges,
12717         num_pre_header_edges, entry_edges, num_entries, exit_edges,
12718         num_exits, exits_doms.
12719         (LOOP_TREE, LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES,
12720         LOOP_EDGES, LOOP_ALL): Removed.
12721         (flow_loop_scan): Declaration removed.
12722         (loop_exit_edge_p, mark_loop_exit_edges): Declare.
12723         * cfgloopmanip.c (create_loop_notes): Do not pass flags to
12724         flow_loops_find.
12725         * ifcvt.c (mark_loop_exit_edges): Moved to cfgloopanal.c.
12726         (if_convert): Call flow_loops_find and flow_loops_free
12727         when calling mark_loop_exit_edges.
12728         * cfgloopanal.c (mark_loop_exit_edges): Moved from
12729         ifcvt.c.  Removed the flow_loops_find, flow_loops_free and
12730         free_dominance_info calls.
12731         * loop-init.c (flow_loops_find): Ditto.
12732         * passes.c (rest_of_handle_branch_prob): Ditto.
12733         * lambda-code.c (perfect_nestify): Do not call flow_loops_find.
12734         * loop-unroll.c (analyze_insns_in_loop): Do not use
12735         EDGE_LOOP_EXIT.
12736         * predict.c (predict_loops): Do not call flow_loop_scan.
12737         Use get_loop_exit_edges.
12738         (tree_estimate_probability): Do not pass flags to flow_loops_find.
12739         * tree-if-conv.c (bb_with_exit_edge_p): Take loop as argument.
12740         Do not use EDGE_LOOP_EXIT.
12741         (tree_if_convert_cond_expr, if_convertible_modify_expr_p): Pass loop
12742         to bb_with_exit_edge_p.
12743         (if_convertible_loop_p): Do not call flow_loop_scan.  Use
12744         loop->single_exit.  Do not use EDGE_LOOP_EXIT.  Pass loop
12745         to bb_with_exit_edge_p.
12746         (combine_blocks): Pass loop to bb_with_exit_edge_p.  Do not use
12747         EDGE_LOOP_EXIT.
12748         * tree-loop-linear.c (linear_transform_loops): Do not call
12749         flow_loop_scan.  Use loop->single_exit.
12750         * tree-vect-analyze.c (vect_analyze_operations): Use loop->single_exit.
12751         (vect_analyze_loop_form): Do not call flow_loop_scan.
12752         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Use
12753         loop->single_exit.
12754         (vect_do_peeling_for_loop_bound): Use loop_preheader_edge and
12755         loop->single_exit.
12756         * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop,
12757         slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
12758         slpeel_tree_duplicate_loop_to_edge_cfg,
12759         slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge):
12760         Use loop_preheader_edge and loop->single_exit.  Do not call
12761         flow_loop_scan.
12762
12763 2005-03-01  Nick Clifton  <nickc@redhat.com>
12764
12765         * config/arm/arm.c (thumb_find_work_register): Check all of the
12766         argument registers to see if they are free, and a couple of
12767         special cases where the last argument register but can be proved
12768         to be available during the function's prologue.
12769         (print_multi_reg, arm_compute_save_reg0_reg12_mask,
12770         output_return_instruction, emit_multi_reg_push, thumb_pushpop,
12771         thumb_unexpanded_epilogue): Use unsigned long as the type for the
12772         register bit-mask.
12773         (thumb_compute_save_reg_mask): Likewise.  Also use
12774         thumb_find_work_register() to ensure that there is agreement about
12775         which work register is going to be used in the prologue.
12776         (thumb_output_function_prologue): Use unsigned long as the type
12777         for the register bit-mask.  Also delay pushing the link register if
12778         other high registers are going to be pushed.
12779         (thumb_compute_save_reg_mask, emit_multi_reg_push,
12780         print_multi-reg, number_of_first_bit_set, thumb_pushpop): Remove
12781         redundant prototypes.
12782
12783 2005-02-28  John David Anglin  <dave.anglin#nrc-cnrc.gc.ca>
12784
12785         PR target/19819
12786         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow allow hard registers during
12787         and after reload in REG+REG indexed addresses without REG_POINTER
12788         set in the base and not set in the index.
12789
12790 2005-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
12791
12792         * config/sh/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
12793         Don't undefine here.
12794         (HANDLE_PRAGMA_PACK_PUSH_POP): Delete.
12795         (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC): Likewise.
12796         (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
12797         (LIB_SPEC, LINK_EH_SPEC, STARTFILE_SPEC, ENDFILE_SPEC,
12798         LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED, TARGET_C99_FUNCTIONS):
12799         Delete.
12800         * config.gcc (sh*-*-linux*): Use config/linux.h.
12801
12802 2005-02-28  Dale Johannesen  <dalej@apple.com>
12803             Stan Shebs  <shebs@apple.com>
12804
12805         Rewrite of 64-bit Darwin structure-by-value pass/return.
12806         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): New fields
12807         intoffset, use_stack, named.
12808         * config/rs6000/rs6000.c (rs6000_darwin64_function_arg):  Remove.
12809         (rs6000_darwin64_record_arg_advance_flush):  New.
12810         (rs6000_darwin64_record_arg_advance_recurse): New.
12811         (rs6000_darwin64_record_arg_flush):  New.
12812         (rs6000_darwin64_record_arg_recurse):  New.
12813         (rs6000_darwin64_record_arg):  New.
12814         (rs6000_return_in_memory):  Remove AGGREGATE_TYPE_P check.
12815         (function_arg_boundary):  Handle 128-bit aligned structs.
12816         (function_arg_advance):  Rewrite darwin64 struct handling.
12817         (function_arg):  Call rs6000_darwin64_record_arg.
12818         (function_arg_partial_nregs):  Handle darwin64 structs.
12819         (rs6000_darwin64_function_value):  Remove.
12820         (rs6000_function_value):  Call rs6000_darwin64_record_arg.
12821
12822 2005-02-28  Roger Sayle  <roger@eyesopen.com>
12823
12824         PR tree-optimization/20216
12825         * tree-chrec.c (tree_fold_factorial): Delete.
12826         (tree_fold_binomial): Change argument list to take a return type
12827         and change the type of K to unsigned int.  Rewrite to avoid explicit
12828         evaluation of factorials, and (recursively) calling fold to perform
12829         compile-time arithmetic.  Return NULL on (internal) overflow.
12830         (chrec_evaluate): Change type of K to an unsigned int.  Avoid
12831         calling tree_fold_binomial unnecessarily.  Return chrec_dont_know
12832         if any intermediate calculation overflows.
12833         (chrec_apply): Update call to chrec_evaluate.
12834
12835 2005-02-28  James E Wilson  <wilson@specifixinc.com>
12836
12837         * config/mips/mips.h (NO_PROFILE_COUNTERS): Define.
12838
12839 2005-02-28  Joseph S. Myers  <joseph@codesourcery.com>
12840
12841         PR c/20245
12842         * c-parser.c (c_parser_compound_statement): Return error_mark_node
12843         instead of NULL_TREE on error.
12844
12845 2005-02-28  David Edelsohn  <edelsohn@gnu.org>
12846
12847         * config/rs6000/rs6000.c (EASY_VECTOR_15): Remove.
12848         (EASY_VECTOR_15_ADD_SELF): Remove.
12849         (num_insns_constant_wide): Not static.
12850         (validate_condition_mode): Not static.
12851         (toc_relative_expr_p): Not static.
12852         (legitimate_indirect_address_p): Not static.
12853         (macho_lo_sum_memory_operand): Not static.
12854         (invalid_e500_subreg): Not static.
12855         (easy_vector_same): Not static.
12856         (easy_vector_splat_const): Not static.
12857         (RS6000_SYMBOL_REF_TLS_P): Remove.
12858         (any_operand): Delete.
12859         (any_parallel_operand): Delete.
12860         (count_register_operand): Delete.
12861         (altivec_register_operand): Delete.
12862         (xer_operand): Delete.
12863         (s8bit_cint_operand): Delete.
12864         (short_cint_operand): Delete.
12865         (u_short_cint_operand): Delete.
12866         (non_short_cint_operand): Delete.
12867         (exact_log2_cint_operand): Delete.
12868         (gpc_reg_operand): Delete.
12869         (cc_reg_operand): Delete.
12870         (cc_reg_not_cr0_operand): Delete.
12871         (reg_or_short_operand): Delete.
12872         (reg_or_neg_short_operand): Delete.
12873         (reg_or_aligned_short_operand): Delete.
12874         (reg_or_u_short_operand): Delete.
12875         (reg_or_cint_operand): Delete.
12876         (reg_or_arith_cint_operand): Delete.
12877         (reg_or_add_cint64_operand): Delete.
12878         (reg_or_sub_cint64_operand): Delete.
12879         (reg_or_logical_cint_operand): Delete.
12880         (got_operand): Delete.
12881         (got_no_const_operand): Delete.
12882         (easy_fp_constant): Delete.
12883         (easy_vector_constant): Delete.
12884         (easy_vector_constant_add_self): Delete.
12885         (zero_constant): Delete.
12886         (zero_fp_constant): Delete.
12887         (volatile_mem_operand): Delete.
12888         (offsettable_mem_operand): Delete.
12889         (mem_or_easy_const_operand): Delete.
12890         (add_operand): Delete.
12891         (non_add_cint_operand): Delete.
12892         (logical_operand): Delete.
12893         (non_logical_cint_operand): Delete.
12894         (mask_operand): Delete.
12895         (mask_operand_wrap): Delete.
12896         (mask64_operand): Delete.
12897         (mask64_2_operand): Delete.
12898         (and64_operand): Delete.
12899         (and64_2_operand): Delete.
12900         (and_operand): Delete.
12901         (reg_or_mem_operand): Delete.
12902         (lwa_operand): Delete.
12903         (symbol_ref_operand): Delete.
12904         (call_operand): Delete.
12905         (current_file_function_operand): Delete.
12906         (input_operand): Delete.
12907         (rs6000_nonimmediate_operand): Delete.
12908         (rs6000_tls_symbol_ref): Delete.
12909         (save_world_operation): Delete.
12910         (restore_world_operation): Delete.
12911         (load_multiple_operation): Delete.
12912         (store_multiple_operation): Delete.
12913         (vrsave_operation): Delete.
12914         (mfcr_operation): Delete.
12915         (mtcrf_operation): Delete.
12916         (lmw_operation): Delete.
12917         (stmw_operation): Delete.
12918         (branch_comparison_operator): Delete.
12919         (branch_positive_comparison_operator): Delete.
12920         (scc_comparison_operator): Delete.
12921         (trap_comparison_operator): Delete.
12922         (boolean_operator): Delete.
12923         (boolean_or_operator): Delete.
12924         (min_max_operator): Delete.
12925         * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Move to here.
12926         (EASY_VECTOR_15): Moved to here.
12927         (EASY_VECTOR_15_ADD_SELF): Move to here.
12928         (PREDICATE_CODES): Delete.
12929         * config/rs6000/rs6000-protos.h: Delete predicate functions.
12930         Declare functions no longer static.
12931         * config/rs6000/predicates.md: New.
12932         * config/rs6000/rs6000.md: Include predicates.md
12933
12934 2005-02-28  Kazu Hirata  <kazu@cs.umass.edu>
12935
12936         * calls.c (emit_call_1): Don't use  REG_ALWAYS_RETURN.
12937         (emit_library_call_value_1): Don't use LCT_ALWAYS_RETURN and
12938         REG_ALWAYS_RETURN.
12939         * cfgrtl.c (need_fake_edge_p): Likewise.
12940         * combine.c (distribute_notes): Likewise.
12941         * emit-rtl.c (try_split): Likewise.
12942         * recog.c (peephole2_opimize): Likewise.
12943         * reg-notes.def (ALWAYS_RETURN): Remove.
12944         * rtl.h (LCT_ALWAYS_RETURN): Remove.
12945         * tree-cfg.c (need_fake_edge_p): Don't use ECF_ALWAYS_RETURN.
12946         * tree.h (ECF_ALWAYS_RETURN): Remove.
12947
12948 2005-02-28  Roger Sayle  <roger@eyesopen.com>
12949
12950         PR middle-end/19874
12951         * tree-ssa.c (tree_ssa_useless_type_conversion_1): A conversion
12952         between different machine modes is never a "useless" conversion.
12953
12954 2005-02-28  Geert Bosch  <bosch@gnat.com>
12955
12956         PR ada/15977
12957         * doc/contrib.texi: List contributors for Ada front end
12958
12959 2005-02-28 Paolo Bonzini <bonzini@gnu.org>
12960
12961         * simplify-rtx.c (simplify_unary_operation_1,
12962         simplify_const_unary_operation): New, extracted from...
12963         (simplify_unary_operation): ... this one.
12964         (simplify_binary_operation_1,
12965         simplify_const_binary_operation): New, extracted from...
12966         (simplify_binary_operation): ... this one.
12967         * rtl.h (simplify_const_unary_operation,
12968         simplify_const_binary_operation): Add prototypes.
12969
12970 2005-02-28  Julian Brown  <julian@codesourcery.com>
12971
12972         * config/elfos.h: Revert my patch from 2005-02-25 since it broke
12973         building libjava and caused PR regression/20228.
12974
12975 2005-02-28  Paolo Bonzini  <bonzini@gnu.org>
12976
12977         PR bootstrap/17383
12978         * Makefile.in (host_subdir): New.
12979         (build_objdir): New.  Replace ../$(build_subdir) with it throughout.
12980         * configure: Regenerate.
12981
12982 2005-02-27  Zack Weinberg  <zack@codesourcery.com>
12983
12984         * config/alpha/t-osf4, config/arm/t-netbsd, config/ia64/t-hpux
12985         * config/pa/t-hpux-shlib (SHLIB_INSTALL): Create the
12986         installation directory first.
12987
12988 2005-02-28  Hans-Peter Nilsson  <hp@axis.com>
12989
12990         PR target/19065.
12991         * config/cris/cris.h (EXTRA_CONSTRAINT_Q): Accept only (mem (reg)),
12992         not including (reg). Do not check for reg being CRIS_PC_REGNUM.
12993         (EXTRA_MEMORY_CONSTRAINT): Define as 'Q'.
12994         * config/cris/cris.md: Tweak comments referring to Q.
12995         ("cmpsi", "cmphi", "cmpqi", "*movsi_internal", "movhi")
12996         ("movstricthi", "movqi", "movstrictqi", "movsf", "addsi3")
12997         ("addhi3", "addqi3", "subsi3", "subhi3", "subqi3")
12998         ("*expanded_andsi", "*expanded_andhi", "*andhi_lowpart", "andqi3")
12999         ("*andqi_lowpart", "iorsi3", "iorhi3", "iorqi3", "uminsi3"):
13000         Insert spaces in constraints to align alternatives vertically for
13001         readability.
13002         ("cmphi"): Ditto.  Add separate alternative for operand 0 "r",
13003         operand 1: "M".
13004
13005 2005-02-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13006
13007         PR rtl-optimization/17728
13008         * pa.md (mulsi3, divsi3, udivsi3, modsi3): Change predicate for
13009         operand 0 from general_operand to move_dest_operand.
13010
13011 2005-02-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13012
13013         * pa/elf.h, pa/som.h (ASM_OUTPUT_EXTERNAL): Use assemble_name_raw
13014         instead of trying to save and restore TREE_SYMBOL_REFERENCED.
13015         * pa/pa64-hpux.h (ASM_OUTPUT_TYPE_DIRECTIVE): Define.
13016         (ASM_OUTPUT_EXTERNAL): Don't save and restore TREE_SYMBOL_REFERENCED.
13017
13018 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
13019
13020         * configure.ac: Rename cc_for_cross_gnattools to host_cc_for_libada.
13021         * configure: Regenerate.
13022         * libada-mk.in: Remove CC; rename
13023         cc_for_cross_gnattools / cc_set_by_configure to host_cc_for_libada.
13024
13025 2005-02-26  Andrew Pinski  <pinskia@physics.uc.edu>
13026
13027         PR tree-opt/20188
13028         * tree-ssa-alias.c (count_uses_and_derefs): If we have TREE_LIST
13029         for the lhs, also walk over the tree.  Likewise for rhs.
13030
13031 2005-02-26  Zdenek Dvorak  <dvorakz@suse.cz>
13032
13033         * tree-ssa-dom.c (simple_iv_increment_p): New function.
13034         (simplify_rhs_and_lookup_avail_expr, eliminate_redundant_computations):
13035         Do not propagate value of iv before increment over the increment.
13036
13037 2005-02-25  Joseph S. Myers  <joseph@codesourcery.com>
13038
13039         * c-parser.c: New file.
13040         * c-parse.in: Remove.
13041         * Makefile.in (c-parse.o-warn, c-parse.o, c-parse.c, c-parse.y):
13042         Remove.
13043         (c-parser.o): Add dependencies.
13044         (C_AND_OBJC_OBJC, C_OBJS, gcc.srcextra, GTFILES, distclean,
13045         maintainer-clean, TAGS): Update.
13046         * c-config-lang.in (gtfiles): Update.
13047         * gengtype-lex.l: Don't handle "@@".
13048         * stub-objc.c (objc_get_class_ivars, objc_build_throw_stmt,
13049         objc_build_synchronized, objc_begin_try_stmt,
13050         objc_begin_catch_clause, objc_finish_catch_clause,
13051         objc_build_finally_clause, objc_finish_try_stmt): New.
13052         * c-tree.h (struct c_declspecs): Add declspecs_seen_p and
13053         type_seen_p.
13054         (c_parse_init): Update comment.
13055         * c-decl.c (c_init_decl_processing): Update comment.
13056         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
13057         declspecs_add_scspec, declspecs_add_attrs): Initialize and update
13058         new c_declspecs members.
13059
13060 2005-02-25  Julian Brown  <julian@codesourcery.com>
13061
13062         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
13063         from being used for symbols with vague linkage when
13064         HAVE_GAS_COMDAT_GROUP is true.
13065
13066 2005-02-25  Mark Mitchell  <mark@codesourcery.com>
13067
13068         * doc/include/gcc-common.texi (version-GCC): Update to 4.1.
13069
13070 2005-02-25  Steve Ellcey  <sje@cup.hp.com>
13071
13072         PR target/19930
13073         * doc/tm.texi (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Document.
13074         (LIBGCC2_HAS_DF_MODE): New.
13075         (LIBGCC2_HAS_XF_MODE): New.
13076         (LIBGCC2_HAS_TF_MODE): New.
13077         * libgcc2.h (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
13078         (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
13079         * libgcc2.c (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
13080         (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
13081         (LIBGCC2_HAS_DF_MODE): New name for HAVE_DFMODE.
13082         * config/ia64/t-ia64 (LIB1ASMFUNCS): Remove __compat
13083         and add _fixtfdi, _fixunstfdi, _floatditf
13084         * lib1funcs.asm: Remove L__compat. Add L_fixtfdi,
13085         L_fixunstfdi, L_floatditf.
13086         * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE): Define.
13087         (LIBGCC2_HAS_TF_MODE): Define.
13088
13089 2005-02-25  Diego Novillo  <dnovillo@redhat.com>
13090
13091         PR tree-optimization/20204
13092         * tree-into-ssa.c (insert_phi_nodes_for): Do not use
13093         REWRITE_THIS_STMT markers on PHI nodes.
13094         (rewrite_initialize_block): Likewise.
13095
13096 2005-02-25  Mark Mitchell  <mark@codesourcery.com>
13097
13098         * version.c (version_string): Update to 4.1.
13099
13100 2005-02-25  Paolo Carlini  <pcarlini@suse.de>
13101
13102         * doc/extend.texi (5.24 Declaring Attributes of Functions)<noreturn>:
13103         Clarify that the alternative way doesn't work in GNU C++.
13104
13105 2005-02-25  Zdenek Dvorak  <dvorakz@suse.cz>
13106
13107         PR tree-optimization/19937
13108         * tree-ssa-loop-ivopts.c (rewrite_use_compare): Cast the final value
13109         to the type of the induction variable.
13110
13111 2005-02-25  Kaz Kojima  <kkojima@gcc.gnu.org>
13112
13113         PR rtl-optimization/20117
13114         * bb-reorder.c (duplicate_computed_gotos): Don't duplicate
13115         the block including noncopyable insn.
13116
13117 2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
13118
13119         * cse.c (delete_trivially_dead_insns): Speed up by minimizing
13120         calls to find_reg_note.
13121
13122 2005-02-24  Richard Henderson  <rth@redhat.com>
13123
13124         PR tree-opt/20127
13125         * tree-sra.c (instantiate_element): Copy TREE_THIS_VOLATILE from
13126         the type.
13127
13128 2005-02-24  Fariborz Jahanian <fjahanian@apple.com>
13129
13130         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Check for
13131         vector types if to use base reg for misaligned non-word ld/std.
13132
13133 2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
13134
13135         PR target/14619
13136         * config/cris/cris.c (cris_target_asm_function_prologue): Create
13137         dwarf2 label manually and put it after, not before the prologue.
13138
13139 2005-02-24  David Edelsohn  <edelsohn@gnu.org>
13140
13141         PR target/19019
13142         * reload.c (operands_match_p): Only increment register number for
13143         SCALAR_INT_MODE_P modes in multiple hard registers.
13144
13145         * config/rs6000/rs6000.md (trunctfdf2): Remove register constraints.
13146         Fix formatting.
13147
13148 2005-02-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
13149
13150         * ChangeLog.5: Fix log message typo(s).
13151         * ChangeLog.7: Likewise.
13152         * ChangeLog.tree-ssa: Likewise.
13153         * cfgexpand.c: Fix comment typo(s).
13154         * conflict.c: Likewise.
13155         * defaults.h: Likewise.
13156         * dwarf2out.c: Likewise.
13157         * gcse.c: Likewise.
13158         * ggc-page.c: Likewise.
13159         * tree-eh.c: Likewise.
13160         * tree-ssa-dom.c: Likewise.
13161
13162 2005-02-24  Jakub Jelinek  <jakub@redhat.com>
13163
13164         PR target/19019
13165         * mklibgcc.in: Pass -DSHARED when compiling all *_s${objext} objects.
13166         * config/rs6000/darwin-ldouble.c: Only use the .symver directives
13167         if SHARED is defined.
13168
13169         PR target/20196
13170         * config/rs6000/rs6000.md (LTU, GTU sCC splitters): Add earlyclobber,
13171         allow splitting only if operands 0 and 3 don't overlap.
13172
13173 2005-02-24  Richard Henderson  <rth@redhat.com>
13174
13175         PR middle-end/19953
13176         * builtins.c (fold_builtin_complex_mul, fold_builtin_complex_div): New.
13177         (fold_builtin_1): Call them.
13178         * fold-const.c (fold_complex_mult_parts): Split out from ...
13179         (fold_complex_mult): ... here.  Fix typo in both imaginary case.
13180         (fold_complex_div_parts, fold_complex_div): New.
13181         (fold): Use them.
13182         * tree.h (fold_complex_mult_parts, fold_complex_div_parts): Declare.
13183
13184 2005-02-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13185
13186         * tree-ssa-ccp.c (visit_assignment): Verify that result of
13187         VIEW_CONVERT_EXPR is_gimple_min_invariant.
13188
13189         * print-tree.c (print_node_brief): Print LABEL_DECL_UID.
13190         (print_node): Likewise.
13191         Print TYPE_SIZES_GIMPLIFIED.
13192
13193 2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
13194
13195         * config/cris/cris.md ("umulhisi3", "umulqihi3", "mulsi3")
13196         ("mulqihi3", "mulhisi3", "mulsidi3", "umulsidi3"): Mark input
13197         operands as commutative in constraints.
13198
13199 2005-02-24  Diego Novillo  <dnovillo@redhat.com>
13200
13201         * tree-into-ssa.c: Re-organize internal functions.
13202
13203 2005-02-24  Richard Henderson  <rth@redhat.com>
13204
13205         PR middle-end/18902
13206         * c-opts.c (c_common_post_options): Set flag_complex_method to 2
13207         for c99.
13208         * common.opt (fcx-limited-range): New.
13209         * opts.c (set_fast_math_flags): Set flag_cx_limited_range.
13210         * toplev.c (flag_complex_method): Initialize to 1.
13211         (process_options): Set flag_complex_method to 0 if
13212         flag_cx_limited_range.
13213         * doc/invoke.texi (-fcx-limited-range): New.
13214
13215 2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
13216
13217         * cse.c (delete_trivially_dead_insns): Speed up by using
13218         NEXT_INSN and PREV_INSN directly instead of next_real_insn and
13219         prev_real_insn.
13220
13221 2005-02-24  Andrea Tarani  <andrea.tarani@gilbarco.com>
13222
13223         * config/m68k/m68k.c (m68k_save_reg): Also save A5 for non-leaf
13224         functions when -mid-shared-library is being used.
13225
13226 2005-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
13227
13228         * doc/tm.texi (LINK_LIBGCC_SPECIAL): Remove.
13229         (LINK_LIBGCC_SPECIAL_1): Don't mention it.
13230         * gcc.c: Don't check for LINK_LIBGCC_SPECIAL.
13231         * system.h: Poison LINK_LIBGCC_SPECIAL.
13232
13233 2005-02-23  James E Wilson  <wilson@specifixinc.com>
13234
13235         * gengtype.c (note_insn_name): Make 1 element larger.
13236
13237 2005-02-23  Roger Sayle  <roger@eyesopen.com>
13238
13239         PR target/20018
13240         PR rtl-optimization/20097
13241         * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
13242         BImode SUBREGs of SImode registers which confuse the ia64 backend.
13243
13244 2005-02-23  David Edelsohn  <edelsohn@gnu.org>
13245
13246         * t-aix43 (SHLIB_INSTALL): Create directory for shared library.
13247         * t-aix52 (SHLIB_INSTALL): Same.
13248
13249 2005-02-23  Kazu Hirata  <kazu@cs.umass.edu>
13250
13251         * genpreds.c: Update copyright.
13252
13253 2005-02-23  Michael Beach  <michaelb@ieee.org>
13254
13255         PR target/20159
13256         * config/sparc/t-elf (startup files): Assemble with CPP.
13257
13258 2005-02-23  Paolo Bonzini  <bonzini@gnu.org>
13259
13260         * genpreds.c (mark_mode_tests): Handle non-VOIDmode match_operands.
13261         (write_predicate_expr): Likewise.
13262
13263 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
13264
13265         PR tree-optimization/20100
13266         PR tree-optimization/20115
13267         * tree-optimize.c (init_tree_optimization_passes): Remove
13268         pass_maybe_create_global_var.
13269         * tree-pass.h (pass_maybe_create_global_var): Remove.
13270         * tree-ssa-alias.c (aliases_computed_p): Declare.
13271         (struct alias_info): Add field NUM_PURE_CONST_CALLS_FOUND.
13272         (count_calls_and_maybe_create_global_var): Remove.
13273         (pass_maybe_create_global_var): Remove.
13274         (init_alias_info): Do not declare aliases_computed_p.
13275         (maybe_create_global_var): If the function contains no
13276         call-clobbered variables and a mix of pure/const and regular
13277         function calls, create .GLOBAL_VAR.
13278         Mark all call-clobbered variables for renaming.
13279         (merge_pointed_to_info): Update comment.
13280         (add_pointed_to_var): Likewise.
13281         (is_escape_site): Likewise.
13282         Accept struct alias_info * instead of size_t *.
13283         Update all users.
13284         Update AI->NUM_CALLS_FOUND and AI->NUM_PURE_CONST_CALLS_FOUND
13285         as necessary.
13286         * tree-ssa-operands.c (get_call_expr_operands): If
13287         ALIASES_COMPUTED_P is false, do not add call-clobbering
13288         operands.
13289         * tree-ssa.c (init_tree_ssa): Set ALIASES_COMPUTED_P to false.
13290         (delete_tree_ssa): Likewise.
13291
13292 2005-02-22  James E Wilson  <wilson@specifixinc.com>
13293
13294         * toplev.c (backend_init): Don't call init_adjust_machine_modes here.
13295         (do_compile): Do call it here.
13296
13297 2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
13298
13299         PR rtl-optimization/20017.
13300         * passes.c (rest_of_handle_combine, rest_of_handle_cse,
13301         rest_of_handle_cse2, rest_of_handle_gcse): Call
13302         delete_dead_jumptables immediately before calling cleanup_cfg.
13303
13304 2005-02-22  Devang Patel  <dpatel@apple.com>
13305
13306         PR 19952
13307         * tree-if-conv.c (process_phi_nodes): Use bsi_after_labels and skip
13308         all labels
13309
13310 2005-02-22  David Edelsohn  <edelsohn@gnu.org>
13311
13312         * config/rs6000/aix.h (WINT_TYPE): Define.
13313
13314 2005-02-22  Stan Shebs  <shebs@apple.com>
13315
13316         * config/rs6000/rs6000.c (rs6000_override_options): Default to
13317         natural alignment for 64-bit Darwin.
13318         (rs6000_parse_alignment_option): Warn about uses of -malign-power
13319         on 64-bit Darwin.
13320         * doc/invoke.texi: Document this.
13321
13322 2005-02-22  DJ Delorie  <dj@redhat.com>
13323
13324         * c-common.c (c_common_type_for_mode): Pass the mode's precision
13325         to make_[un]signed_type, not the mode itself.
13326
13327 2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
13328
13329         * cfg.c (cached_make_edge): Call make_edge if edge cache is
13330         not available.  Use tail calls wherever possible.
13331         (make_edge): Call unchecked_make_edge to create an edge.
13332
13333         * tree-outof-ssa.c (SSANORM_USE_COALESCE_LIST): Remove.
13334         (coalesce_ssa_name): Don't check for
13335         SSANORM_USE_COALESCE_LIST.
13336         (rewrite_out_of_ssa): Don't use SSANORM_USE_COALESCE_LIST.
13337
13338 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
13339
13340         * tree-into-ssa.c (rewrite_blocks): Move debug dumps from ...
13341         (rewrite_into_ssa): ... here.
13342
13343 2005-02-21  Alexandre Oliva  <aoliva@redhat.com>
13344
13345         PR tree-optimization/19786
13346         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add one
13347         tag to another's may-alias bitmap when adding to the other's list.
13348
13349 2005-02-21  DJ Delorie  <dj@redhat.com>
13350
13351         * tree-ssa-loop-ivopts.c (computation_cost): Start register
13352         numbering at LAST_VIRTUAL_REGISTER+1 to avoid possibly using hard
13353         registers in unsupported ways.
13354         * expmed.c (init_expmed): Likewise.
13355
13356 2005-02-21  Stan Cox  <scox@redhat.com>
13357
13358         * config/iq2000/iq2000.h (DWARF_FRAME_RETURN_COLUMN): Change to 31.
13359
13360 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
13361
13362         * tree-cfg.c (fold_cond_expr_cond): New.
13363         (make_edges): Call fold_cond_expr_cond.
13364         (find_taken_edge): Accept nothing but INTEGER_CST.
13365         (find_taken_edge_cond_expr): Reject INTEGER_CST other than 0
13366         and 1.
13367         (find_taken_edge_switch_expr): Remove a check for INTEGER_CST.
13368
13369         * flow.c (delete_dead_jumptables): Speed up by scanning insns
13370         that do not belong to any basic block.
13371
13372 2005-02-21  Jeff Law  <law@redhat.com>
13373
13374         * cfganal.c (find_unreachable_blocks): Manually CSE load of
13375         e->dest.
13376
13377 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
13378
13379         * tree-outof-ssa.c (SSANORM_REMOVE_ALL_PHIS): Remove.
13380         (SSANORM_COALESCE_PARTITIONS, SSANORM_USE_COALESCE_LIST):
13381         Adjust their definitions.
13382         (remove_ssa_form): Don't check for SSANORM_REMOVE_ALL_PHIS.
13383         (rewrite_out_of_ssa): Don't use SSANORM_REMOVE_ALL_PHIS.
13384
13385         * c-objc-common.h, c-pretty-print.c, cgraphunit.c, except.c,
13386         genautomata.c, langhooks.c, langhooks.h, system.h,
13387         config/arm/lib1funcs.asm: Update copyright.
13388
13389 2005-02-21  Ulrich Weigand  <uweigand@de.ibm.com>
13390
13391         * dbxout.c (dbxout_function_end): Emit Lscope label always.
13392
13393 2005-02-21  Richard Guenther  <rguenth@gcc.gnu.org>
13394
13395         PR bootstrap/13770
13396         * doc/install.texi: Document --with-gc.
13397
13398 2005-02-21  Paolo Bonzini  <bonzini@gnu.org>
13399
13400         * simplify-rtx.c (simplify_unary_operation): Add a missing
13401         "break" statement.
13402
13403 2005-02-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
13404
13405         PR tree-optimization/18663
13406         * tree-ssa-dom.c (extract_range_from_cond): Return 0
13407         if the type has variable bounds.
13408
13409 2005-02-20  Kazu Hirata  <kazu@cs.umass.edu>
13410
13411         * gcse.c: Remove an obsolete comment.
13412
13413         * cse.c (init_cse_reg_info): Use xmalloc instead of xrealloc.
13414
13415 2005-02-20  Hans-Peter Nilsson  <hp@axis.com>
13416
13417         * doc/extend.texi (Function Attributes) <Attribute const>: The
13418         attribute "pure" is below this text, not above.
13419
13420 2005-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13421
13422         * pa.c (pa_assemble_integer, get_plabel): Small cleanups.
13423         (pa_asm_output_mi_thunk): Use asm_output_insn instead of fprintf.
13424         * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Small cleanup.
13425
13426 2005-02-20  Zack Weinberg  <zack@codesourcery.com>
13427
13428         PR 18785
13429         * langhooks.h (struct lang_hooks): Add to_target_charset.
13430         * langhooks.c (lhd_to_target_charset): New function.
13431         * langhooks-def.h: Declare lhd_to_target_charset.
13432         (LANG_HOOKS_TO_TARGET_CHARSET): New macro.
13433         (LANG_HOOKS_INITIALIZER): Update.
13434         * c-common.c (c_common_to_target_charset): New function.
13435         * c-common.h: Declare it.
13436         * c-objc-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
13437         c_common_to_target_charset.
13438
13439         * defaults.c (TARGET_BELL, TARGET_BS, TARGET_CR, TARGET_DIGIT0)
13440         (TARGET_ESC, TARGET_FF, TARGET_NEWLINE, TARGET_TAB, TARGET_VT):
13441         Delete definitions.
13442         * system.h: Poison them.
13443         * doc/tm.texi: Don't discuss them.
13444         * builtins.c (fold_builtin_isdigit): Use lang_hooks.to_target_charset.
13445         * c-pretty-print.c (pp_c_integer_constant): Don't use pp_c_char.
13446         (pp_c_char): Do not attempt to generate letter escapes for
13447         newline, tab, etc.
13448         * config/arm/arm.c (output_ascii_pseudo_op): Likewise.
13449         * config/mips/mips.c (mips_output_ascii): Likewise.
13450
13451 2005-02-20  Dorit Naishlos  <dorit@il.ibm.com>
13452
13453         PR tree-optimization/19951
13454         * tree-vect-analyze.c (vect_analyze_loop_form): Check if loop exit edge
13455         is abnormal.
13456
13457 2005-02-19  Steven Bosscher  <stevenb@suse.de>
13458
13459         PR middle-end/19698
13460         * function.h (struct function): New field `max_loop_depth'.
13461         * cfgloop.c (establish_preds): Update maximum loop depth seen so far.
13462         (flow_loops_find): Reset the max loop depth count before finding loops.
13463         * flow.c (MAX_LIVENESS_ROUNDS): New constant.
13464         (update_life_info_in_dirty_blocks): Remove 2002-05-28 workaround.
13465         (calculate_global_regs_live): Make sure the loop will terminate
13466         when the initial sets are not empty.
13467
13468 2005-02-19  Zack Weinberg  <zack@codesourcery.com>
13469
13470         * mklibgcc.in: If libgcc_eh.a would be empty, put a dummy
13471         object inside.
13472         * config/ia64/hpux.h: Don't define LIBGCC_SPEC.
13473
13474 2005-02-19  Richard Sandiford  <rsandifo@redhat.com>
13475
13476         PR other/19525
13477         * doc/invoke.texi: Remove documentation of %M spec.
13478         * gcc.c: Likewise.
13479         (init_spec): Remove %M suffix from -lgcc_s.
13480         (do_spec_1): Remove 'M' case.
13481         * mklibgcc.in: Remove SHLIB_MULTILIB handling.  Expect SHLIB_LINK
13482         to put shared libraries in the multilib directory.  Remove the
13483         shlib_so_soname substitution variable.  Don't add a multilib encoding
13484         to shlib_base_name.  Set shlib_slibdir_qual to the full pathname
13485         reported by -print-multi-os-directory.  Pass @multilib_dir@ to
13486         SHLIB_INSTALL as well as SHLIB_LINK.
13487         * config/t-slibgcc-elf-ver (SHLIB_SONAME): Use @shlib_base_name@.
13488         (SHLIB_NAME): Delete.
13489         (SHLIB_DIR): New macro.
13490         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_SOLINK) in $(SHLIB_DIR).
13491         (SHLIB_INSTALL): Adjust accordingly.
13492         * config/t-slibgcc-darwin: As for t-slibgcc-elf-ver.
13493         * config/t-slibgcc-sld: Likewise.
13494         * config/t-libunwind-elf (SHLIBUNWIND_NAME): Delete.
13495         (SHLIBUNWIND_SONAME): Use @shlib_base_name@.
13496         (SHLIBUNWIND_LINK): Put $(SHLIBUNWIND_SONAME) and $(SHLIB_SOLINK)
13497         in $(SHLIB_DIR).
13498         (SHLIBUNWIND_INSTALL): Adjust accordingly.
13499         * config/i386/t-nwld (SHLIB_SONAME): Delete.
13500         (SHLIB_LINK, SHLIB_INSTALL): Use SHLIB_NAME instead of SHLIB_SONAME.
13501         Use @shlib_base_name@ instead of @shlib_so_name@.
13502         * config/ia64/t-hpux (SHLIB_LINK): Put @shlib_base_name@.so.0
13503         and @shlib_base_name@.so in @multilib_dir@.
13504         (SHLIB_INSTALL): Adjust accordingly.  Add @shlib_slibdir_qual@
13505         to the install path.
13506         * config/mips/t-slibgcc-irix: As for t-slibgcc-elf-ver.
13507         (SHLIB_LINK): Remove previous workaround.
13508         * config/pa/t-hpux-shlib (SHLIB_DIR, SHLIB_SLIBDIR_QUAL): New macros.
13509         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_NAME) in $(SHLIB_DIR).
13510         (SHLIB_INSTALL): Adjust accordingly.  Add $(SHLIB_SLIBDIR_QUAL) to
13511         the install path.
13512         * config/rs6000/t-aix43 (SHLIB_LINK): Put @shlib_base_name@.a in
13513         @multilib_dir@.  Use @multilib_dir@ to check for threading libraries.
13514         (SHLIB_INSTALL): Adjust accordingly.
13515         (SHLIB_LIBS): Use @multilib_dir@ to check for threading libraries.
13516         * config/rs6000/t-aix52: As for config/rs6000/t-aix43.
13517         * config/sh/t-linux (SHLIB_LINK, SHLIB_INSTALL): As for
13518         config/t-slibgcc-elf-ver.
13519
13520 2005-02-19  Zdenek Dvorak  <dvorakz@suse.cz>
13521             Jakub Jelinek  <jakub@redhat.com>
13522
13523         PR tree-optimization/19828
13524         * tree-ssa-loop-im.c: Add a TODO comment.
13525         (movement_possibility): Return MOVE_PRESERVE_EXECUTION for calls
13526         without side-effects.
13527
13528 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
13529
13530         * tree-ssa-ccp.c (widen_bitfield): Pass type to build_int_cst and don't
13531         call fold_convert.
13532
13533 2005-02-18  James E. Wilson  <wilson@specifixinc.com>
13534
13535         * doc/invoke.texi (IA-64 Options): Delete -mb-step.
13536         * config/ia64/ia64.c (last_group, group_idx): Delete variables.
13537         (errata_find_address_regs, errata_emit_nops, fixup_errata): Delete
13538         functions.
13539         (ia64_reorg): Delete fixup_errata call.
13540         * config/ia64/ia64.h (MASK_B_STEP, TARGET_B_STEP): Delete.
13541         (TARGET_SWITCHES): Delete -mb-step entry.
13542
13543 2005-02-19  Jakub Jelinek  <jakub@redhat.com>
13544
13545         PR c/20043
13546         * c-typeck.c (composite_type): Handle quals in transparent unions.
13547         (type_lists_compatible_p): Likewise.
13548
13549 2005-02-18  Stan Shebs  <shebs@apple.com>
13550
13551         * config/darwin.c (machopic_select_rtx_section): Don't put relocatable
13552         expressions in the .literal8 section.
13553
13554 2005-02-18  Geoffrey Keating  <geoffk@apple.com>
13555
13556         * config/rs6000/darwin-tramp.asm: Remove stray 'APPLE LOCAL' marker.
13557
13558 2005-02-18  Roger Sayle  <roger@eyesopen.com>
13559
13560         * fold-const.c (constant_boolean_node): Always create values of the
13561         specified type, don't bother calling truthvalue_conversion.
13562
13563 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
13564
13565         * except.c (output_function_exception_table): Call
13566         assemble_external_libcall (eh_personality_libfunc).
13567
13568 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
13569
13570         PR target/19886
13571         * config/ia64/ia64.h (struct machine_function): Add state_num.
13572         * config/ia64/ia64.c (process_epilogue,
13573         process_for_unwind_directive): Use new unwind state numbers each
13574         time rather than state 1.
13575
13576 2005-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
13577
13578         PR target/20054
13579         * config/s390/s390.md ("*llgt_sidi", "*llgt_sidi_split"): Move to
13580         before the "*llgt_didi" pattern.
13581
13582 2005-02-18  Jason Merrill  <jason@redhat.com>
13583
13584         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Revert again.
13585
13586 2005-02-18  Richard Earnshaw  <rearnsha@arm.com>
13587
13588         * arm/lib1funcs.asm (FUNC_ALIAS): New macro.
13589         (div0): Use it in place of ARM_FUNC_ALIAS.
13590         (lshrdi3, ashrdi3, ashlrdi3): Likewise.
13591
13592 2005-02-18  Andrew Pinski  <pinskia@physics.uc.edu>
13593
13594         PR middle-end/20030
13595         * fold-const.c (fold_indirect_ref_1): Use the correct index for zero
13596         access, the lower bound of the array type if it exists.
13597
13598 2005-02-18  Alexandre Oliva  <aoliva@redhat.com>
13599
13600         PR c++/20008
13601         * stmt.c (expand_case): Don't assume cleanup_tree_cfg will remove
13602         cases that are out-of-range for the index type.
13603
13604 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
13605
13606         * stmt.c (emit_case_bit_tests): Call fold_convert instead of convert.
13607         (estimate_case_costs): Don't call convert.
13608         * expmed.c (expand_shift): Likewise.
13609         (make_tree): Call fold_convert instead of convert.
13610
13611 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
13612
13613         PR c++/19813
13614         * emit-rtl.c (set_mem_attributes_minus_bitpos): Add assertion
13615         that ref to be marked MEM_READONLY_P doesn't have base that needs
13616         constructing.
13617
13618 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
13619
13620         * genautomata.c (output_get_cpu_unit_code_func,
13621         output_cpu_unit_reservation_p): Don't generate old-style function
13622         definitions.
13623
13624 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
13625
13626         PR c++/20023
13627         PR tree-optimization/20009
13628         * convert.c (convert_to_integer): Revert 2005-02-16 change.
13629
13630         PR tree-optimization/18947
13631         * cgraphunit.c (cgraph_finalize_function): When redefining an extern
13632         inline, remove all nodes that are inlined into the extern inline
13633         being redefined.
13634
13635 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
13636
13637         * bt-load.c, cfgloop.c, convert.c, dominance.c, global.c,
13638         loop-invariant.c, stmt.c, tree-ssa-forwprop.c,
13639         tree-ssa-live.c, tree-ssanames.c, tree-vn.c,
13640         config/host-linux.c, config/arm/fpa.md, config/avr/avr.h:
13641         Update copyright.
13642
13643 2005-02-17  Roger Sayle  <roger@eyesopen.com>
13644
13645         PR tree-optimization/19917
13646         * tree-eh.c (tree_could_trap_p): Consider calls to weak functions
13647         to be potentially trapping.
13648
13649 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
13650
13651         * libgcc2.c, tree-vect-analyze.c: Fix comment typos.
13652
13653 2005-02-17  Andreas Krebbel  <krebbel1@de.ibm.com>
13654
13655         * builtins.c (expand_builtin_return_addr): Remove tem parameter.
13656         tem becomes a local variable which is set to the value of the
13657         back end defined INITIAL_FRAME_ADDRESS macro.
13658         (expand_builtin_frame_address): Omit the base parameter to
13659         expand_builtin_return_addr.
13660         (expand_builtin_profile_func): Likewise.
13661         * config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Define new macro.
13662         (DYNAMIC_CHAIN_ADDRESS): Remove the case for the initial frame.
13663         * doc/tm.texi: Documentation for INITIAL_FRAME_ADDRESS_RTX added.
13664
13665 2005-02-17  Jakub Jelinek  <jakub@redhat.com>
13666
13667         * config/s390/s390.c (s390_alloc_pool, s390_free_pool,
13668         s390_chunkify_start): Use BITMAP_ALLOC and BITMAP_FREE.
13669         * config/frv/frv.c (frv_function_epilogue): Likewise.
13670
13671 2005-02-17  Daniel Berlin  <dberlin@dberlin.org>
13672
13673         * lambda-code (perfect_nestify): Remove mark/unmark
13674         for rewriting hack.
13675         * tree-loop-linear.c (linear_transform_loops): Add
13676         rewrite_into_ssa call so that ssa is correct for
13677         rewriting into loop closed.
13678
13679 2005-02-17  Nathan Sidwell  <nathan@codesourcery.com>
13680
13681         * bitmap.h (BITMAP_XMALLOC, BITMAP_XFREE): Remove.
13682         * bb-reorder.c (duplicate_computed_gotos): Use BITMAP_ALLOC and
13683         BITMAP_FREE.
13684         * bt-load.c (btr_def_live_range, combine_btr_defs,
13685         migrate_btr_def, migrate_btr_defs): Likewise.
13686         * cfgcleanup.c (thread_jump): Likewise.
13687         * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
13688         * df.c (df_insn_table_realloc, df_bitmaps_alloc, df_bitmaps_free,
13689         df_alloc, df_free, df_du_chain_create, df_bb_rd_local_compute,
13690         df_rd_local_compute, df_reg_info_compute): Likewise.
13691         * dominance.c (init_dom_info, free_dom_info): Likewise.
13692         * flow.c (init_propagate_block_info,
13693         free_propagate_block_info): Likewise.
13694         * gcse.c (alloc_gcse_mem, free_gcse_mem): Likewise.
13695         * global.c (allocate_bb_info, free_bb_info, calculate_reg_pav,
13696         modify_reg_pav): Likewise.
13697         * loop-invariant.c (find_defs, find_invariant_insn,
13698         find_invariants, free_inv_motion_data): Likewise.
13699         * predict.c (tree_predict_by_opcode,
13700         estimate_bb_frequencies): Likewise.
13701         * stmt.c (expand_case): Likewise.
13702         * tree-cfg.c (tree_duplicate_sese_region): Likewise.
13703         * tree-dfa.c (mark_new_vars_to_rename): Likewise.
13704         * tree-if-conv.c (get_loop_body_in_if_conv_order): Likewise.
13705         * tree-into-ssa.c (insert_phi_nodes_for, def_blocks_free,
13706         get_def_blocks_for, mark_def_site_blocks, rewrite_into_ssa,
13707         rewrite_ssa_into_ssa): Likewise.
13708         * tree-optimize.c (tree_rest_of_compilation): Likewise.
13709         * tree-outof-ssa.c (new_temp_expr_table, free_temp_expr_table,
13710         analyze_edges_for_bb, perform_edge_inserts): Likewise.
13711         * tree-scalar-evolution.c (scev_initialize, scev_finalize): Likewise.
13712         * tree-sra.c (tree_sra): Likewise.
13713         * tree-ssa-alias.c (init_alias_info, delete_alias_info): Likewise.
13714         * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
13715         * tree-ssa-dce.c (tree_dce_init, tree_dce_done): Likewise.
13716         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
13717         * tree-ssa-dse.c (tree_ssa_dse): Likewise.
13718         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_var):
13719         Likewise.
13720         * tree-ssa-live.c (new_tree_live_info, delete_tree_live_info,
13721         calculate_live_on_entry, calculate_live_on_exit,
13722         build_tree_conflict_graph): Likewise.
13723         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_init, record_use,
13724         record_important_candidates, set_use_iv_cost, find_depends,
13725         determine_use_iv_costs, iv_ca_new, iv_ca_free, free_loop_data,
13726         tree_ssa_iv_optimize_finalize): Likewise.
13727         * tree-ssa-loop-manip.c (add_exit_phis_var, get_loops_exit,
13728         find_uses_to_rename_use, rewrite_into_loop_closed_ssa,
13729         tree_duplicate_loop_to_header_edge): Likewise.
13730         * tree-ssa-pre.c (init_pre, fini_pre): Likewise.
13731         * tree-ssa.c (verify_flow_insensitive_alias_info,
13732         verify_name_tags, verify_ssa, init_tree_ssa,
13733         delete_tree_ssa): Likewise.
13734         * tree-ssanames.c (marked_ssa_names, init_ssanames,
13735         fini_ssanames): Likewise.
13736         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Likewise.
13737
13738 2005-02-17  Ralf Corsepius  <ralf.corsepius@rtems.org>
13739
13740         * config/rs6000/t-rtems: Completely reworked.
13741
13742 2005-02-17  Ira Rosen  <irar@il.ibm.com>
13743
13744         * tree-data-ref.c (array_base_name_differ_p): Remove gcc_assert.
13745
13746 2005-02-17  Ira Rosen  <irar@il.ibm.com>
13747
13748         * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Use
13749         POINTER_TYPE_P when checking that type is a pointer.
13750         (vect_get_memtag): Remove.
13751         (vect_address_analysis): Use POINTER_TYPE_P. Call
13752         vect_object_analysis with dummy parameter for memtag.
13753         (vect_object_analysis): Extract memtag (functionality that
13754         used to be in vect_get_memtag and moved here). Fix printings.
13755         (vect_analyze_data_refs): Fix comment. Call vect_object_analysis
13756         with correct parameters. Remove call to vect_get_memtag.
13757
13758 2005-02-17  Dorit Naishlos  <dorit@il.ibm.com>
13759
13760         * Makefile.in (tree-vect-analyze.o, tree-vect-transform.o): New.
13761         (tree-vectorizer.o): Added missing dependencies.
13762
13763         * tree-vectorizer.h (vect_dump, vect_verbosity_level): Added extern
13764         decleration.
13765         (slpeel_tree_peel_loop_to_edge): Function externalized (had a static
13766         declaration in tree-vectorizer.c, now has an extern declaration in
13767         tree-vectorizer.h).
13768         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
13769         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
13770         get_vectype_for_scalar_type, vect_is_simple_use,
13771         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
13772         vect_supportable_dr_alignment, new_loop_vec_info, destroy_loop_vec_info,
13773         new_stmt_vec_info, vect_analyze_loop, vectorizable_load,
13774         vectorizable_store, vectorizable_operation, vectorizable_assignment,
13775         vect_transform_loop, vect_print_dump_info, vect_set_verbosity_level,
13776         find_loop_location): Likewise.
13777
13778         * tree-vectorizer.c (langhooks.h): #include removed.
13779         (slpeel_tree_peel_loop_to_edge): Function externalized. Declaration
13780         moved to tree-vectorized.h.
13781         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
13782         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
13783         get_vectype_for_scalar_type, vect_is_simple_use,
13784         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
13785         vect_supportable_dr_alignment, new_loop_vec_info,
13786         destroy_loop_vec_info, new_stmt_vec_info, vect_print_dump_info,
13787         vect_set_verbosity_level, find_loop_location): Likewise.
13788
13789         (vect_analyze_loop): Function externalized. Declaration moved to
13790         tree-vectorized.h. Function definition moved to tree-vect-analyze.c.
13791         (vect_analyze_loop_form): Moved to tree-vect-analyze.c.
13792         (vect_mark_stmts_to_be_vectorized, vect_analyze_scalar_cycles,
13793         vect_analyze_data_ref_accesses, vect_analyze_data_ref_dependences,
13794         vect_analyze_data_refs_alignment, vect_compute_data_refs_alignment,
13795         vect_enhance_data_refs_alignment, vect_analyze_operations,
13796         exist_non_indexing_operands_for_use_p, vect_mark_relevant,
13797         vect_stmt_relevant_p, vect_get_loop_niters,
13798         vect_analyze_data_ref_dependence, vect_compute_data_ref_alignment,
13799         vect_analyze_data_ref_access, vect_analyze_pointer_ref_access,
13800         vect_can_advance_ivs_p, vect_get_ptr_offset, vect_analyze_offset_expr,
13801         vect_base_addr_differ_p, vect_object_analysis, vect_address_analysis,
13802         vect_get_memtag): Likewise.
13803
13804         (vectorizable_load): Function externalized. Declaration moved to
13805         tree-vectorized.h. Function definition moved to tree-vect-transform.c.
13806         (vectorizable_store, vectorizable_operation, vectorizable_assignment,
13807         vect_transform_loop): Likewise.
13808         (vect_transform_stmt): Moved to tree-vect-transform.c.
13809         (vect_align_data_ref, vect_create_destination_var,
13810         vect_create_data_ref_ptr, vect_create_index_for_vector_ref,
13811         vect_create_addr_base_for_vector_ref, vect_get_new_vect_var,
13812         vect_get_vec_def_for_operand, vect_init_vector,
13813         vect_finish_stmt_generation, vect_generate_tmps_on_preheader,
13814         vect_build_loop_niters, vect_update_ivs_after_vectorizer,
13815         vect_gen_niters_for_prolog_loop, vect_update_inits_of_dr,
13816         vect_update_inits_of_drs, vect_do_peeling_for_alignment,
13817         vect_do_peeling_for_loop_bound): Likewise.
13818
13819         * tree-vect-analyze.c: New file.
13820         * tree-vect-transform.c: New file.
13821
13822 2005-02-17  Jason Merrill  <jason@redhat.com>
13823
13824         PR mudflap/19319, c++/19317
13825         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Make return
13826         slot explicit.
13827
13828 2005-02-17  Gerald Pfeifer  <gerald@pfeifer.com>
13829
13830         * doc/install.texi (Specific): Update link for Darwin-specific
13831         tool binary site.
13832
13833 2005-02-16  James A. Morrison  <phython@gcc.gnu.org>
13834
13835         * fold-const.c (invert_truthvalue): <INTEGER_CST>: Call
13836         constant_boolean_node.
13837
13838 2005-02-16  David Edelsohn  <edelsohn@gnu.org>
13839
13840         PR target/19019
13841         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
13842         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Same.
13843
13844 2005-02-16  Richard Henderson  <rth@redhat.com>
13845
13846         PR 19920
13847         * libgcc2.c (WORD_SIZE): Remove all definitions; replace uses
13848         with W_TYPE_SIZE.
13849         (HIGH_WORD_COEFF, HIGH_HALFWORD_COEFF): Remove all definitions;
13850         replace uses with Wtype_MAXp1_F.
13851         (L_fixunstfdi, L_fixtfdi, L_floatditf, L_fixunsxfdi, L_fixxfdi,
13852         L_floatdixf, L_fixunsxfsi, L_fixunsdfdi, L_floatdidf, L_fixunsdfsi,
13853         L_powidf2, L_powixf2, L_powitf2, L_muldc3, L_divdc3, L_mulxc3,
13854         L_divxc3, L_multc3, L_divtc3): Protect with HAVE_DFMODE, HAVE_XFMODE,
13855         and HAVE_TFMODE as appropriate.
13856         (__fixunssfDI): Provide an implementation that doesn't need DFmode.
13857         (__floatdisf): Likewise.
13858         * libgcc2.h (LIBGCC2_DOUBLE_TYPE_SIZE): New.
13859         (HAVE_DFMODE, HAVE_XFMODE, HAVE_TFMODE): New.
13860         (Wtype_MAXp1_F): New.
13861         (DFtype, DCtype, __fixdfdi, __floatdidf, __fixunsdfSI, __fixunsdfDI,
13862         __powidf2, __divdc3, __muldc3): Protect with HAVE_DFMODE.
13863
13864 2005-02-16  Richard Earnshaw  <rearnsha@arm.com>
13865
13866         * PR target/19162
13867         * arm.c (arm_apply_result_size): New function.
13868         * arm.h (APPLY_RESULT_SIZE): Define.
13869         * arm-protos.h (arm_apply_result_size): Add prototype.
13870         * arm.md (RO_REGNUM, FPA_F0_REGNUM, FPA_F7_REGNUM): New constants.
13871         (movxf): New expand.
13872         (ldmsi_postinc4_thumb, stmsi_postinc4_thumb): New patterns for Thumb.
13873         (call_value_symbol): Remove predicate for operand 0.
13874         (call_value_insn, sibcall_value, sibcall_value_insn): Likewise.
13875         (untyped_call): Rework to correclty return values for any type.
13876         (untyped_return): New expand.
13877         * fpa.md (movxf_fpa): Simplify and use sfm/lfm when appropriate.
13878
13879 2005-02-16  Stan Shebs  <shebs@apple.com>
13880
13881         * config.gcc (powerpc-*-darwin*): Use fragment for Darwin 8 or later.
13882         * config/rs6000/t-darwin8: New, for 64-bit multilib.
13883
13884 2005-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
13885
13886         * doc/install.texi (sparc-sun-solaris2*): Document required GMP
13887         configure settings on Solaris 7 and later.
13888
13889 2005-02-16  Diego Novillo  <dnovillo@redhat.com>
13890
13891         PR tree-optimization/19865
13892         * tree-optimize.c (init_tree_optimization_passes): Run
13893         pass_may_alias after pass_sra.
13894
13895 2005-02-16  Richard Henderson  <rth@redhat.com>
13896             Stuart Hastings  <stuart@apple.com>
13897
13898         PR debug/19521
13899         * dbxout.c (dbxout_function_end): Take decl parameter; update callers.
13900         Do nothing if debug info suppressed for this function.
13901         (dbxout_begin_function): Early exit if debug info suppressed for
13902         this function.
13903
13904 2005-02-16  Kazu Hirata  <kazu@cs.umass.edu>
13905
13906         PR target/20007
13907         * config/ip2k/ip2k.c (ip2k_reorg): Adjust calls to
13908         find_basic_blocks.
13909         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
13910
13911         PR tree-optimization/19967
13912         * builtins.c (expand_builtin_strstr, expand_builtin_strpbrk,
13913         expand_builtin_strchr, expand_builtin_strrchr): Take a new
13914         argument TYPE.  Adjust calls to fold_builtin_XXX.
13915         (expand_builtin, fold_builtin_1): Adjust calls to
13916         expand_builtin_XXX.
13917         (fold_builtin_strchr, fold_builtin_strpbrk,
13918         fold_builtin_strstr, fold_builtin_strrchr): Convert the folded
13919         result to a requested type TYPE.
13920
13921 2005-02-16  Jakub Jelinek  <jakub@redhat.com>
13922
13923         PR middle-end/19857
13924         * fold-const.c (fold): Don't optimize (T)(x & cst) to
13925         (T)x & (T)cst if (T)cst overflows.
13926         * convert.c (convert_to_integer) <case POINTER_TYPE>: Pass
13927         TYPE_UNSIGNED (type) as type_for_size's UNSIGNEDP argument.
13928
13929 2005-02-15  Jeff Law  <law@redhat.com>
13930
13931         * gcse.c (blocks_with_calls): New bitmap.
13932         (alloc_gcse_mem): Allocate it.
13933         (free_gcse_mem): Free it.
13934         (clear_modifY_mem_tables): Clear it.
13935         (record_last_mem_set_info): Set the proper bit in BLOCK_WITH_CALLS
13936         when we encounter CALL_INSNs.
13937         (compute_transp, case MEM): Handle blocks with calls separate
13938         from blocks without calls.  Use bitmap iterators rather than
13939         FOR_EACH_BB.
13940
13941 2005-02-15  Peter O'Gorman  <peter@pogma.com>
13942
13943         PR bootstrap/18810
13944         * mklibgcc.in (vis_hide): Use a temporary object file, not
13945         -o /dev/null.
13946
13947 2005-02-15  Andy Hutchinson  <HutchinsonAndy@netscape.net>
13948
13949         PR target/19924
13950         * config/avr/avr.h (MODES_TIEABLE_P): Define to 1 to allow subreg
13951         access optimization.
13952
13953 2005-02-15  David Edelsohn  <edelsohn@gnu.org>
13954             Alan Modra  <amodra@bigpond.net.au>
13955
13956         PR target/19019
13957         * config/rs6000/darwin-ldouble.c (_xlqadd): Rename to __gcc_qadd.
13958         (_xlqsub): Rename to __gcc_qsub.
13959         (_xlqmul): Rename to __gcc_qmul.
13960         (_xlqdiv): Rename to __gcc_qdiv.
13961         Provide versioned symbol aliases with old names.
13962         * config/rs6000/libgcc-ppc64.ver: Rename symbols.
13963         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Rename symbols.
13964         * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): New.
13965         * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): New.
13966         * config/rs6000/t-newas (LIB2FUNCS_EXTRA): New.
13967
13968 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
13969
13970         * fold-const.c (fold): Fold -(~A) to A + 1.  Fold ~(-A) to A - 1.
13971         Fold ~(A - 1) and ~(A + -1) to -A.
13972
13973 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
13974
13975         PR pch/14940
13976         PR target/19300
13977         * config/host-linux.c (linux_gt_pch_use_address): Copy from
13978         config/pa/pa-host.c:pa_gt_pch_use_address.
13979
13980 2005-02-15  Daniel Berlin  <dberlin@dberlin.org>
13981
13982         * tree-vn.c (get_value_handle): Make sure that given an
13983         is_gimple_min_invariant expression, we always return it.
13984
13985 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
13986
13987         * passes.c (rest_of_handle_gcse): Fix a comment.
13988
13989 2005-02-15  Jeff Law  <law@redhat.com>
13990
13991         * gcse.c (canon_modify_mem_set_list_set): Kill unnecessary
13992         bitmap.
13993         (alloc_gcse_mem, free_gcse_mem): Corresponding changes.
13994         (canon_list_insert, record_last_mem_set_info): Similarly.
13995         (clear_modify_mem_tables): Similarly.
13996
13997 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
13998
13999         * bitmap.c, bitmap.h, lambda-code.c, tree-dfa.c, tree-dump.c,
14000         tree-dump.h, tree-ssa-loop-manip.c, value-prof.c,
14001         config/mips/mips.md, config/rs6000/aix.h,
14002         config/rs6000/beos.h, config/rs6000/sysv4.h: Update copyright.
14003
14004 2005-02-15  Richard Henderson  <rth@redhat.com>
14005
14006         * bb-reorder.c (find_traces_1_round): Force fallthru edge from a
14007         call to be best_edge.
14008
14009 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
14010
14011         * basic-block.h: Adjust the prototype for find_basic_blocks.
14012         * cfgbuild.c (find_basic_blocks): Remove unused arguments.
14013         * passes.c (rest_of_handle_loop_optimize): Adjust the call to
14014         find_basic_blocks.
14015
14016         * flow.c (recompute_reg_usage): Remove all arguments.
14017         * passes.c (rest_of_compilation): Adjust the call to
14018         recompute_reg_usage.
14019         * rtl.h: Adjust the prototype for recompute_reg_usage.
14020
14021 2005-02-14  Daniel Berlin  <dberlin@dberlin.org>
14022
14023         * tree-dump.c (dump_files): Update to reflect new member
14024         of dump_file_info.
14025         (dump_register): Add new argument.
14026         Set glob name.
14027         (dump_switch_p_1): Check against glob name if doglob was passed.
14028         (dump_switch_p): Check against regular first, then glob if
14029         we didn't have any hits on the dump name.
14030         * tree-optimize.c (register_one_dump_file):
14031         Pass in glob name as well.
14032         * tree-pass.h (struct dump_file_info): Add glob
14033         member.
14034
14035 2005-02-14  Joseph S. Myers  <joseph@codesourcery.com>
14036
14037         PR preprocessor/16323
14038         * doc/invoke.texi: Document that -Wendif-labels is on by default.
14039
14040 2005-02-14  David Edelsohn  <edelsohn@gnu.org>
14041
14042         PR target/19019
14043         * config/rs6000/rs6000.md (trunctfdf2): Change to define_expand.
14044         (trunctfdf2_internal1): New.
14045         (trunctfdf2_internal2): Renamed from trunctfdf2.
14046
14047 2005-02-14  Diego Novillo  <dnovillo@redhat.com>
14048
14049         PR tree-optimization/19853
14050         * tree-dfa.c (add_referenced_var): Always examine DECL_INITIAL.
14051
14052 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
14053
14054         * passes.c (rest_of_handle_loop_optimize): Remove calls to
14055         delete_dead_jumptables and cleanup_cfg.
14056
14057 2005-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
14058
14059         * reload.c (find_reloads): Swap address_reloaded flags when
14060         swapping commutative operands.
14061
14062 2005-02-14  Sebastian Pop  <pop@cri.ensmp.fr>
14063
14064         * lambda-code.c (lambda_loopnest_to_gcc_loopnest, perfect_nestify):
14065         Use standard_iv_increment_position for computing the bsi position
14066         for create_iv.
14067         * tree-ssa-loop-manip.c (create_iv): Add a comment on how to compute
14068         the bsi position.
14069
14070 2005-02-13  Zdenek Dvorak  <dvorakz@suse.cz>
14071
14072         PR target/17428
14073         * cfgrtl.c (safe_insert_insn_on_edge): Avoid extending
14074         life range of hard registers.
14075         * value-prof.c (insn_prefetch_values_to_profile): Only
14076         scan normal insns.
14077
14078         * value-prof.c (rtl_find_values_to_profile): Do not look for values to
14079         profile in libcalls.
14080
14081 2005-02-13  Nathan Sidwell  <nathan@codesourcery.com>
14082
14083         * bitmap.h (bitmap_and_compl_into): Return bool.
14084         * bitmap.c (bitmap_and_compl_into): Return changed flag.
14085
14086 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
14087
14088         PR tree-optimization/19944
14089         * fold-const.c (fold): Re-add ABS_EXPR folding.
14090
14091 2005-02-13  David Edelsohn  <edelsohn@gnu.org>
14092
14093         PR target/19019
14094         * config/rs6000/aix.h ({TARGET,MASK}_XL_CALL): Rename to
14095         {TARGET,MASK}_XL_COMPAT.
14096         (SUBTARGET_SWITCHES): Rename xl-call to xl-compat.  Use
14097         MASK_XL_COMPAT.
14098         * config/rs6000/beos.h ({TARGET,MASK}_XL_CALL): Remove.
14099         * config/rs6000/rs6000.c (function_arg): Change TARGET_XL_CALL to
14100         TARGET_XL_COMPAT.
14101         (rs6000_arg_partial_bytes): Same.
14102         (rs6000_generate_compare): Generate PARALLEL for compare if TFmode
14103         and XL compatibility enabled.
14104         * config/rs6000/rs6000.h (TARGET_XL_CALL): Rename to TARGET_XL_COMPAT.
14105         * config/rs6000/rs6000.md (cmptf_internal1): Add !TARGET_XL_COMPAT
14106         test to final condition.
14107         (cmptf_internal2): New.
14108         * doc/invoke.texi (RS/6000 Subtarget Options): Change xl-call to
14109         xl-compat.  Add TFmode information to description.
14110
14111 2005-02-13  Kazu Hirata  <kazu@cs.umass.edu>
14112
14113         * flags.h, read-rtl.c, tree-ssa-live.h: Update copyright.
14114
14115 2005-02-13  Jason Merrill  <jason@redhat.com>
14116
14117         PR c++/16405
14118         * fold-const.c (fold_indirect_ref_1): Split out from...
14119         (build_fold_indirect_ref): Here.
14120         (fold_indirect_ref): New fn.
14121         * tree.h: Declare it.
14122         * gimplify.c (gimplify_compound_lval): Call fold_indirect_ref.
14123         (gimplify_modify_expr_rhs): Likewise.
14124         (gimplify_expr): Likewise.
14125
14126 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
14127
14128         PR tree-optimization/14303
14129         PR tree-optimization/15784
14130         * fold-const.c (fold): Fold ABS_EXPR<x> >= 0 to true, when possible.
14131         Fold ABS_EXPR<x> < 0 to false.  Fold ABS_EXPR<x> == 0 to x == 0 and
14132         ABS_EXPR<x> != 0 to x != 0.
14133
14134 2005-02-12  Kazu Hirata  <kazu@cs.umass.edu>
14135
14136         * c-tree.h, combine.c, expmed.c, flow.c, libgcc2.c,
14137         simplify-rtx.c, tree-ssa-live.h: Fix comment typos.  Follow
14138         spelling conventions.
14139
14140         * passes.c (rest_of_handle_gcse): Don't run cse_main and
14141         delete_trivially_dead_insns too many times.
14142
14143         * passes.c (rest_of_handle_gcse): Remove dead assignments to
14144         tem and tem2.
14145
14146 2005-02-12  Ira Rosen  <irar@il.ibm.com>
14147
14148         * tree-vectorizer.c (vect_get_base_and_offset): Remove.
14149         (vect_is_simple_iv_evolution): Remove redundant parameter
14150         and step check.
14151         (vect_analyze_scalar_cycles): Call vect_is_simple_iv_evolution
14152         without last parameter.
14153         (vect_analyze_pointer_ref_access): Get access_fn as parameter.
14154         Return pointer step. Call vect_is_simple_iv_evolution without
14155         last parameter. Check only that the step is multiple of size
14156         type. Remove stmt_vinfo updates.
14157         (vect_get_memtag_and_dr): Remove.
14158         (vect_get_memtag): New function.
14159         (vect_address_analysis): New function.
14160         (vect_object_analysis): New function.
14161         (vect_analyze_data_refs): Call vect_object_analysis and
14162         vect_get_memtag. Update stmt_vinfo fields.
14163
14164 2005-02-12  Ira Rosen  <irar@il.ibm.com>
14165
14166         * tree-data-ref.c (array_base_name_differ_p): Check that the bases
14167         exist and are objects. Remove checks for pointer.
14168         * tree-vectorizer.c (vect_create_addr_base_for_vector_ref): Use
14169         STMT_VINFO_VECT_DR_BASE_ADDRESS instead of DR_BASE_NAME.
14170         (vect_create_data_ref_ptr): Likewise.
14171         (vect_base_addr_differ_p): New function.
14172         (vect_analyze_data_ref_dependence): Call vect_base_addr_differ_p.
14173         (vect_analyze_pointer_ref_access): Add output parameter - ptr_init.
14174         Don't set the DR_BASE_NAME field of data-ref.
14175         (vect_get_memtag_and_dr): Use ptr_init instead of DR_BASE_NAME.
14176
14177 2005-02-12  Uros Bizjak  <uros@kss-loka.si>
14178
14179         * optabs.h (enum optab_index): Add new OTI_ldexp.
14180         (ldexp_optab): Define corresponding macro.
14181         * optabs.c (init_optabs): Initialize ldexp_optab.
14182         * genopinit.c (optabs): Implement ldexp_optab using ldexp?f3
14183         patterns.
14184         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_LDEXP{,F,L}
14185         using ldexp_optab.
14186         (expand_builtin): Expand BUILT_IN_LDEXP{,F,L} using
14187         expand_builtin_mathfn_2 if flag_unsafe_math_optimizations is set.
14188
14189         * config/i386/i386.md (ldexpsf3, ldexpdf3, ldexpxf3): New expanders
14190         to implement ldexpf, ldexp and ldexpl built-ins as inline x87
14191         intrinsics.
14192
14193 2005-02-12  Ira Rosen  <irar@il.ibm.com>
14194
14195         * tree-vectorizer.h (struct _stmt_vec_info): Rename a field: base
14196         to base_address.
14197         * tree-vectorizer.c (new_stmt_vec_info): Rename the above field of
14198         stmt_vec_info.
14199         (vect_get_base_and_offset): Always return an address.
14200         (vect_create_addr_base_for_vector_ref): Remove treatment for
14201         different data reference types.
14202         (vect_compute_data_ref_alignment): Rename base to base_address in
14203         stmt_vec_info. Get the object in order to force its alignment.
14204         (vect_get_memtag_and_dr): Rename base to base_address in
14205         stmt_vec_info. Extract the object for memtag analysis.
14206
14207 2005-02-12  Hans-Peter Nilsson  <hp@axis.com>
14208
14209         PR regression/19898.
14210         * config/cris/cris.c (cris_notice_update_cc): When testing if insn
14211         changes cc_status, use apply modified_in_p to part of cc_status
14212         and insn, not cris_reg_overlap_mentioned_p on SET_DEST of insn
14213         body.
14214
14215 2005-02-11  Richard Henderson  <rth@redhat.com>
14216
14217         * tree-complex.c (expand_complex_libcall): New.
14218         (expand_complex_multiplication): Use it for c99 compliance.
14219         (expand_complex_division): Likewise.
14220         * fold-const.c (fold_complex_add, fold_complex_mult): New.
14221         (fold): Call them.
14222         * builtins.c (built_in_names): Remove const.
14223         * tree.c (build_common_builtin_nodes): Build complex arithmetic
14224         builtins.
14225         * tree.h (BUILT_IN_COMPLEX_MUL_MIN, BUILT_IN_COMPLEX_MUL_MAX): New.
14226         (BUILT_IN_COMPLEX_DIV_MIN, BUILT_IN_COMPLEX_DIV_MAX): New.
14227         (built_in_names): Remove const.
14228         * c-common.c (c_common_type_for_mode): Handle complex modes.
14229         * flags.h, toplev.c (flag_complex_method): Rename from
14230         flag_complex_divide_method.
14231         * libgcc2.c (__divsc3, __divdc3, __divxc3, __divtc3,
14232         __mulsc3, __muldc3, __mulxc3, __multc3): New.
14233         * libgcc2.h: Declare them.
14234         * libgcc-std.ver: Export them.
14235         * mklibgcc.in (lib2funcs): Build them.
14236
14237 2005-02-11  Steven Bosscher  <stevenb@suse.de>
14238
14239         PR tree-optimization/19876
14240         Partially revert my change from 2005-01-14
14241         * tree-ssa-pre.c (compute_antic_aux): Make recursive once again...
14242         (compute_antic): ...and remove the loop here.
14243
14244 2005-02-11  Jakub Jelinek  <jakub@redhat.com>
14245
14246         PR middle-end/19858
14247         * fold-const.c (make_bit_field_ref): If bitpos == 0 and bitsize
14248         is number of inner's bits, avoid creating a BIT_FIELD_REF.
14249
14250         * config/rs6000/sysv4.h (ENDFILE_LINUX_SPEC): Use crtendS.o instead of
14251         crtend.o if -pie.  Use %{x:a;:b} spec syntax.
14252
14253 2005-02-11  Daniel Jacobowitz  <dan@codesourcery.com>
14254
14255         * config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust
14256         offsets for the big-endian 32-bit case.
14257
14258 2005-02-11  Joseph S. Myers  <joseph@codesourcery.com>
14259
14260         * config/ia64/hpux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
14261
14262 2005-02-11  Dale Johannesen  <dalej@apple.com>
14263
14264         * cselib.c (cselib_process_insn):  Clear out regs where
14265         HARD_REGNO_CALL_PART_CLOBBERED is true at a call.
14266         * reload.c (find_equiv_reg): Ditto.
14267
14268 2005-02-11  Ian Lance Taylor  <ian@airs.com>
14269
14270         * read-rtl.c (read_rtx_1): Give fatal error if we see a vector
14271         with no elements.
14272
14273         * tree.c (build_function_type_list): Work correctly if there are
14274         no arguments.
14275
14276 2005-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
14277
14278         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs",
14279         "*cmpsi_ccs"): Use %h instead of %c to print immediate operand.
14280         ("*zero_extendhisi2_64", "*zero_extendhisi2_31"): Choose based on
14281         TARGET_ZARCH instead of TARGET_64BIT.
14282
14283 2005-02-11  Ralf Corsepius  <ralf.corsepius@rtems.org>
14284
14285         * config/rs6000/t-rtems:
14286         (MULTILIB_OPTIONS): Remove mcpu=602.
14287         (MUTLILIB_DIRNAMES): Remove m602.
14288         (MULTILIB_MATCHES): Add ${MULTILIB_MATCHES_FLOAT}.
14289         Let mcpu=602 match mcpu=603.
14290         (MULTILIB_NEW_EXCEPTIONS_ONLY): Add mcpu=601, mcpu=602, mcpu=m603.
14291
14292 2005-02-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14293
14294         * pa/linux-unwind.h (pa32_fallback_frame_state): Handle misaligned
14295         signal trampolines.
14296
14297 2005-02-10  David Daney  <ddaney@avtrex.com>
14298
14299         * config/alpha/linux-unwind.h: Add exception clause to copyright.
14300         * config/i386/linux-unwind.h: Likewise.
14301         * config/ia64/linux-unwind.h: Likewise.
14302         * config/mips/linux-unwind.h: Likewise.
14303         * config/pa/linux-unwind.h: Likewise.
14304         * config/rs6000/linux-unwind.h: Likewise.
14305         * config/s390/linux-unwind.h: Likewise.
14306         * config/sh/linux-unwind.h: Likewise.
14307         * config/sparc/linux-unwind.h: Likewise.
14308
14309 2005-02-10  Steven Bosscher  <stevenb@suse.de>
14310
14311         PR tree-optimization/17549
14312         * tree-outof-ssa.c (find_replaceable_in_bb): Do not allow
14313         TER to replace a DEF with its expression if the DEF and the
14314         rhs of the expression we replace into have the same root
14315         variable.
14316
14317 2005-02-10  Richard Sandiford  <rsandifo@redhat.com>
14318
14319         * config/mips/mips.md: Fix the placement of the match_scratch in the
14320         lea64 peephole2.
14321
14322 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
14323
14324         * cse.c, tree-ssa-loop-ivopts.c, config/rs6000/linux-unwind.h:
14325         Fix comment typos.
14326
14327 2005-02-10  Zdenek Dvorak  <dvorakz@suse.cz>
14328
14329         * tree-ssa-loop-ivopts.c (determine_base_object): Ignore casts.
14330         (strip_offset): Handle addresses.
14331         (add_address_candidates): Use strip_offset.
14332         (difference_cost): Reflect strip_offset change.
14333         (force_var_cost, difference_cost): Strip nops.
14334
14335 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
14336
14337         * df.h (DF_REF_MODE_CHANGE, DF_REF_MEM_OK): Remove.
14338
14339         * builtins.def, haifa-sched.c, libgcc2.c, libgcc2.h,
14340         tree-ssa-loop-ivcanon.c, tree-ssa-loop-niter.c,
14341         config/cris/cris-protos.h, config/cris/cris.c: Update
14342         copyright.
14343
14344 2005-02-10  Jeff Law  <law@redhat.com>
14345
14346         * tree-ssa-dom.c (thread_across_edge): Use xmalloc, not xcalloc.
14347         (lookup_avail_expr): Similarly.
14348
14349 2005-02-10  Richard Guenther  <rguenth@gcc.gnu.org>
14350
14351         * builtins.c (fold_builtin_powi): New function.
14352         (fold_builtin_1): Call it.
14353
14354 2005-02-10  Steven Bosscher  <stevenb@suse.de>
14355
14356         PR documentation/19309
14357         * doc/cpp.texi: The __GNUC__ and related predefined macros
14358         are also defined for the "standalone" cpp.
14359         Some non-GCC compilers may also define __GNUC__.
14360
14361 2005-02-10  Jakub Jelinek  <jakub@redhat.com>
14362
14363         PR c/19342
14364         * c-typeck.c (common_type): New routine.  Old common_type renamed
14365         to...
14366         (c_common_type): ...this.
14367         (build_conditional_expr, build_binary_op): Use c_common_type instead
14368         of common_type.
14369
14370 2005-02-10  Steven Bosscher  <stevenb@suse.de>
14371
14372         * doc/md.texi: Replace @samp{length} with @code{length}.
14373
14374 2005-02-09  Zdenek Dvorak  <dvorakz@suse.cz>
14375
14376         PR tree-optimization/18687
14377         * tree-flow.h (find_loop_niter): Declare.
14378         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
14379         Try using scev even for loops with more than one exit.
14380         * tree-ssa-loop-ivopts.c (struct loop_data): Removed niter field.
14381         (struct ivopts_data): Added niters field.
14382         (struct nfe_cache_elt): New.
14383         (nfe_hash, nfe_eq, niter_for_exit, niter_for_single_dom_exit): New
14384         functions.
14385         (tree_ssa_iv_optimize_init): Initialize niters cache.
14386         (determine_number_of_iterations): Removed.
14387         (find_induction_variables): Do not call determine_number_of_iterations.
14388         Access niters for single exit through niter_for_single_dom_exit.
14389         (add_iv_outer_candidates): Access niters for single exit through
14390         niter_for_single_dom_exit.
14391         (may_eliminate_iv): Take data argument.  Use niter_for_exit.  Do not use
14392         number_of_iterations_cond.
14393         (iv_period): New function.
14394         (determine_use_iv_cost_condition): Pass data to may_eliminate_iv.
14395         (may_replace_final_value): Take data argument.  Use
14396         niter_for_single_dom_exit.
14397         (determine_use_iv_cost_outer): Pass data to may_replace_final_value.
14398         (rewrite_use_compare): Pass data to may_eliminate_iv.
14399         (rewrite_use_outer): Pass data to may_replace_final_value.
14400         (free_loop_data): Clean up the niters cache.
14401         (tree_ssa_iv_optimize_finalize): Free the niters cache.
14402         (tree_ssa_iv_optimize_loop): Do not call loop_commit_inserts.
14403         * tree-ssa-loop-niter.c (find_loop_niter): New function.
14404         (find_loop_niter_by_eval): Use tree_int_cst_lt.
14405         (num_ending_zeros): Moved to tree.c.
14406         * tree.h (num_ending_zeros): Declare.
14407         * tree.c (num_ending_zeros): Moved from tree.c.
14408
14409 2005-02-09  Richard Henderson  <rth@redhat.com>
14410
14411         * builtins.c (DEF_BUILTIN): Add COND argument.
14412         * tree.h (DEF_BUILTIN): Likewise.
14413         * builtins.def (DEF_GCC_BUILTIN, DEF_LIB_BUILTIN, DEF_EXT_LIB_BUILTIN,
14414         DEF_C94_BUILTIN, DEF_C99_BUILTIN, DEF_C99_C90RES_BUILTIN): Update to
14415         match.
14416         (DEF_BUILTIN_STUB): New.
14417         (BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE, BUILT_IN_INIT_TRAMPOLINE,
14418         BUILT_IN_ADJUST_TRAMPOLINE, BUILT_IN_NONLOCAL_GOTO,
14419         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT): Use it.
14420         * c-common.c (DEF_BUILTIN): Add COND argument.
14421         * tree.c (local_define_builtin): New.
14422         (build_common_builtin_nodes): New.
14423
14424 2005-02-09  Roger Sayle  <roger@eyesopen.com>
14425
14426         * fold-const.c (fold_strip_sign_ops): New function to simplify a
14427         floating point expression ignoring the sign of the result.
14428         (fold) <ABS_EXPR>: Use it to simplify fabs(x).
14429         (fold) <MULT_EXPR>: Use it to simplify x*x.
14430         * tree.h (fold_strip_sign_ops): Prototype here.
14431         * builtins.c (fold_builtin_copysign): Take an additional FNDECL
14432         argument.  Use fold_strip_sign_ops to simplify the first argument.
14433         (fold_builtin_pow):  Use fold_strip_sign_ops to simplify the
14434         first argument when the second argument is an even integer
14435         constant, but only with -funsafe_math_optimizations.
14436         (fold_builtin_1): Update call to fold_builtin_copysign.
14437
14438 2005-02-09  Ian Lance Taylor  <ian@airs.com>
14439
14440         PR middle-end/19583
14441         * gimple-low.c (try_catch_may_fallthru): In EH_FILTER_EXPR case,
14442         just check whether EH_FILTER_FAILURE falls through.
14443
14444 2005-02-09  Andreas Krebbel  <krebbel1@de.ibm.com>
14445
14446         * gcc/haifa-sched.c (schedule_block): Make queued sched group
14447         insns return to ready list in the next turn.
14448
14449 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
14450
14451         PR middle-end/19402
14452         * builtins.def: New __builtin_powi[lf].
14453         * builtins.c (mathfn_built_in): Handle BUILT_IN_POWI.
14454         (expand_builtin_powi): New function.
14455         (expand_builtin): Dispatch to expand_builtin_powi.
14456         * libgcc2.h: Add prototypes for __builtin_powi[lf].
14457         * libgcc2.c: Add __builtin_powi[lf] implementation.
14458         * mklibgcc.in: Add __builtin_powi[lf] to lib2funcs.
14459         * optabs.h: Add powi_optab.
14460         * optabs.c (init_optabs): Initialize powi_optab.
14461         * doc/extend.texi: Document __builtin_powi[lf].
14462
14463 2005-02-09  Dorit Naishlos  <dorit@il.ibm.com>
14464
14465         * tree-vectorizer.c (vect_set_dump_settings): Check that dump_file
14466         exists.
14467
14468 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
14469
14470         PR middle-end/19854
14471         * fold-const.c (try_move_mult_to_index): Remove redundant
14472         type argument.  Create ADDR_EXPR with correct type.
14473         (fold): Update callers of try_move_mult_to_index.  Convert
14474         result to the appropriate type.
14475
14476 2005-02-09  Roger Sayle  <roger@eyesopen.com>
14477
14478         PR target/19597
14479         * config/avr/avr.c (default_rtx_costs): Delete.
14480         (avr_operand_rtx_cost): New function.
14481         (avr_rtx_costs): Completely rewrite.
14482
14483 2005-02-08  Hans-Peter Nilsson  <hp@axis.com>
14484
14485         PR target/19806
14486         * config/cris/cris.c (in_code): New variable.
14487         (cris_output_addr_const): Now a static function, a wrapper for
14488         output_addr_const.
14489         (cris_asm_output_symbol_ref): New function, broken out SYMBOL_REF
14490         case from old cris_output_addr_const.
14491         (cris_asm_output_label_ref): Similar for LABEL_REF.
14492         (cris_output_addr_const_extra): Similar for UNSPEC.
14493         * config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA)
14494         (ASM_OUTPUT_SYMBOL_REF, ASM_OUTPUT_LABEL_REF): Define.
14495         * config/cris/cris-protos.h (cris_output_addr_const): Remove
14496         declaration.
14497         (cris_asm_output_symbol_ref, cris_output_addr_const_extra)
14498         (cris_asm_output_label_ref): Declare.
14499
14500 2005-02-08  Paolo Bonzini  <bonzini@gnu.org>
14501
14502         PR preprocessor/19801
14503         * doc/cppinternals.texi (Conventions, Lexer, Files): Adjust
14504         filenames that changed when libcpp was moved to the toplevel.
14505
14506 2005-02-07  Roger Sayle  <roger@eyesopen.com>
14507
14508         * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
14509         zero extensions of BImode operands.  Call lowpart_subreg instead
14510         of gen_lowpart_common and gen_lowpart_SUBREG.
14511
14512 2005-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
14513
14514         PR ada/19489
14515         * libada-mk.in: Use cc_for_cross_gnattools, not cc_set_by_configure.
14516         * configure.ac: Set cc_for_cross_gnattools.
14517         * configure: Regenerate.
14518
14519 2005-02-08  Alan Modra  <amodra@bigpond.net.au>
14520
14521         PR target/19803
14522         * predict.c (PROB_VERY_UNLIKELY): Use 1% instead of 10%.
14523
14524 2005-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
14525
14526         PR debug/19327
14527         * dbxout.c (dbxout_symbol) <FUNCTION_DECL>: Skip inline instance
14528         of nested functions.
14529
14530 2005-02-07  Jonathan Wakely  <redi@gcc.gnu.org>
14531
14532         * doc/extend.texi: Document deprecated extensions allowing
14533         static floating-point members to have initializers and allowing
14534         floating-point literals in integral constant expressions.
14535
14536 2005-02-07  Kazu Hirata  <kazu@cs.umass.edu>
14537
14538         * cfgcleanup.c, df.h, diagnostic.c, rtl.c, tree-vectorizer.h,
14539         config/darwin7.h, config/mips/mips.c,
14540         config/rs6000/altivec.md, config/rs6000/darwin-tramp.asm:
14541         Update copyright.
14542
14543         * cse.c: Update comments.
14544
14545 2005-02-07  Richard Guenther  <rguenth@gcc.gnu.org>
14546
14547         PR middle-end/19775
14548         * builtins.c (fold_builtin_sqrt): Transform
14549         sqrt(pow(x,y)) to pow(fabs(x),y*0.5), not
14550         pow(x,y*0.5).
14551
14552 2005-02-07  Leehod Baruch  <leehod@il.ibm.com>
14553             Dorit Naishlos  <dorit@il.ibm.com>
14554
14555         * doc/invoke.texi (ftree-vectorizer-verbose): New.
14556         * opts.c (OPT_ftree_vectorizer_verbose_): New case for switch.
14557         * common.opt (ftree-vectorizer-verbose): New Flag for the vectorizer
14558         was added.
14559         * tree.h (vect_set_verbosity_level): New extern function declaration
14560         added.
14561         * tree-vectorizer.h (verbosity_levels): New enum type.
14562         * tree-vectorizer.c (vect_debug_stats): Function removed.
14563         (vect_debug_details): Likewise.
14564         (vect_verbosity_level): Global variable was defined and initialized.
14565         (vect_dump): Global variable definition.
14566         (vect_print_dump_info): New function.
14567         (vect_set_dump_settings): New function.
14568         (vect_set_verbosity_level): New function.
14569         (vectorize_loops): Add call to vect_set_dump_settings.
14570
14571         (slpeel_make_loop_iterate_ntimes): Dump condition was changed.
14572         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
14573         (slpeel_tree_peel_loop_to_edge): Likewise.
14574
14575         (vect_analyze_offset_expr): Call to vect_print_dump_info with
14576         appropriate verbosity level instead of call to vect_debug_details
14577         or vect_debug_stats.
14578         (vect_get_base_and_offset):
14579         (vect_create_addr_base_for_vector_ref):
14580         (get_vectype_for_scalar_type):
14581         (vect_create_data_ref_ptr):
14582         (vect_init_vector):
14583         (vect_get_vec_def_for_operand):
14584         (vect_finish_stmt_generation):
14585         (vectorizable_assignment):
14586         (vectorizable_operation):
14587         (vectorizable_store):
14588         (vectorizable_load):
14589         (vect_transform_stmt):
14590         (vect_update_ivs_after_vectorizer):
14591         (vect_do_peeling_for_loop_bound):
14592         (vect_update_inits_of_drs):
14593         (vect_do_peeling_for_alignment):
14594         (vect_transform_loop):
14595         (vect_is_simple_use):
14596         (vect_analyze_operations):
14597         (vect_is_simple_iv_evolution):
14598         (vect_analyze_scalar_cycles):
14599         (vect_analyze_data_ref_dependence):
14600         (vect_analyze_data_ref_dependences):
14601         (vect_compute_data_ref_alignment):
14602         (vect_enhance_data_refs_alignment):
14603         (vect_analyze_data_refs_alignment):
14604         (vect_analyze_data_ref_access):
14605         (vect_analyze_data_ref_accesses):
14606         (vect_analyze_pointer_ref_access):
14607         (vect_get_memtag_and_dr):
14608         (vect_analyze_data_refs):
14609         (vect_mark_relevant):
14610         (vect_stmt_relevant_p):
14611         (vect_mark_stmts_to_be_vectorized):
14612         (vect_can_advance_ivs_p):
14613         (vect_get_loop_niters):
14614         (vect_analyze_loop_form):
14615         (vect_analyze_loop):
14616         (vectorize_loops): Likewise.
14617
14618         (vect_do_peeling_for_loop_bound): Dump format slightly changed.
14619         (vect_update_inits_of_drs):
14620         (vect_do_peeling_for_alignment):
14621         (vect_transform_loop):
14622         (vect_analyze_operations):
14623         (vect_analyze_scalar_cycles):
14624         (vect_analyze_data_ref_dependences):
14625         (vect_analyze_data_refs_alignment):
14626         (vect_analyze_data_ref_accesses):
14627         (vect_analyze_data_refs):
14628         (vect_mark_stmts_to_be_vectorized):
14629         (vect_get_loop_niters):
14630         (vect_analyze_loop_form):
14631         (vect_analyze_loop): Likewise.
14632         (vect_mark_stmts_to_be_vectorized): Add call to print_generic_expr.
14633
14634 2005-02-07  Richard Sandiford  <rsandifo@redhat.com>
14635
14636         PR bootstrap/19796
14637         Revert:
14638         2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
14639         * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
14640         either -ffast-math or -funsafe-math-optimizations is in use.
14641
14642         2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
14643         * config/mips/irix-csr.c: New file.
14644         * config/mips/t-iris6 (irix-csr.o): New rule to build it.
14645         (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
14646         * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
14647         executables.
14648
14649 2005-02-07  Alexandre Oliva  <aoliva@redhat.com>
14650
14651         * config/mn10300/linux.h (LIB_SPEC, STARTFILE_SPEC): Remove
14652         redundant, incorrect definitions.
14653
14654         * config/frv/frv.md ("tls_indirect_call"): Turn into libcall-like
14655         expand.
14656         ("*tls_indirect_call"): New, reference hard regs directly.
14657         * config/frv/frv.c (gen_inlined_tls_plt): Adjust.
14658
14659 2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
14660
14661         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC):
14662         Let !-mhard-float !-msoft-float imply -mfpu=softfpa.
14663
14664 2005-02-06  Roger Sayle  <roger@eyesopen.com>
14665
14666         PR rtl-optimization/19800
14667         * simplify_rtx.c (simplify_relational_operation_1): Explicitly
14668         call gen_lowpart_common and gen_lowpart_SUBREG instead of calling
14669         gen_lowpart.
14670
14671 2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
14672
14673         * config/m68k/t-rtems (MULTILIB_MATCHES): Let m528x match m5200.
14674
14675 2005-02-07  Joseph S. Myers  <joseph@codesourcery.com>
14676
14677         PR other/17135
14678         * doc/invoke.texi: Correct documentation of -freorder-functions.
14679
14680 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
14681
14682         PR other/14402
14683         * doc/invoke.texi: Don't mention gccbug.
14684
14685 2005-02-06  Roger Sayle  <roger@eyesopen.com>
14686             Andrew Pinski  <pinskia@physics.uc.edu>
14687             Paolo Bonzini  <paolo.bonzini@lu.unisi.ch>
14688
14689         * simplify-rtx.c (simplify_relational_operation_1): Simplify
14690         (ne:SI (zero_extract:SI FOO (const_int 1) BAR) (const_int 0))
14691         into just (zero_extract:SI FOO (const_int 1) BAR).
14692
14693 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
14694
14695         * doc/cpp.texi: Include gcc-common.texi.  Don't define gcctabopt
14696         macro locally.  Don't give last revision date.  Use GCC version
14697         number from gcc-common.texi.
14698         * doc/cppinternals.texi: Include gcc-common.texi.  Don't give last
14699         revision date.  Use GCC version number from gcc-common.texi.
14700         Describe being a library as current state rather than as 3.x
14701         history.
14702         * doc/gcc.texi: Remove last update date.
14703         * doc/gccint.texi: Likewise.  Update copyright dates.
14704         * doc/install.texi: Update copyright dates.
14705
14706 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
14707
14708         PR other/7549
14709         * doc/invoke.texi: Mention for each option included in -Wall that
14710         it is included in -Wall.
14711         * doc/gcc.texi: Update copyright and last modification date.
14712
14713 2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
14714
14715         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Do not add
14716         unnecessary cast to original induction variable increments.
14717
14718 2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
14719
14720         PR tree-optimization/18219
14721         * tree-ssa-loop-ivopts.c (get_computation_at): Produce computations
14722         in distributed form.
14723
14724 2005-02-06  Richard Sandiford  <rsandifo@redhat.com>
14725
14726         * expmed.c (store_bit_field): Make the SUBREG code adjust bitnum.
14727         Set bitpos and offset later in the function.  Do nothing if the
14728         target is a register and if the bitfield lies completely outside
14729         that register.
14730         (extract_bit_field): Make the same SUBREG, bitpos and offset changes
14731         here.  Return an uninitialised register if the source value is stored
14732         in a register and the bitfield lies completely outside that register.
14733
14734 2005-02-06  Steven Bosscher  <stevenb@suse.de>
14735
14736         * df.c (df_insn_refs_record): Use XEXP to get the operand of a USE,
14737         not SET_DEST.
14738
14739 2005-02-06  Marcin Dalecki  <martin@dalecki.de>
14740
14741         * diagnostic.c (default_diagnostic_finalizer): Fix use of attribute.
14742
14743 2005-02-06  Geoffrey Keating  <geoffk@apple.com>
14744
14745         * config.gcc (*-*-darwin*): Separate darwin7 and darwin8 configs.
14746         * config/darwin8.h: New.
14747         * config/darwin7.h: Update comment.
14748
14749 2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
14750             Dorit Naishlos  <dorit@il.ibm.com>
14751
14752         * tree-vectorizer.h (LOC): New type.
14753         (UNKNOWN_LOC, EXPR_LOC, LOC_FILE, LOC_LINE): New macros.
14754         (loop_line_number): New field in struct _loop_vec_info.
14755         (LOOP_VINFO_LOC, LOOP_LOC): New macros.
14756
14757         * tree-vectorizer.c (input.h): Included.
14758         (find_loop_location): New function.
14759         (vect_debug_stats): Argument changed from loop to LOC. Computation of
14760         loop line number removed.
14761         (vect_debug_details): Likewise.
14762         (new_loop_vec_info): Initialize new field LOOP_VINFO_LOC.
14763
14764         (slpeel_make_loop_iterate_ntimes): Call find_loop_location. Argument in
14765         call to vect_debug_details/stats changed from loop to loop_loc.
14766         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
14767         (slpeel_tree_peel_loop_to_edge): Likewise.
14768
14769         (vect_analyze_offset_expr): Argument in call to vect_debug_details/stats
14770         changed from NULL to UNKNOWN_LOC.
14771         (vect_get_base_and_offset):
14772         (vect_create_addr_base_for_vector_ref):
14773         (get_vectype_for_scalar_type):
14774         (vect_create_data_ref_ptr):
14775         (vect_init_vector):
14776         (vect_get_vec_def_for_operand):
14777         (vect_finish_stmt_generation):
14778         (vectorizable_assignment):
14779         (vectorizable_operation):
14780         (vectorizable_store):
14781         (vectorizable_load):
14782         (vect_transform_stmt):
14783         (vect_update_ivs_after_vectorizer):
14784         (vect_do_peeling_for_loop_bound):
14785         (vect_do_peeling_for_alignment):
14786         (vect_transform_loop):
14787         (vect_is_simple_use):
14788         (vect_analyze_operations):
14789         (vect_is_simple_iv_evolution):
14790         (vect_analyze_scalar_cycles):
14791         (vect_analyze_data_ref_dependences):
14792         (vect_compute_data_ref_alignment):
14793         (vect_enhance_data_refs_alignment):
14794         (vect_analyze_data_ref_access):
14795         (vect_analyze_data_ref_accesses):
14796         (vect_analyze_pointer_ref_access):
14797         (vect_get_memtag_and_dr):
14798         (vect_analyze_data_refs):
14799         (vect_mark_relevant):
14800         (vect_stmt_relevant_p):
14801         (vect_mark_stmts_to_be_vectorized):
14802         (vect_can_advance_ivs_p):
14803         (vect_get_loop_niters):
14804         (vect_analyze_loop):
14805         (vectorize_loops): Likewise.
14806
14807         (vectorizable_load): Argument in call to vect_debug_details/stats
14808         changed from loop to LOOP_LOC (loop_vinfo).
14809         (vect_transform_loop):
14810         (vect_analyze_operations):
14811         (vect_analyze_scalar_cycles):
14812         (vect_analyze_data_ref_dependence):
14813         (vect_enhance_data_refs_alignment):
14814         (vect_analyze_data_ref_accesses):
14815         (vect_analyze_pointer_ref_access):
14816         (vect_analyze_data_refs):
14817         (vect_analyze_loop): Likewise.
14818
14819         (vect_analyze_loop_form): Argument in call to vect_debug_details/stats
14820         changed from loop to loop_loc.
14821
14822         (vect_enhance_data_refs_alignment): Removed unused variable loop.
14823
14824 2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
14825             Dorit Naishlos  <dorit@il.ibm.com>
14826
14827         * tree-vectorizer.c (vect_analyze_data_ref_dependence): Function
14828         declaration added.
14829         (vect_analyze_data_ref_dependences): Likewise.
14830
14831         (vect_is_simple_use): Argument changed from loop structure to
14832         loop_vect_info structure.
14833         (vect_can_advance_ivs_p): Likewise.
14834         (vect_create_index_for_vector_ref): Likewise.
14835         (vect_update_ivs_after_vectorizer): Likewise.
14836         (new_stmt_vec_info): Likewise.
14837
14838         (new_loop_vec_info): Second argument in call to new_stmt_vec_info was
14839         changed from loop to loop_vinfo.
14840         (vect_create_data_ref_ptr): First argument in call to
14841         vect_create_index_for_vector_ref was changed from loop to loop_vinfo.
14842         (vectorizable_assignment): Second argument in call to vect_is_simple_use
14843         was changed from loop to loop_vinfo.
14844         (vectorizable_operation): Likewise.
14845         (vectorizable_store): Likewise.
14846         (vect_mark_stmts_to_be_vectorized): Likewise.
14847         (vect_do_peeling_for_loop_bound): First argument in call to
14848         vect_update_ivs_after_vectorizer was changed from loop to loop_vinfo.
14849         (vect_analyze_operations): Argument in call to vect_can_advance_ivs_p
14850         was changed from loop to loop_vinfo.
14851         (vect_analyze_data_ref_dependences): Third argument in call to
14852         vect_analyze_data_ref_dependence was changed from loop to loop_vinfo.
14853
14854         (vect_create_index_for_vector_ref): Get the loop from loop_vinfo.
14855         (vect_create_data_ref_ptr): Likewise.
14856         (vect_init_vector): Likewise.
14857         (vect_get_vec_def_for_operand): Likewise.
14858         (vectorizable_assignment): Likewise.
14859         (vectorizable_operation): Likewise.
14860         (vectorizable_store): Likewise.
14861         (vectorizable_load): Likewise.
14862         (vect_update_ivs_after_vectorizer): Likewise.
14863         (vect_is_simple_use): Likewise.
14864         (vect_analyze_data_ref_dependence): Likewise.
14865         (vect_analyze_pointer_ref_access): Likewise.
14866         (vect_can_advance_ivs_p): Likewise.
14867
14868         * tree-vectorizer.h: (_loop_vec_info): Definition and macros moved
14869         before _stmt_vec_info.
14870         (_stmt_vec_info): Loop field replaced by loop_vec_info.
14871         (STMT_VINFO_LOOP): Replaced with STMT_VINFO_LOOP_VINFO.
14872         (new_stmt_vec_info): Argument changed from loop structure to
14873         loop_vect_info structure
14874
14875         (vect_analyze_data_ref_dependences): Unnecessary line was removed.
14876         (vect_analyze_offset_expr): Avoid 80 columns overflow.
14877         (vect_create_addr_base_for_vector_ref): Likewise.
14878         (vect_analyze_pointer_ref_access): Likewise.
14879
14880 2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
14881
14882         PR tree-opt/19768
14883         * tree-ssa-dse.c (fix_phi_uses): Update the occurs in abnormal
14884         phi flag if the phi is abnormal.
14885
14886 2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
14887
14888         PR tree-opt/19736
14889         * tree-ssa.c (replace_immediate_uses): Update the immediate_uses
14890         information for the new statement.
14891
14892 2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
14893
14894         PR driver/19117
14895         * gcc.c (main): Include the target in -v output.
14896
14897 2005-02-03  Alexandre Oliva  <aoliva@redhat.com>
14898
14899         * combine.c (simplify_comparison, case SIGN_EXTEND, ZERO_EXTEND):
14900         Do not drop the extend if we'd have to add a paradoxical subreg
14901         later.  Include optabs.h and insn-codes.h.
14902         * Makefile.in (combine.o): Depend on $(OPTABS_H).
14903
14904 2005-02-02  Roger Sayle  <roger@eyesopen.com>
14905
14906         PR middle-end/19405
14907         * real.h (REAL_MODE_FORMAT_COMPOSITE_P): New macro.
14908         * fold-const.c (const_binop): Avoid constant folding floating
14909         point operations in modes that use composite representations.
14910         * simplify-rtx.c (simplify_binary_operation): Likewise.
14911
14912 2005-02-02  Geoffrey Keating  <geoffk@apple.com>
14913
14914         * config/rs6000/altivec.md (altivec_dst): Make the first operand
14915         a REG, not a MEM.
14916         (altivec_dstt): Likewise.
14917         (altivec_dstst): Likewise.
14918         (altivec_dststt): Likewise.
14919         * config/rs6000/rs6000.c (altivec_expand_dst_builtin): Adjust creation
14920         of first operand.
14921
14922 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
14923
14924         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Copy
14925         EXPR_LOCUS from orig_cond to the new cond_stmt.
14926         (vect_finish_stmt_generation): Copy EXPR_LOCUS from stmt to
14927         the new vec_stmt.
14928
14929 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
14930
14931         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Call
14932         standard_iv_increment_position. Remove call to bsi_next
14933         (no need to bump the iterator anymore).
14934         (vect_create_index_for_vector_ref): Call
14935         standard_iv_increment_position. Remove second function argument.
14936         (vect_finish_stmt_generation): Remove call to bsi_next
14937         (no need to bump the iterator anymore).
14938         (vect_create_data_ref_ptr): Remove second argument (bsi) in call
14939         to vect_create_index_for_vector_ref.
14940
14941 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
14942
14943         * tree-vectorizer.c (vect_mark_stmts_to_be_vectorized): Check if
14944         phis are used out of the loop.
14945
14946 2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
14947
14948         PR c/17807
14949         * c-decl.c (undef_nested_function): New variable.
14950         (pop_scope): Diagnose undefined nested functions.
14951         (finish_function): Don't attempt cgraph processing or genericizing
14952         if current top-level function contained an undefined nested
14953         function.  Reset undef_nested_function at the end of a top-level
14954         function.
14955
14956 2005-02-02  Zdenek Dvorak  <dvorakz@suse.cz>
14957
14958         * tree.c (build_int_cst_type): Take sign of the value into account
14959         when deciding whether sign extend the value.
14960
14961 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
14962
14963         PR c/18502
14964         * gcc.c (cpp_unique_options): Remove %{trigraphs}.
14965         (cpp_options, cc1_options): Change %{std*&ansi} to
14966         %{std*&ansi&trigraphs}.
14967
14968 2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14969
14970         * cse.c: Update comments.
14971
14972 2005-02-02  Aldy Hernandez  <aldyh@redhat.com>
14973
14974         * config/rs6000/rs6000.c (rs6000_spe_function_arg): Multi-reg
14975         arguments go on the stack.  Do not put complex doubles in odd/even
14976         pairs.
14977
14978 2005-02-02  Steven Bosscher  <stevenb@suse.de>
14979
14980         * doc/invoke.texi: Update the options enabled at -O1, -O2,
14981         and -O3.  Update the documentation for -fgcse-sm, -fgcse-las,
14982         -ftree-pre, and -fthread-jumps.
14983
14984 2005-02-02  Richard Sandiford  <rsandifo@redhat.com>
14985
14986         PR tree-optimization/19578
14987         * tree-flow.h (modified_noreturn_calls): Declare.
14988         (noreturn_call_p): Declare.
14989         * tree-flow-inline.h (noreturn_call_p): New function.
14990         (modify_stmt): Add modified noreturn calls to modified_noreturn_calls.
14991         * tree-cfg.c (modified_noreturn_calls): New variable.
14992         (cleanup_control_flow): Use noreturn_call_p.  Split basic blocks
14993         that contain a mid-block noreturn call.
14994         * tree-ssa.c (delete_tree_ssa): Clear modified_noreturn_calls.
14995
14996 2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14997
14998         * df.c (df_def_record_1, df_uses_record): Don't use
14999         DF_FOR_REGALLOC.
15000         * df.h (DF_FOR_REGALLOC): Remove.
15001
15002 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
15003
15004         PR c/19435
15005         * c-typeck.c (really_start_incremental_init): Reset
15006         constructor_max_index for arrays of incomplete type.
15007
15008 2005-02-02  Jeff Law  <law@redhat.com>
15009
15010         * gcse.c (struct reg_set): Store the block index where the register
15011         was set rather than the setting insn.
15012         (record_one_set, compute_transp): Corresponding changes.
15013         (pre_insert_copy_insn): Do not call replace_one_set.
15014         (replace_one_set): Remove.
15015
15016 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
15017
15018         PR other/15514
15019         * doc/gcov.texi: Fix typo.
15020
15021 2005-02-01  Richard Henderson  <rth@redhat.com
15022
15023         PR target/19680
15024         * config/i386/i386.h (MODES_TIEABLE_P): Use ix86_modes_tieable_p.
15025         * config/i386/i386.c (ix86_hard_regno_mode_ok): Change return
15026         type to bool.
15027         (ix86_tieable_integer_mode_p, ix86_modes_tieable_p): New.
15028         * config/i386/i386-protos.h: Update.
15029
15030 2005-02-01  Steven Bosscher  <stevenb@suse.de>
15031
15032         PR tree-optimization/19217
15033         * tree-cfg.c (verify_expr): Use the data field to see if TP was
15034         seen inside a PHI node.  Do not do the ADDR_EXPR check if it was.
15035         (verify_stmts): Pass (void*)1 as data to verify_expr to signal
15036         that it is walking a PHI node.
15037
15038 2005-02-01  Joseph S. Myers  <joseph@codesourcery.com>
15039
15040         * doc/extend.texi (Nested Functions): Update.
15041
15042 2005-02-01  Richard Henderson  <rth@redhat.com>
15043
15044         PR 19696
15045         * optabs.c (expand_copysign_absneg): Export.
15046         * optabs.h (expand_copysign_absneg): Declare.
15047         * config/rs6000/rs6000.md (copysigntf3): New.
15048
15049 2005-02-01  Diego Novillo  <dnovillo@redhat.com>
15050
15051         PR tree-optimization/19633
15052         * tree-flow.h (struct ptr_info_def): Add field 'pt_null'.
15053         * tree-ssa-alias.c (init_alias_info): Initialize.
15054         (merge_pointed_to_info): Set.
15055         (add_pointed_to_expr): Set pt_null if EXPR is a NULL pointer.
15056         (dump_points_to_info_for): Show value of pt_null.
15057         (struct count_ptr_d): Declare.
15058         (find_ptr_dereference): Remove.
15059         (ptr_is_dereferenced_by): Remove.
15060         (count_ptr_derefs): New local function.
15061         (count_uses_and_derefs): New local function.
15062         (compute_points_to_and_addr_escape): Call it.  If the number
15063         of dereferences is greater than zero, mark the pointer as
15064         dereferenced.  If there are fewer dereferences than uses of
15065         the pointer, the pointer's value escapes.
15066
15067 2005-02-01  Diego Novillo  <dnovillo@redhat.com>
15068
15069         PR tree-optimization/19670
15070         * tree-ssa.c (verify_ssa_name): Don't set TREE_VISITED
15071         here...
15072         (verify_use): ... set it here, instead.
15073
15074 2005-02-01  Janis Johnson  <janis187@us.ibm.com>
15075
15076         * doc/sourcebuild.texi (Test directives): Fix formatting.
15077
15078         * doc/sourcebuild.texi (Test directives): Describe selector
15079         expressions.
15080
15081 2005-02-01  Segher Boessenkool  <segher@kernel.crashing.org>
15082
15083         * config.gcc (powerpc64-*-linux*): Default to -m64 also for
15084         specific 64-bit CPUs.
15085
15086 2005-02-01  Richard Earnshaw  <rearnsha@arm.com>
15087
15088         PR target/16201
15089         * arm.c (arm_eliminable_register): New function.
15090         (adjacent_mem_locations): Don't allow eliminable registers.  Use
15091         HOST_WIDE_INT for address offsets.
15092         * arm-protos.h (arm_eliminable_register): Add prototype.
15093
15094 2005-02-01  Steven Bosscher  <stevenb@suse.de>
15095
15096         PR optimization/15242
15097         * params.def (PARAM_MAX_GOTO_DUPLICATION_INSNS): New param.
15098         * basic-block.h (duplicate_computed_gotos): Add prototype.
15099         * bb-reorder.c (duplicate_computed_gotos): New function to
15100         duplicate sufficiently small blocks ending in a computed jump.
15101         * passes.c (rest_of_compilation): Call duplicate_computed_gotos
15102         if not optimizing for size.
15103         * cfgcleanup.c (try_crossjump_bb): If not optimizing for size,
15104         never do tail merging for blocks ending in a computed jump.
15105         * doc/invoke.texi: Document the max-goto-duplication-insns param.
15106
15107 2005-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
15108
15109         Patch from Richard Sandiford <rsandifo@redhat.com>
15110         * reload1.c (choose_reload_regs): Prevent the find_equiv_reg() code
15111         from inheriting a subreg equivalence with a non-spill register.
15112
15113         * tree.h (DECL_FUNCTION_CODE): Document that it is overloaded.
15114
15115 2005-02-01  Alexandre Oliva  <aoliva@redhat.com>
15116
15117         * config/frv/frv.c (movcc_fp_destination_operand): New.
15118         (gpr_or_memory_operand): Fix typo in comment.
15119         (gpr_or_memory_operand_with_scratch): New.
15120         * config/frv/frv.h (PREDICATE_CODES): Add the two new predicates.
15121         * config/frv/frv.md (movcc_fp, movcc_fp_internal): Use
15122         movcc_fp_destination_operand.
15123         (reload_incc_fp): Use gpr_or_memory_operand_with_scratch.
15124         Legitimize memory addresses using a scratch register.
15125
15126 2005-01-31  Jeff Law  <law@redhat.com>
15127
15128         * tree-into-ssa.c (mark_def_sites_global_data): Make KILLS
15129         bitmap a sparse bitmap instead of a simple bitmap.
15130         (mark_def_sites_initialize_block):  Corresponding changes.
15131         (ssa_mark_def_sites_initialize_block): Likewise.
15132         (ssa_mark_phi_uses): Likewise.
15133         (mark_def_site, ssa_mark_def_sites): Likewise.
15134         (mark_def_site_blocks): Likewise.
15135         (rewrite_ssa_into_ssa): Likewise.
15136
15137         * tree-ssa-dom.c (record_cond): Pass correct variable type
15138         for last argument to htab_find_slot_with_hash.
15139
15140         * fold-const.c (fold, case CEIL_MOD_EXPR): Do not lose side
15141         effects when optimizing 0 % X.  Do not try to optimize X % 0.
15142
15143 2005-01-31  James E. Wilson  <wilson@specifixinc.com>
15144
15145         * config/ia64/itanium1.md (1_scall bypass): Change 2_mmalua to
15146         1_mmalua.
15147
15148 2005-02-01  Eric Christopher  <echristo@redhat.com>
15149
15150         * config/mips/mips.c (override_options): Warn if -mint64
15151         is used.
15152         * doc/invoke.texi (MIPS Options): Document that -mint64 is
15153         deprecated.
15154
15155 2005-02-01  Kazu Hirata  <kazu@cs.umass.edu>
15156
15157         * cse.c (cse_reg_info): Remove hash_next, next, regno.  Add
15158         timestamp.
15159         (cse_reg_info_list, cse_reg_info_list_free, REGHASH_SHIFT,
15160         REGHASH_SIZE, REGHASH_MASK, reg_hash, REGHASH_FN,
15161         cached_cse_reg_info, GET_CSE_REG_INFO): Remove.
15162         (cached_regno): Initialize to INVALID_REGNUM.
15163         (cse_reg_info_table_size,
15164         cse_reg_info_table_first_uninitialized,
15165         cse_reg_info_timestamp): New.
15166         (REG_TICK, REG_IN_TABLE, SUBREG_TICKED, REG_QTY): Use
15167         get_cse_reg_info.
15168         (init_cse_reg_info, get_cse_reg_info_1): New.
15169         (get_cse_reg_info): Cache the last look-up.
15170         (new_basic_block): Update the code to clear mappings from
15171         registers to cse_reg_info entries.
15172         (cse_main): Call init_cse_reg_info.
15173
15174         * cse.c (get_cse_reg_info): Update a comment.
15175
15176 2005-01-31  Steven Bosscher  <stevenb@suse.de>
15177
15178         PR c/19333
15179         * c-decl.c (start_decl): Do not warn about arrays of elements with
15180         an incomplete type here.
15181         (grokdeclarator): Do it here by making a pedwarn an error.
15182         * c-typeck.c (push_init_level): If there were previous errors with
15183         the constructor type, do not warn about braces for initializers.
15184         (process_init_element): Likewise for excess initializer elements.
15185
15186 2005-01-31  Kazu Hirata  <kazu@cs.umass.edu>
15187
15188         * cse.c (delete_trivially_dead_insn): Don't iterate.
15189
15190 2005-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
15191
15192         * config/rs6000/rs6000.md (copysignsf3): New expand.
15193         (copysigndf3): Likewise.
15194
15195 2005-01-31  Steven Bosscher  <stevenb@suse.de>
15196
15197         * recog.c (constrain_operands): Only look for earlyclobber operand
15198         conflicts if an '&' constraint was seen.
15199
15200 2005-01-31  Marc Espie <espie@openbsd.org>
15201
15202         * config.gcc: Don't include embedded systems fragment, switches default
15203         debugging format to ELF.
15204         * config/i386/openbsdelf.h: Add DBX_REGISTER_NUMBER since we no
15205         longer pick it up there.
15206
15207 2005-01-31  Dale Johannesen  <dalej@apple.com>
15208
15209         * doc/extend.texi (nested functions): Fix linkage description.
15210         Clarify that static is not allowed.
15211
15212 2005-01-31  Dale Johannesen  <dalej@apple.com>
15213
15214         * config/rs6000/darwin.md (movsf_low_di):  Make work.
15215         (movdf_low_di):  Make work.
15216
15217 2005-01-31  Dale Johannesen  <dalej@apple.com>
15218
15219         * config/rs6000/darwin-tramp.asm (__trampoline_setup):
15220         Make work for 64 bit.
15221
15222 2005-01-31  Roger Sayle  <roger@eyesopen.com>
15223             Dale Johannesen  <dalej@apple.com>
15224
15225         PR middle-end/19650
15226         * fold-const.c (fold_binary_op_with_conditional_arg):
15227         Make types match original operands, before STRIP_NOPS.
15228
15229 2005-01-31  Alan Modra  <amodra@bigpond.net.au>
15230
15231         * config/rs6000/linux-unwind.h (struct gcc_vregs): New.
15232         (struct gcc_regs): Rename from gcc_pt_regs.  Add more regs.
15233         (struct gcc_sigcontext): Delete.  Merge contents to..
15234         (struct gcc_ucontext): ..here.
15235         (get_sigcontext): Delete.
15236         (get_regs): New function, like get_sigcontext but return regs ptr.
15237         64-bit version finds regs from r1 to support vdso.
15238         (ppc_linux_aux_vector): New function.
15239         (ppc_fallback_frame_state): Modify for get_regs.  Restore fprs
15240         and vector regs.
15241
15242 2005-01-31  Ira Rosen  <irar@il.ibm.com>
15243
15244         * tree-vectorizer.c (vect_analyze_offset_expr): Use ssizetype instead
15245         sizetype.
15246         (vect_get_base_and_offset): Use ssizetype instead sizetype. Remove
15247         redundant fold. Fix misalignment for MINUS_EXPR.
15248         (vect_compute_data_ref_alignment): Use ssizetype instead sizetype.
15249         (vect_analyze_pointer_ref_access): Likewise.
15250         (vect_get_memtag_and_dr): Likewise.
15251
15252 2005-01-31  Richard Henderson  <rth@redhat.com>
15253
15254         * config/i386/i386.c (absnegsf2_mixed): Remove all of the # hackery.
15255         (absnegsf2_sse, absnegsf2_i387, absnegdf2_mixed, absnegdf2_sse,
15256         absnegdf2_i387, absnegxf2_i387): Likewise.
15257
15258 2005-01-31  Richard Henderson  <rth@redhat.com>
15259
15260         PR 19696
15261         * optabs.c (expand_copysign_absneg): New.
15262         (expand_copysign_bit): Split out from ...
15263         (expand_copysign): ... here.  Use expand_copysign_absneg.
15264
15265 2005-01-30  Roger Sayle  <roger@eyesopen.com>
15266
15267         PR middle-end/19697
15268         * config/pa/pa.md (anddi3, iordi3): On HPPA64, disallow an integer
15269         constant as the second operand and a register as the third.
15270
15271 2005-01-31  Danny Smith  <dannysmith@users.sourceforge.net>
15272
15273         PR target/19704
15274         * config/i386/i386.c (ix86_function_ok_for_sibcall):  Also check
15275         that dllimport'd functions do not use all call-clobbered registers
15276         to pass parameters.
15277
15278 2005-01-30  Richard Henderson  <rth@redhat.com>
15279
15280         PR 19696
15281         * optabs.c (expand_absneg_bit): Split out from expand_unop and
15282         expand_abs_nojump and generalize.  Use operand_subword and
15283         emit_no_conflict_block.  Support large modes.
15284         (expand_abs_nojump): Use it.  Use HONOR_SIGNED_ZEROS to fall
15285         back to maximum.
15286         (expand_unop): Likewise.  Use HONOR_SIGNED_ZEROS to fall back
15287         negation to subtraction.
15288         (expand_copysign): Check that the format has signed zeros.
15289         Use operand_subword and emit_no_conflict_block.  Support large modes.
15290
15291 2005-01-30  Daniel Berlin  <dberlin@dberlin.org>
15292
15293         Fix PR tree-optimization/19624
15294
15295         * Makefile.in (tree-ssa-pre.o): Add CFGLOOP_H.
15296         * tree-ssa-pre.c: Add cfgloop.h.
15297         Update comment.
15298         (pre_stats): New member, constified.
15299         (inserted_exprs): New static variable.
15300         (NECESSARY): New macro.
15301         (create_expression_by_pieces): Fold the expression, and
15302         mark it as defaulting to not necessary. Also put in
15303         inserted_exprs.
15304         (fully_constant_expression): New function.
15305         (insert_into_preds_of_block): Modify to not insert phis when we
15306         are playing with induction variables.
15307         Push phis onto the inserted_exprs vector, and mark them as not
15308         necessary by default.
15309         (insert_aux): Call fully_constant_expression on eprime.
15310         If all edges produce the same value, mark it constant.
15311         (mark_operand_necessary): New function.
15312         (remove_dead_inserted_code): New function.
15313         (init_pre): Init loop optimizer to get loop info.
15314         (fini_pre): Free loop_optimizer, and inserted_exprs vec.
15315         (execute_pre): Commit edge inserts, then remove dead code.
15316
15317 2005-01-30  Richard Henderson  <rth@redhat.com>
15318
15319         * rtl.c (rtx_equal_p): No early exit for CONST_VECTOR.
15320         * varasm.c (const_rtx_hash_1): Handle CONST_VECTOR.
15321
15322 2005-01-30  Richard Henderson  <rth@redhat.com>
15323
15324         PR target/19700
15325         * config/i386/i386.c (ix86_expand_copysign): New.
15326         (ix86_split_copysign_const): New.
15327         (ix86_split_copysign_var): Rename from ix86_split_copysign,
15328         rearrange op1/nmask operands.
15329         * config/i386/i386-protos.h: Update.
15330         * config/i386/i386.md (copysignsf3): Use ix86_expand_copysign.
15331         (copysigndf3): Likewise.
15332         (copysignsf3_const, copysigndf3_const): New.
15333         (copysignsf3_var): Rename from copysignsf3, split out splitter
15334         and fix split predicate for X constraint.
15335         (copysigndf3_var): Similarly.
15336
15337 2005-01-30  Kazu Hirata  <kazu@cs.umass.edu>
15338
15339         * optabs.c, doc/c-tree.texi, doc/install.texi, doc/md.texi,
15340         doc/passes.texi, doc/rtl.texi, doc/sourcebuild.texi,
15341         doc/tm.texi, doc/tree-ssa.texi: Update copyright.
15342
15343 2005-01-29  Richard Henderson  <rth@redhat.com>
15344
15345         PR target/19690
15346         * config/i386/i386.md (movdf_nointeger, movdf_integer): Fix ordering
15347         of # and * in constraints.
15348
15349 2005-01-29  Richard Henderson  <rth@redhat.com>
15350
15351         PR middle-end/19689
15352         * expr.c (store_field): Don't strip sub-mode cast when the input
15353         data is even smaller.
15354
15355 2005-01-29  Richard Henderson  <rth@redhat.com>
15356
15357         PR middle-end/19687
15358         * expr.c (categorize_ctor_elements_1): Check for CONSTRUCTOR of a
15359         union being empty.
15360
15361 2005-01-29  Richard Henderson  <rth@redhat.com>
15362
15363         * combine.c (make_field_assignment): Fix argument order
15364         to gen_int_mode.
15365
15366 2005-01-29  Richard Guenther <richard.guenther@uni-tuebingen.de>
15367
15368         PR tree-optimization/15791
15369         * fold-const.c (extract_array_ref): New function.
15370         (fold): Fold comparisons between &a[i] and &a[j] or
15371         semantically equivalent trees.
15372
15373 2005-01-29  Jeff Law  <law@redhat.com>
15374
15375         * gcse.c (insert_expr_in_table): Revamp handling of available
15376         and anticipatable occurrence lists to avoid unnecessary list
15377         walking.
15378         (insert_set_in_table): Similarly.
15379
15380 2005-01-29  Joseph S. Myers  <joseph@codesourcery.com>
15381
15382         * c-common.c (fix_string_type): Just use c_build_qualified_type to
15383         build string type.
15384         (c_build_qualified_type): Build qualified array types with
15385         TYPE_MAIN_VARIANT pointing to corresponding unqualified type.
15386         * c-decl.c (c_make_fname_decl): Build unqualified array type
15387         before qualified type.
15388         (grokdeclarator): Use TYPE_MAIN_VARIANT of typedef type if element
15389         type is qualified, not just if type itself is.  Don't apply
15390         qualifiers to array type when declarator is processed.  Apply
15391         qualifiers to field type whether or not it is an array type.
15392         Don't handle array types specially for applying qualifiers to
15393         variables.
15394         * c-typeck.c (composite_type): Build unqualified element type and
15395         array type when forming composite of array types.
15396         (common_pointer_type, comptypes, comp_target_types,
15397         type_lists_compatible_p, build_indirect_ref, build_array_ref,
15398         convert_for_assignment): Don't apply TYPE_MAIN_VARIANT to array
15399         types.
15400         (type_lists_compatible_p): Cache TREE_VALUE (args1) and TREE_VALUE
15401         (args2) in variables a1 and a2.
15402
15403 2005-01-29  Kazu Hirata  <kazu@cs.umass.edu>
15404
15405         * cse.c (n_elements_made, max_elements_made): Remove.
15406         (insert): Don't touch n_elements_made.
15407         (cse_main): Don't touch n_elements_made or max_elements_made.
15408
15409 2005-01-28  Stephane Carrez  <stcarrez@nerim.fr>
15410
15411         PR target/15384
15412         * config/m68hc11/t-m68hc11-gas (dp-bit.c): Fix typo causing a
15413         configuration part of dp-bit.c to be lost.
15414
15415 2005-01-28  Roger Sayle  <roger@eyesopen.com>
15416
15417         * expmed.c (expand_mult_highpart_optab): When attempting to use
15418         a non-widening multiplication in a wider mode, the operands need
15419         to be converted (zero or sign extended) to that mode.
15420
15421 2005-01-28  Ian Lance Taylor  <ian@airs.com>
15422
15423         PR middle-end/16558
15424         PR middle-end/19583
15425         * gimple-low.c (block_may_fallthru): TRY_FINALLY_EXPR only falls
15426         through if both operands fall through.
15427
15428 2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15429
15430         * cse.c (fold_rtx) <PC>: Don't optimize.
15431
15432 2005-01-28  Jeff Law  <law@redhat.com>
15433
15434         * fold-const.c (fold, case CEIL_MOD_EXPR): Optimize 0 % X.
15435         (case FLOOR_MOD_EXPR, ROUND_MOD_EXPR, TRUNC_MOD_EXPR): Similarly.
15436
15437 2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15438
15439         * cse.c (cse_reg_info_free_list, cse_reg_info_used_list,
15440         cse_reg_info_used_list_end): Remove.
15441         (cse_reg_info_list, cse_reg_info_list_free): New.
15442         (get_cse_reg_info): When allocating an instance of
15443         cse_reg_info, add it to the beginning of the cse_reg_info_list
15444         list.  Remove code to maintain cse_reg_info_used_list.
15445         (new_basic_block): Reset the free list to the beginning of
15446         cse_reg_info_list.
15447
15448 2005-01-28  Richard Sandiford  <rsandifo@redhat.com>
15449
15450         * config/frv/frv.c (bdesc_2arg): Remove __MDPACKH.
15451         (frv_init_builtins): Change its prototype to take 4 uhalf arguments.
15452         (frv_expand_mdpackh_builtin): New function.
15453         (frv_expand_builtin): Use it to expand __MDPACKH.
15454         * doc/extend.texi (__MDPACKH): Update documentation.
15455
15456 2005-01-28  Uros Bizjak  <uros@kss-loka.si>
15457
15458         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use
15459         SSE_FLOAT_MODE_P for use_sse computation.
15460
15461 2005-01-28  Ralf Corsepius  <ralf.corsepius@rtems.org>
15462
15463         PR target/19663
15464         * config/sparc/rtemself.h (LINK_GCC_C_SEQUENCE_SPEC): undefine.
15465
15466 2005-01-27  Richard Henderson  <rth@redhat.com>
15467
15468         * builtins.c (expand_builtin_copysign): New.
15469         (expand_builtin): Call it.
15470         * genopinit.c (optabs): Add copysign_optab.
15471         * optabs.c (init_optabs): Initialize it.
15472         (expand_copysign): New.
15473         * optabs.h (OTI_copysign, copysign_optab): New.
15474         (expand_copysign): Declare.
15475
15476         * config/alpha/alpha.md (UNSPEC_COPYSIGN): New.
15477         (copysignsf3, ncopysignsf3, copysigndf3, ncopysigndf3): New.
15478
15479         * config/i386/i386.c (ix86_build_signbit_mask): Split from ...
15480         (ix86_expand_fp_absneg_operator): ... here.
15481         (ix86_split_copysign): New.
15482         * config/i386/i386-protos.h: Update.
15483         * config/i386/i386.md (UNSPEC_COPYSIGN): New.
15484         (copysignsf3, copysigndf3): New.
15485
15486         * config/ia64/ia64.md (UNSPEC_COPYSIGN): New.
15487         (copysignsf3, ncopysignsf3): New.
15488         (copysigndf3, ncopysigndf3): New.
15489         (copysignxf3, ncopysignxf3): New.
15490         * config/ia64/ia64.c (rtx_needs_barrier): Handle UNSPEC_COPYSIGN.
15491
15492 2005-01-27  Arend Bayer  <arend.bayer@web.de>
15493             Kazu Hirata  <kazu@cs.umass.edu>
15494
15495         * cse.c: (find_best_addr): Don't call copy_rtx before calling
15496         fold_rtx.  Save cost recomputation if fold_rtx did nothing.
15497         (fold_rtx) <ASM_OPERANDS>: Don't do anything if INSN is
15498         NULL_RTX.
15499
15500 2005-01-27  Jeff Law  <law@redhat.com>
15501
15502         * tree-into-ssa.c (ssa_rewrite_initialize_block): Do not register
15503         definitions of SSA_NAMEs which are not being rewritten.
15504         (rewrite_ssa_into_ssa): Only initialize the current definition
15505         of an SSA_NAME if that SSA_NAME has been marked for rewriting.
15506         If checking is enabled, assert that SSA_NAME_AUX is clear for all
15507         SSA_NAMEs before returning.
15508
15509 2005-01-27  Kazu Hirata  <kazu@cs.umass.edu>
15510
15511         * c-common.def, c-dump.c, c-gimplify.c, c-objc-common.c,
15512         cfgexpand.c, dbxout.c, function.h, opts.c, tree-flow-inline.h,
15513         tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-tailcall.c,
15514         config/avr/avr.md, config/cris/aout.h, config/cris/cris.h,
15515         config/mips/iris6.h, config/sh/sh.c: Update copyright.
15516
15517 2005-01-27  Steven Bosscher  <stevenb@suse.de>
15518
15519         PR middle-end/17278
15520         * opts.c (decode_options): Move flag_thread_jumps from -O1 and
15521         higher to -O2 and higher.  Likewise for tree PRE.
15522         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only iterate at -O2
15523         and better.
15524
15525 2005-01-27  Ian Lance Taylor  <ian@airs.com>
15526
15527         PR middle-end/19583
15528         * gimple-low.c (try_catch_may_fallthru): New static function.
15529         (block_may_fallthru): Handle TRY_CATCH_EXPR.
15530         * tree-inline.c (expand_call_inline): Don't warn about reaching
15531         the end of a non-void function being inlined if the function uses
15532         a return slot.
15533
15534 2005-01-27  Jakub Jelinek  <jakub@redhat.com>
15535
15536         * config/i386/i386.h (CALL_USED_REGISTERS): Fix comment pastos.
15537
15538         PR c/18946
15539         * c-decl.c (warn_if_shadowing): Handle old_decl error_mark_node.
15540         (pushdecl): Only use DECL_FILE_SCOPE_P if DECL_P.
15541         (implicitly_declare): Handle error_mark_node.
15542
15543 2005-01-27  Richard Henderson  <rth@redhat.com>
15544
15545         PR tree-opt/14329
15546         * tree.h (struct tree_decl): Add debug_expr_is_from.
15547         (DECL_DEBUG_EXPR_IS_FROM): New.
15548         (DECL_DEBUG_EXPR): Rename from DECL_DEBUG_ALIAS_OF.
15549         * dwarf2out.c (dwarf2out_var_location): Update to match.
15550         * tree-outof-ssa.c (create_temp): Likewise.
15551         * var-tracking.c (track_expr_p): Likewise.
15552         * tree-sra.c (instantiate_element): Set DECL_DEBUG_EXPR.
15553         * c-objc-common.c (c_tree_printer) <'D'>: Handle DECL_DEBUG_EXPR.
15554         * toplev.c (default_tree_printer): Likewise.
15555
15556 2005-01-27  Alexandre Oliva  <aoliva@redhat.com>
15557
15558         * config/frv/frv.c (frv_class_likely_spilled_p): Add GR8_REGS,
15559         GR9_REGS, GR89_REGS, FDPIC_FPTR_REGS, FDPIC_REGS.
15560
15561 2005-01-27  Steven Bosscher  <stevenb@suse.de>
15562
15563         * tree.h (SWITCH_COND, SWITCH_BODY, SWITCH_LABELS, CASE_LOW,
15564         CASE_HIGH, CASE_LABEL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
15565         ASM_CLOBBERS): Add tree checks.
15566
15567         * c-common.h (SWITCH_TYPE): Rename to SWITCH_STMT_TYPE.
15568         (SWITCH_STMT_COND, SWITCH_STMT_BODY): New.
15569         * c-common.def (SWITCH_STMT): Update to match.
15570         * c-common.c (c_do_switch_warnings): Use SWITCH_STMT accessor
15571         macros instead of SWITCH_EXPR ones.
15572         * c-dump.c (c_dump_tree): Likewise.
15573         * c-gimplify.c (gimplify_switch_stmt): Likewise.
15574         * c-typeck.c (c_start_case, do_case, c_finish_case): Likewise.
15575
15576         * doc/c-tree.texi (SWITCH_STMT): Update accessor macro names.
15577
15578 2005-01-27  Alan Modra  <amodra@bigpond.net.au>
15579
15580         * unwind-dw2.c (execute_stack_op): Add missing cases for
15581         DW_OP_shl, DW_OP_shr, DW_OP_shra, DW_OP_xor.
15582
15583 2005-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
15584
15585         * config.gcc (Obsolete configurations): Remove 'dummy', add
15586         sparclite-*-coff*, sparclite-*-elf*, sparc86x-*-elf* and
15587         sparc-*-openbsd*.
15588
15589 2005-01-26  Diego Novillo  <dnovillo@redhat.com>
15590
15591         PR tree-optimization/19633
15592         * tree-ssa-alias.c (ptr_is_dereferenced_by): Also handle
15593         CALL_EXPRs.
15594         (maybe_create_global_var): Do not create .GLOBAL_VAR if there
15595         are no call-clobbered variables.
15596         * tree-outof-ssa.c (check_replaceable): Return false for calls
15597         with side-effects.
15598
15599 2005-01-26  Ulrich Weigand  <uweigand@de.ibm.com>
15600
15601         * dbxout.c (dbxout_symbol_location): Resolve constant pool references
15602         even for variables with NULL DECL_INITIAL.
15603
15604 2005-01-26  Stuart Hastings  <stuart@apple.com>
15605
15606         * gimplify.c (shortcut_cond_expr): Re-compute side-effects.
15607
15608 2005-01-26  Richard Henderson  <rth@redhat.com>
15609
15610         PR middle-end/18008
15611         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
15612         field's type.
15613         * expr.c (store_field): Strip conversions to odd-bit-sized types
15614         if the destination field width matches.
15615
15616 2005-01-26  Richard Henderson  <rth@redhat.com>
15617
15618         * c-decl.c, expmed.c, expr.c: Revert last change.
15619
15620 2005-01-26  Richard Henderson  <rth@redhat.com>
15621
15622         PR middle-end/18008
15623         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
15624         field's type.
15625         * expmed.c (store_fixed_bit_field): Create a paradoxical subreg
15626         if we don't need the bits above those present in the current mode.
15627         * expr.c (store_field): Strip conversions to odd-bit-sized types
15628         if the destination field width matches.
15629
15630 2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
15631
15632         * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
15633         either -ffast-math or -funsafe-math-optimizations is in use.
15634
15635 2005-01-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
15636
15637         PR target/19293
15638         PR target/19329
15639         * config/avr/avr.c (notice_update_cc): Only set condition code for
15640         ashrqi3 if shift count > 0.
15641         (out_shift_with_cnt): Handle shift count <= 0 as a no-op.
15642         (ashlqi3_out, ashlhi3_out, ashlsi3_out, ashrqi3_out, ashrhi3_out,
15643         ashrsi3_out, lshrqi3_out, lshrhi3_out, lshrsi3_out): Handle shift
15644         count <= 0 as a no-op, and shift count >= width by copying zero
15645         or sign bit to all bits of the result.
15646         * config/avr/avr.md (all shifts): Add alternatives for zero shift
15647         count, with attribute "length" set to 0 and "cc" set to "none".
15648
15649 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
15650
15651         * doc/invoke.texi: Document -mTLS.
15652
15653         * testsuite/gcc.target/frv/all-tls-global-dynamic.c: New.
15654         * testsuite/gcc.target/frv/all-tls-initial-exec.c: New.
15655         * testsuite/gcc.target/frv/all-tls-initial-exec-pic.c: New.
15656         * testsuite/gcc.target/frv/all-tls-local-dynamic.c: New.
15657         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt.c: New.
15658         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt-pic.c: New.
15659         * testsuite/gcc.target/frv/all-tls-local-exec.c: New.
15660         * testsuite/gcc.target/frv/all-tls-local-exec-TLS.c: New.
15661
15662         * configure.ac: Check for a TLS capable gas.
15663
15664         * configure: Regenerate.
15665
15666 2005-01-26  Richard Henderson  <rth@redhat.com>
15667
15668         PR middle-end/18008
15669         * combine.c (make_field_assignment): Simplify store to zero_extract
15670         from a source with an overlapping mask.
15671
15672 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
15673
15674         2004-11-11  Eric Christopher  <echristo@redhat.com>
15675
15676         * config/frv/frv.md: Add fr400_integer automaton. Don't
15677         allow TYPE_MUL, TYPE_MACC, or TYPE_CUT to issue in parallel
15678         to TYPE_MACC.
15679
15680 2005-01-26  Steven Bosscher  <stevenb@suse.de>
15681
15682         PR middle-end/16585
15683         * cfgbuild.c (make_edges): Do not clear or set
15684         current_function_has_computed_jump.
15685         * function.h (struct function): Remove the has_computed_jump field.
15686         (current_function_has_computed_jump): Do not define.
15687         * sched-rgn.c (is_cfg_nonregular): Return true if a basic block ends
15688         in a computed jump.  Ignore current_function_has_computed_jump.
15689
15690 2005-01-26  Richard Henderson  <rth@redhat.com>
15691
15692         PR middle-end/19515
15693         * expr.c (categorize_ctor_elements): New argument p_must_clear.
15694         (categorize_ctor_elements_1): Likewise.  Detect a union that isn't
15695         fully initialized.
15696         (mostly_zeros_p): Update for new categorize_ctor_elements argument.
15697         * gimplify.c (gimplify_init_constructor): Likewise.  Only shove
15698         objects into static storage if they have more than one non-zero value.
15699         * tree.h (categorize_ctor_elements): Update decl.
15700
15701 2005-01-26  Steven Bosscher  <stevenb@suse.de>
15702
15703         PR middle-end/19616
15704         * tree.h (CALL_EXPR_TAILCALL): Add comment.
15705         * calls.c (check_sibcall_argument_overlap_1): Revert the change
15706         to this function from 2004-07-10.
15707         * tree-tailcall.c (suitable_for_tail_opt_p): Do not consider the
15708         the current function for tail call optimizations if the address
15709         of one of it its arguments is taken.
15710
15711 2005-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15712
15713         * cse.c (fold_rtx): Call equiv_constant only when necessary.
15714
15715 2005-01-26  Bernd Schmidt  <bernd.schmidt@analog.com>
15716
15717         * function.c (expand_function_end): If current_function_calls_alloca,
15718         emit stack restore in a place that is reached when the function falls
15719         through at the end.
15720
15721 2005-01-26  Alexandre Oliva  <aoliva@redhat.com>
15722
15723         * Makefile.in (../$(build_subdir)/fixincludes/fixincl): Add dummy
15724         rule to avoid matching inappropriate suffix rule.
15725
15726 2005-01-26  Jan Hubicka  <jh@suse.cz>
15727
15728         PR tree-optimization/19241
15729         * tree-inline.c (copy_body_r): Do not walk subtrees after substituting.
15730
15731 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
15732
15733         * config/cris/cris.h (LIB_SPEC) <sim*>: Use -lsyslinux, not
15734         -lsyssim.  Wrap -lc -lsyssim in --start-group --end-group instead
15735         of doubling.
15736         (STARTFILE_SPEC): Add crti.o, before crtbegin.o.
15737         <sim*>: Always use crt1.o, regardless of N in simN.
15738         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
15739         (ENDFILE_SPEC): Add crtn.o, after crtend.o.
15740         (CRT_CALL_STATIC_FUNCTION): Remove.
15741         * config/cris/aout.h (STARTFILE_SPEC): <!melinux && sim*>: Always
15742         use crt1.o, regardless of N in simN.
15743         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
15744         (LIB_SPEC): Do not define; default to the one in config/cris/cris.h.
15745         (CRIS_CPP_SUBTARGET_SPEC) <melinux && !nostdinc>: Remove special
15746         case isystem setting.
15747         (MAX_OFILE_ALIGNMENT): Correct to 32, not 16.
15748
15749 2005-01-25  Ian Lance Taylor  <ian@airs.com>
15750
15751         * gimple-low.c (block_may_fallthru): Correct handling of
15752         SWITCH_EXPR--may fall through if SWITCH_LABELS is NULL.
15753
15754 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
15755
15756         * config/cris/cris.h (CPP_SPEC): Adjust the various mtune=
15757         handlers to match indentation; nested under the mtune=* handler.
15758         Similar for mcpu= and march=.
15759
15760 2005-01-25  Daniel Jacobowitz  <dan@codesourcery.com>
15761
15762         * config/mips/linux.h (LIB_SPEC): Remove -rpath-link.
15763         * config/mips/linux64.h (LIB_SPEC): Likewise.
15764         * config/mn10300/linux.h (LIB_SPEC): Likewise.
15765         * config/sh/linux.h (LIB_SPEC): Likewise.
15766
15767 2005-01-25  Aldy Hernandez  <aldyh@redhat.com>
15768
15769         * config/frv/frv.c (frv_legitimize_tls_address): New.
15770         (TARGET_HAVE_TLS): Define.
15771         (FRV_SYMBOL_REF_TLS_P): Define.
15772         (frv_override_options): Handle new register classes.
15773         (frv_legitimate_address_p): Reject tls addresses.
15774         (frv_legitimize_address): Handle TLS addresses.
15775         (gen_inlined_tls_plt): New.
15776         (gen_tlsmoff): New.
15777         (frv_legitimize_tls_address): New.
15778         (unspec_got_name): Add TLS entries.
15779         (got12_operand): Add R_FRV_TLSMOFF12 case.
15780         (frv_emit_move): Fixup TLS addresses.
15781         (frv_emit_movsi): Legitimize TLS addresses.
15782
15783         * config/frv/frv.h (MASK_BIG_TLS): New.
15784         (TARGET_BIG_TLS): New.
15785         (HAVE_AS_TLS): Define.
15786         (TARGET_SWITCHES): Add -mTLS and -mtls options.
15787         (enum reg_class): Add GR8_REGS, GR9_REGS, GR89_REGS.
15788         (REG_CLASS_NAMES): Same.
15789         (REG_CLASS_CONTENTS): Same.
15790         (CONSTRAINT_LEN): New.
15791         (REG_CLASS_FROM_CONSTRAINT): New.
15792         (PREDICATE_CODES): Add symbolic_operand.
15793
15794         * config/frv/frv.md (define_constants): Add UNSPEC_GETTLSOFF,
15795         UNSPEC_TLS_LOAD_GOTTLSOFF12, UNSPEC_TLS_INDIRECT_CALL,
15796         UNSPEC_TLS_TLSDESC_LDD, UNSPEC_TLS_TLSDESC_LDD_AUX,
15797         UNSPEC_TLS_TLSOFF_LD, UNSPEC_TLS_LDDI, UNSPEC_TLSOFF_HILO,
15798         R_FRV_GOTTLSOFF_HI, R_FRV_GOTTLSOFF_LO, R_FRV_TLSMOFFHI,
15799         R_FRV_TLSMOFFLO, R_FRV_TLSMOFF12, R_FRV_TLSDESCHI,
15800         R_FRV_TLSDESCLO, R_FRV_GOTTLSDESCHI, R_FRV_GOTTLSDESCLO, GR8_REG,
15801         GR9_REG, GR14_REG, LRREG.
15802         (type): Add load_or_call attribute.
15803         ("load_or_call"): New reservation.
15804         ("call_gettlsoff"): New.
15805         ("tls_indirect_call"): New.
15806         ("tls_load_gottlsoff12"): New.
15807         ("tlsoff_hilo"): New.
15808         ("tls_tlsdesc_ldd"): New.
15809         ("tls_tlsoff_ld"): New.
15810         ("tls_lddi"): New.
15811
15812         * config/frv/frv-protos.h (symbolic_operand): Protoize.
15813
15814         2005-01-25  Alexandre Oliva  <aoliva@redhat.com>
15815
15816         * config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Define.
15817         * config/frv/frv-protos.h (frv_output_dwarf_dtprel): Declare.
15818         * config/frv/frv.c (TLS_BIAS): Define.
15819         (frv_output_dwarf_dtprel): New.
15820
15821 2005-01-26  Jakub Jelinek  <jakub@redhat.com>
15822
15823         PR rtl-optimization/19579
15824         * ifcvt.c (noce_try_cmove_arith): If emitting instructions to set up
15825         both A and B, see if they don't clobber registers the other expr uses.
15826
15827 2005-01-25  J"orn Rennecke <joern.rennecke@st.com>
15828
15829         * real.c (do_add): Initialize signalling and canonical members.
15830
15831         * real.c (real_from_integer): Zero out destination.
15832
15833 2005-01-18  Jan Hubicka  <jh@suse.cz>
15834
15835         PR tree-optimize/19337
15836         * tree-inline.c (initialize_inlined_parameters): Copy
15837         saved_static_chain_decl only.
15838
15839 2005-01-25  Richard Henderson  <rth@redhat.com>
15840
15841         PR target/19556
15842         PR target/19584
15843         * config/i386/i386.c (x86_inter_unit_moves): Zero.
15844         (ix86_preferred_reload_class): Rewrite fp-constant section, with
15845         80387 enabled, to return a proper subclass.  Return the subset that
15846         overlaps with GENERAL_REGS for PLUS.
15847         * config/i386/i386.md (movsi_1, movdi_2): Set type to "mmx" for pxor.
15848
15849 2005-01-25  Richard Henderson  <rth@redhat.com>
15850
15851         PR middle-end/19609
15852         * tree-complex.c (expand_complex_div_wide): Use the correct formulae.
15853
15854 2005-01-25  Roger Sayle  <roger@eyesopen.com>
15855
15856         * expmed.c (choose_multiplier): Change interface to return the
15857         multiplier lowpart as an rtx instead of an unsigned HOST_WIDE_INT.
15858         (expand_divmod): Update calls to choose_multiplier.
15859
15860 2005-01-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15861
15862         PR middle-end/19330
15863         * expmed.c (extract_bit_field): Use adjust_address instead of
15864         gen_lowpart when op0 is a MEM.
15865
15866 2005-01-24  Steven Bosscher  <stevenb@suse.de>
15867
15868         * cfgexpand.c (expand_gimple_tailcall): Fix typo.
15869
15870 2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
15871
15872         * config/mips/irix-csr.c: New file.
15873         * config/mips/t-iris6 (irix-csr.o): New rule to build it.
15874         (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
15875         * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
15876         executables.
15877
15878 2005-01-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
15879
15880         PR bootstrap/19364
15881         * config.gcc (sparc-*-elf*): Remove sol2.h, sparc/sol2.h and
15882         sparc/elf.h, add sparc/sp-elf.h.
15883         (sparc-*-rtems*): Likewise.
15884         (sparclite-*-elf*): Remove sol2.h, sparc/sol2.h, sparc/elf.h and
15885         tm-dwarf2.h, add sparc/sp-elf.h.
15886         (sparc86x-*-elf): Likewise.
15887         (sparc64-*-elf*): Remove sol2.h, sparc/sol2.h and tm-dwarf2.h.
15888         * config/sparc/liteelf.h (TARGET_SUB_OS_CPP_BUILTINS): Rename into
15889         TARGET_OS_CPP_BUILTINS.
15890         * config/sparc/sp86x-elf (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
15891         * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
15892         Undefine it.
15893         * config/sparc/openbsd64.h (NO_IMPLICIT_EXTERN_C): Undefine.
15894         * config/sparc/sp64-elf.h (NO_IMPLICIT_EXTERN_C): New macro.
15895         (SWITCH_TAKES_ARG): Likewise.
15896         (LOCAL_LABEL_PREFIX): Likewise.
15897         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
15898         (TARGET_N_FORMAT_TYPES): Delete.
15899         (TARGET_FORMAT_TYPES): Likewise.
15900         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
15901         * config/sparc/elf.h: Delete.
15902         * config/sparc/sp-elf.h: New file.
15903
15904 2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15905
15906         * tree-flow-inline.h (phi_arg_from_edge): Remove.
15907         * tree-flow.h: Remove the corresponding prototype.
15908         * tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-ssa.c,
15909         tree-vectorizer.c: Use dest_idx instead of phi_arg_from_edge.
15910
15911 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
15912
15913         PR target/17751
15914         * config/rs6000/rs6000.c (rs6000_file_start): Create toc section
15915         for AIX ABI or ELF -fPIC.
15916         (rs6000_emit_load_toc_table): Don't create toc_section here.
15917         (rs6000_xcoff_file_start): Nor here.
15918
15919 2005-01-24  J"orn Rennecke <joern.rennecke@st.com>
15920
15921         * sh.c (ra.h): Don't #include.
15922         (hard_regs_intersect_p): New function, resurrected from ra.c.
15923
15924         * sh.c: Fix 1996 Copyright.
15925
15926 2005-01-24  Richard Henderson  <rth@redhat.com>
15927             Aldy Hernandez  <aldyh@redhat.com>
15928
15929         * regrename.c (note_sets): Handle subregs.
15930
15931 2005-01-24  Joseph S. Myers  <joseph@codesourcery.com>
15932
15933         PR bootstrap/18058
15934         * genconditions.c (write_header, write_conditions): Elide file if
15935         not GCC >= 3.0.1.
15936
15937 2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15938
15939         * c-opts.c, expmed.c, gengtype.c, tree-complex.c,
15940         config/arm/iwmmxt.md, config/avr/avr.c, config/s390/s390.h:
15941         Update copyright.
15942
15943 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
15944
15945         * builtins.c (get_pointer_alignment, gimplify_va_arg_expr,
15946         expand_builtin_printf, expand_builtin_fprintf,
15947         expand_builtin_sprintf): Use POINTER_TYPE_P instead TREE_CODE
15948         checking against POINTER_TYPE.
15949         (validate_arglist): Handle POINTER_TYPE code by checking
15950         POINTER_TYPE_P.
15951
15952 2005-01-24  Paolo Bonzini  <bonzini@gnu.org>
15953
15954         * rtlanal.c (non_rtx_starting_operands, for_each_rtx_1,
15955         init_rtlanal): New.
15956         (for_each_rtx): Call for_each_rtx_1.
15957         * rtl.h (init_rtlanal): Declare.
15958         * toplev.c (backend_init): Call init_rtlanal.
15959
15960 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
15961
15962         * flow.c (propagate_one_insn): Formatting.
15963
15964         PR middle-end/19551
15965         * flow.c (libcall_dead_p): Be more conservative if unsure.
15966         If there are any instructions between insn and call, see if they are
15967         all dead before saying the libcall is dead.
15968
15969 2005-01-24  Uros Bizjak  <uros@kss-loka.si>
15970
15971         * config/i386/i386.md (*extendsfdf2_sse): Use "nonimmediate_operand"
15972         operand constraint for operand 0.
15973
15974 2005-01-23  Richard Henderson  <rth@redhat.com>
15975
15976         PR 19486
15977         * tree-complex.c (expand_complex_div_wide): Set EDGE_FALLTHRU on
15978         edges leading to join block.
15979
15980 2005-01-23  Roger Sayle  <roger@eyesopen.com>
15981
15982         * expmed.c (expand_mult_highpart): Make static.  Change type of
15983         constant multiplier argument from unsigned HOST_WIDE_INT to rtx.
15984         (expand_divmod): Updates calls to expand_mult_highpart by using
15985         gen_int_mode to pass a CONST_INT rtx.
15986         * rtl.h (expand_mult_highpart): Remove prototype.
15987
15988 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
15989
15990         * flow.c (regset_bytes, regset_size): Remove.
15991
15992         * cfganal.c: Fix a reference to Harvey's paper.
15993
15994 2005-01-23  Steven Bosscher  <stevenb@suse.de>
15995
15996         PR rtl-optimization/19464
15997         * tree-optimize.c (init_tree_optimization_passes): Add one more
15998         copyrename pass just before out-of-ssa.
15999
16000 2005-01-23  Joseph S. Myers  <joseph@codesourcery.com>
16001
16002         PR bootstrap/18058
16003         * recog.c (recog_memoized): Don't define if GENERATOR_FILE.
16004         * ggc-none.c (ggc_free): Define.
16005
16006 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
16007
16008         * cse.c (max_reg, max_insn_uid): Remove.
16009         (cse_main): Don't access max_reg or max_insn_uid.
16010
16011         * c-common.c (explicit_flag_signed_bitfields,
16012         lang_statement_code_p, lang_expand_function_end): Remove.
16013         * c-common.h: Remove the corresponding declarations.
16014         * c-opts.c (c_common_handle_option): Remove all write access
16015         to explicit_flag_signed_bitfields.
16016
16017         * cgraph.c (cgraph_varpool_n_nodes): Remove.
16018         (cgraph_varpool_node): Don't access cgraph_varpool_n_nodes.
16019         * cgraph.h: Remove the corresponding declaration.
16020
16021         * gcse.c (null_pointer_info): Remove.
16022
16023 2005-01-23  Roger Sayle  <roger@eyesopen.com>
16024             Eric Botcazou  <ebotcazou@libertysurf.fr>
16025
16026         * combine.c (simplify_logical): Only simplify logical expressions
16027         of the form ior(and(x,y),z) by the inverse distributive law if the
16028         result is cheaper than the original.
16029
16030 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
16031
16032         * alias.c, c-common.h, c-incpath.c, c-incpath.h, expr.c,
16033         fold-const.c, gimplify.c, params.h, tree-data-ref.c,
16034         tree-if-conv.c, tree-nested.c, tree-outof-ssa.c,
16035         tree-ssa-dom.c, tree-vectorizer.c, tree.def, config/darwin.c,
16036         config/freebsd-spec.h, config/arm/arm.h,
16037         config/h8300/h8300.md, config/i386/i386.md,
16038         config/i386/predicates.md, config/i386/sse.md,
16039         config/ia64/ia64.c, config/ip2k/ip2k.c, config/s390/s390.c,
16040         config/vax/vax.md: Fix comment typos.  Follow spelling
16041         conventions.
16042
16043 2005-01-23  Steven Bosscher  <stevenb@suse.de>
16044
16045         * gengtype.c (walk_type): Produce `not equal to' compares for loop
16046         tests, instead of `less than'.
16047
16048 2005-01-23  Richard Sandiford  <rsandifo@redhat.com>
16049
16050         * function.c (assign_parm_setup_block): When creating a new stack slot
16051         for a parameter, get its alignment from the parameter's DECL_ALIGN
16052         rather than the type's TYPE_ALIGN.  Make sure that the parameter
16053         is at least word aligned.
16054
16055 2005-01-22  Roger Sayle  <roger@eyesopen.com>
16056
16057         PR middle-end/19378
16058         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
16059
16060 2005-01-22  Richard Henderson  <rth@redhat.com>
16061
16062         PR target/19506
16063         * config/i386/i386.md (movsfcc_1_sse_max): Use nonimmediate_operand
16064         in both compare operands.
16065         (movdfcc_1_sse_max): Likewise.
16066         (movsfcc_1_sse): Likewise.  Add earlyclobber for scratch.
16067         (movdfcc_1_sse): Likewise.
16068         * config/i386/i386.c (ix86_split_sse_movcc): Emit copies into the
16069         scratch register as needed.
16070
16071 2005-01-22  Richard Henderson  <rth@redhat.com>
16072
16073         * config/i386/i386.md (smaxsf3): Fix mnemonic typo.
16074
16075         * config/i386/i386.c (ix86_prepare_fp_compare_args): Fix is_sse test.
16076
16077 2005-01-22  Richard Henderson  <rth@redhat.com>
16078
16079         * genopinit.c (optabs): Use smin/smax for floating point too.
16080         * doc/md.texi: Update to match.  Clarify that floating point
16081         results are undefined for +0/-0 and NaN.
16082         * doc/rtl.texi: Likewise.
16083         * rtl.def (SMIN, SMAX): Likewise
16084         * tree.def (MIN_EXPR, MAX_EXPR): Likewise.
16085
16086         * config/alpha/alpha.md (smaxdf3, smindf3, smaxsf3, sminsf3): Add
16087         leading 's' to the name.
16088         * config/ia64/ia64.md (smaxsf3, sminsf3, smaxdf3, smindf3,
16089         smaxxf3, sminxf3): Likewise.
16090         * config/rs6000/rs6000.md (smaxdf3, smindf3, smaxsf3, sminsf3):
16091         Likewise.
16092
16093 2005-01-22  Paul Brook  <paul@codesourcery.com>
16094
16095         * config/arm/arm.md: Use "Uy" constraint for wcgr load/stores.
16096
16097 2005-01-21  Mark Dettinger  <dettinge@de.ibm.com>
16098
16099         * config/s390/s390.c (struct processor_costs): New fields
16100         dlgr, dlr, dr, dsgfr, dsgr.
16101         (z900_cost, z990_cost): Values for new fields.
16102         (s390_rtx_costs): New cases MEM und COMPARE in switch
16103         statement. Modified handling of SIGN_EXTEND, ZERO_EXTEND,
16104         DIV, MOD, UDIV, UMOD.
16105
16106 2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
16107
16108         * config/s390/s390.md ("doloop_si64"): Reload input value directly
16109         into the register being decremented.
16110         ("doloop_si31", "doloop_di"): Likewise.
16111         ("*doloop_si_long"): Adapt pattern.
16112
16113 2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
16114
16115         * config/s390/s390.h (HARD_REGNO_NREGS): Fix computation for
16116         access registers.
16117         (CLASS_MAX_NREGS): Likewise.
16118
16119 2005-01-21  Daniel Berlin  <dberlin@dberlin.org>
16120
16121         * doc/tree-ssa.texi (Statement Operands): Add example for new
16122         must-def macro. Note deprecation of old operands interface.
16123
16124 2005-01-22  Richard Sandiford  <rsandifo@redhat.com>
16125
16126         PR tree-optimization/19484
16127         * tree-cfg.c (remove_fallthru_edge): New function.
16128         (cleanup_control_flow): Remove fallthru edges from calls that are
16129         now known not to return.
16130
16131 2005-01-20  Daniel Berlin  <dberlin@dberlin.org>
16132
16133         Fix PR tree-optimization/19038
16134         * tree-ssa-dom.c (cprop_operand): Don't replace loop invaeriant
16135         copies with loop variant ones.
16136
16137 2005-01-22  Kazu Hirata  <kazu@cs.umass.edu>
16138
16139         * cfganal.c, real.h, reorg.c, timevar.def, tree-ssa-ccp.c,
16140         config/alpha/alpha-protos.h, config/alpha/alpha.h,
16141         config/alpha/alpha.md, config/alpha/predicates.md,
16142         config/sparc/freebsd.h, config/sparc/netbsd-elf.h,
16143         config/sparc/sol2.h: Update copyright.
16144
16145         * tree-cfg.c (remove_forwarder_block_with_phi): Look at the
16146         first label to see if it is a nonlocal label.
16147
16148 2005-01-22  David Edelsohn  <edelsohn@gnu.org>
16149             Andrew Pinski  <pinskia@physics.uc.edu>
16150
16151         PR target/19491
16152         * config/rs6000/rs6000.c (rs6000_va_start): Saturate n_gpr at
16153         maximum number of GPRs.  Saturate n_fpr at maximum number of FPRs.
16154
16155 2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>
16156
16157         * config/rs6000/rtems.h: Update copyright.
16158
16159 2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>
16160
16161         PR target/19548
16162         * config/rs6000/rtems.h: Resurrect cpp_os_rtems_spec from gcc < 3.4.
16163         (CPP_OS_RTEMS_SPEC): New (From gcc-3.3's config/rs6000/sys4.h).
16164         (SUBSUBTARGET_EXTRA_SPECS): Use CPP_OS_RTEMS_SPEC.
16165
16166 2005-01-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
16167
16168         PR c/18809
16169         * c-typeck.c (convert_arguments): Check for error_mark_node.
16170
16171 2005-01-21  Ian Lance Taylor  <ian@airs.com>
16172
16173         PR tree-optimization/13000
16174         * tree-inline.c: Include "tree-flow.h".
16175         (expand_call_inline): If warn_return_type, warn if non-void inline
16176         function falls through.
16177         * tree-cfg.c (execute_warn_function_return): Don't warn about
16178         control reaching end if TREE_NO_WARNING is set.  Set
16179         TREE_NO_WARNING.
16180         * gimple-low.c (block_may_fallthru): Don't assume that SWITCH_EXPR
16181         has been lowered.
16182         * gimplify.c (shortcut_cond_expr): Don't emit a jump over the else
16183         branch if we don't need one.
16184         * c-typeck.c: Include "tree-flow.h"
16185         (c_finish_bc_stmt): Don't add a goto if the current statement
16186         list doesn't fall through to the current point.
16187
16188 2005-01-21  Roger Sayle  <roger@eyesopen.com>
16189
16190         PR rtl-optimization/576
16191         * real.c (real_arithmetic): Change return type from void to bool
16192         to return an indication that the result may be inexact.
16193         * real.h (real_arithmeric): Update prototype.
16194         * fold-const.c (const_binop):  Don't constant fold floating
16195         point expressions when the user specifies -frounding-math and
16196         the result may depend upon the run-time rounding mode.
16197         (fold_convert_const_real_from_real): Clean-up.
16198         (fold_initializer): Ignore flag_rounding_math for initializers.
16199         * simplify-rtx.c (simplify_binary_operation): Likewise, don't
16200         constant fold FP operations with flag_rounding_math if the
16201         result may depend upon the run-time rounding mode.
16202
16203 2005-01-21  Tom Tromey  <tromey@redhat.com>
16204
16205         * c-cppbuiltin.c (define__GNUC__): Correct assertion.
16206
16207 2005-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16208
16209         * tree-cfg.c: Fix comment typos.
16210
16211 2005-01-21  J"orn Rennecke <joern.rennecke@st.com>
16212
16213         * passes.c (rest_of_handle_flow2): Close / open the flow2 dump file
16214         around the call to rest_of_handle_branch_target_load_optimize.
16215
16216 2005-01-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
16217
16218         * config.gcc (sparc-*-netbsdelf*): Include dbxelf.h
16219         (sparc64-*-openbsd*): Likewise.
16220         (sparclite-*-elf*): Include tm-dwarf2.h.
16221         (sparc86x-*-elf*): Likewise.
16222         (sparc64-*-elf*): Likewise.
16223         * config/sparc/linux64.h (DWARF2_DEBUGGING_INFO): Delete.
16224         (DBX_DEBUGGING_INFO): Likewise.
16225         * config/sparc/liteelf.h (DWARF2_DEBUGGING_INFO): Likewise.
16226         (PREFERRED_DEBUGGING_TYPE): Likewise.
16227         * config/sparc/netbsd-elf.h (PREFERRED_DEBUGGING_TYPE): Likewise.
16228         * config/sparc/sp64-elf.h (DBX_DEBUGGING_INFO): Likewise.
16229         (PREFERRED_DEBUGGING_TYPE): Likewise.
16230         * config/sparc/sp86x-elf.h (DWARF2_DEBUGGING_INFO): Likewise.
16231         (PREFERRED_DEBUGGING_TYPE): Likewise.
16232         * config/sparc/sparc.h (DBX_DEBUGGING_INFO): Likewise.
16233
16234 2005-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
16235
16236         PR target/18701
16237         * combine.c (combine_simplify_rtx): Revert change of 2004-12-31.
16238
16239 2005-01-20  Paul Brook  <paul@codesourcery.com>
16240
16241         * doc/rtl.texi: Document value extension requirements for CONST_INT.
16242
16243 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
16244
16245         * tree-cfg.c (tree_verify_flow_info): Check that a nonlocal
16246         label is first in a sequence of labels.
16247
16248         * tree-cfg.c (tree_verify_flow_info): Fix a typo.
16249
16250 2005-01-20  Janis Johnson  <janis187@us.ibm.com>
16251             Giovanni Bajo  <giovannibajo@gcc.gnu.org>
16252
16253         * doc/sourcebuild.texi (Test Directives): New.
16254
16255 2005-01-20  Roger Sayle  <roger@eyesopen.com>
16256
16257         * real.c (real_floor): Don't leave the result uninitialized when
16258         mode is VOIDMode, but return the unrounded intermediate value.
16259         (real_ceil): Likewise.
16260
16261 2005-01-20  Paul Brook  <paul@codesourcery.com>
16262
16263         * config/arm/arm.md (insv): Use gen_int_mode.
16264
16265 2005-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
16266
16267         * config/sparc/freebsd.h (ASM_OUTPUT_INTERNAL_LABELREF): Delete.
16268         * config/sparc/linux.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
16269         * config/sparc/linux64.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
16270         * config/sparc/netbsd-elf.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
16271         * config/sparc/sol2.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
16272
16273 2005-01-20  Daniel Berlin  <dberlin@dberlin.org>
16274
16275         Fix PR debug/19124
16276         * dwarf2out.c (concat_loc_descriptor): We don't know we can use
16277         fbreg, so we have to assume we can't.
16278         (loc_descriptor_from_tree_1): Ditto.
16279         (containing_function_has_frame_base): New function.
16280         (add_location_or_const_value_attribute): Use it.
16281         Also try to generate a frame_base from a single element location
16282         list.
16283
16284 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
16285
16286         PR tree-optimization/15349
16287         * timevar.def (TV_TREE_MERGE_PHI): New.
16288         * tree-cfg.c (tree_forwarder_block_p): Add a new argument
16289         PHI_WANTED.
16290         (remove_forwarder_block, cleanup_forwarder_blocks): Adjust the
16291         calls to tree_forwarder_block_p.
16292         (remove_forwarder_block_with_phi, merge_phi_nodes,
16293         gate_merge_phi, pass_merge_phi): New.
16294         * tree-optimize.c (init_tree_optimization_passes): Add
16295         pass_merge_phi.
16296         * tree-pass.h: Add an extern for pass_merge_phi;
16297
16298 2005-01-20  Richard Henderson  <rth@redhat.com>
16299
16300         PR target/19418
16301         * config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128): New.
16302         (_mm_castps_pd, _mm_castps_si128): New.
16303         (_mm_castsi128_ps, _mm_castsi128_pd): New.
16304
16305 2005-01-20  Richard Henderson  <rth@redhat.com>
16306
16307         PR target/19530
16308         * config/i386/mmintrin.h (_mm_cvtsi32_si64): Use
16309         __builtin_ia32_vec_init_v2si.
16310         (_mm_cvtsi64_si32): Use __builtin_ia32_vec_ext_v2si.
16311         * config/i386/i386.c (IX86_BUILTIN_VEC_EXT_V2SI): New.
16312         (ix86_init_mmx_sse_builtins): Create it.
16313         (ix86_expand_builtin): Expand it.
16314         (ix86_expand_vector_set): Handle V2SFmode and V2SImode.
16315         * config/i386/mmx.md (vec_extractv2sf_0, vec_extractv2sf_1): New.
16316         (vec_extractv2si_0, vec_extractv2si_1): New.
16317
16318 2005-01-20  Richard Henderson  <rth@redhat.com>
16319
16320         PR target/16533
16321         * config/i386/i386.c (ix86_expand_push): New.
16322         * config/i386/mmx.md (push<MMXMODE>1): New.
16323         * config/i386/sse.md (push<SSEMODE>1): New.
16324         * config/i386/i386-protos.h: Update.
16325
16326 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
16327
16328         * params.def, params.h, predict.c, tree-ssa-loop-im.c: Update
16329         copyright.
16330
16331 2005-01-20  Richard Henderson  <rth@redhat.com>
16332
16333         * rtl.def (CONST_VECTOR): Use RTX_CONST_OBJ.
16334         * rtl.h (CONSTANT_P): Don't special case CONST_VECTOR.
16335
16336 2005-01-19  Richard Henderson  <rth@redhat.com>
16337
16338         PR target/19350
16339         * config/i386/i386.c (ix86_expand_vector_move_misalign): Convert
16340         to V4SFmode in SSE1 fallback load path.
16341
16342 2005-01-19  Richard Henderson  <rth@redhat.com>
16343
16344         * config/i386/i386.c (ix86_expand_vector_init_one_var): Fix typo
16345         in QImode expansion to ix86_expand_vector_set.
16346         (ix86_expand_vector_init_general): Fix typo in V8HImode recursive call.
16347
16348 2005-01-19  Richard Henderson  <rth@redhat.com>
16349
16350         PR target/19511
16351         * config/i386/i386.c (ix86_preferred_reload_class): Return a proper
16352         subclass of the input class.
16353         (ix86_secondary_memory_needed): Always true for cross-MMX classes.
16354         Always true for cross-SSE1 classes.  Rationalize conditionals.
16355         * config/i386/i386.h (SSE_CLASS_P, MMX_CLASS_P): Use straight equality.
16356         * config/i386/i386.md (movsi_1): Add MMX/SSE zeros.  Fix alternatives
16357         for SSE1.  Don't check TARGET_INTER_UNIT_MOVES.
16358         (movdi_2): Add MMX/SSE zeros.
16359         (movdi_1_rex64): Likewise.  Don't check TARGET_INTER_UNIT_MOVES.
16360         (movsf_1): Don't check TARGET_INTER_UNIT_MOVES.
16361         (zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
16362         (movsi_1_nointernunit, movdi_1_rex64_nointerunit): Remove.
16363         (movsf_1_nointerunit, zero_extendsidi2_32_1): Remove.
16364         (zero_extendsidi2_rex64_1): Remove.
16365         (MOV0 peephole): Check GENERAL_REG_P.
16366
16367 2005-01-19  Richard Henderson  <rth@redhat.com>
16368
16369         PR target/19427
16370         * config/i386/i386.c (ix86_expand_vector_set): Fix third and fourth
16371         shufps elements.
16372         (ix86_expand_vector_extract): Likewise.
16373
16374 2005-01-19  Richard Henderson  <rth@redhat.com>
16375
16376         PR middle-end/19304
16377         * expr.c (emit_move_change_mode): New argument force; use
16378         simplify_gen_subreg if true.
16379         (emit_move_via_alt_mode): Merge into ...
16380         (emit_move_via_integer): ... here.
16381         (emit_move_ccmode): Use emit_move_change_mode directly.
16382
16383 2005-01-19  Richard Henderson  <rth@redhat.com>
16384
16385         PR target/19518
16386         * config/alpha/alpha.c (alpha_rtx_costs): Handle HIGH.
16387         (alpha_preferred_reload_class): Handle CONST_VECTOR.
16388         (alpha_emit_set_const_1): Add no_output parameter; don't emit
16389         rtl if true.
16390         (alpha_emit_set_const): Likewise.  Make static.
16391         (alpha_emit_set_long_const): Make static.
16392         (alpha_extract_integer): Split out from alpha_expand_mov.
16393         (alpha_split_const_mov): Likewise.
16394         (alpha_expand_mov): Use them.  Handle CONST_VECTOR.
16395         (alpha_legitimate_constant_p): New.
16396         * config/alpha/alpha-protos.h: Update.
16397         * config/alpha/alpha.h (REGISTER_MOVE_COST): Correct fp<->gp cost.
16398         (LEGITIMATE_CONSTANT_P): Re-implement with a function.
16399         * config/alpha/alpha.md (movsi): Add n alternative.
16400         (movsi_nt_vms, movdi_er_nofix, movdi_er_fix, movdi_fix): Likewise.
16401         (mov<VEC>_fix, mov<VEC>_nofix): Add i alternative.
16402         (splitters for all of the above): Use alpha_split_const_mov.
16403         * config/alpha/predicates.md (non_add_const_operand): New.
16404         (non_zero_const_operand): New.
16405         (input_operand): Use alpha_legitimate_constant_p after reload.
16406
16407 2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
16408
16409         PR tree-optimization/19038
16410         * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): New function.
16411         (add_candidate): Add ivs with increment in latch only if
16412         allow_ip_end_pos_p is true.
16413         (determine_iv_cost): Use empty_block_p.
16414
16415 2005-01-19  Daniel Berlin  <dberlin@dberlin.org>
16416
16417         * cfganal.c (compute_dominance_frontiers_1): Replace with new algorithm
16418         (compute_dominance_frontiers): Ditto.
16419
16420 2005-01-19  Ralf Corsepius  <ralf.corsepius@rtems.org>
16421
16422         PR target/19529
16423         * config/sh/t-rtems: New.
16424         * config.gcc (sh-*-rtems*): Reflect having added config/sh/t-rtems.
16425
16426 2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
16427
16428         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Always subtract
16429         the offset of the selected field.
16430
16431 2005-01-19  Kazu Hirata  <kazu@cs.umass.edu>
16432
16433         * tree-cfg.c (remove_forwarder_block): Fix the check to
16434         prevent a nonlocal label from appearing in the middle of a
16435         basic block.
16436
16437 2005-01-19  Hans-Peter Nilsson  <hp@axis.com>
16438
16439         PR rtl-optimization/19462
16440         * reorg.c (find_end_label): Create return insn only if
16441         current_function_epilogue_delay_list is empty.
16442
16443 2005-01-19  Paolo Bonzini  <bonzini@gnu.org>
16444
16445         * doc/passes.texi: Remove paragraph mentioning new-ra.
16446
16447 2005-01-19  Jakub Jelinek  <jakub@redhat.com>
16448
16449         PR rtl-optimization/15139
16450         * combine.c: Include params.h.
16451         (count_rtxs): New function.
16452         (record_value_for_reg): If replace_rtx would replace at least
16453         2 occurrences of REG in VALUE and TEM is really large, replace REG with
16454         (clobber (const_int 0)) instead of TEM.
16455         * params.def (PARAM_MAX_LAST_VALUE_RTL): New.
16456         * params.h (MAX_LAST_VALUE_RTL): New.
16457         * Makefile.in (combine.o): Depend on $(PARAMS_H).
16458         * doc/invoke.texi (--param max-last-value-rtl=N): Document.
16459
16460         PR c/17297
16461         * c-typeck.c (digest_init): Only call build_vector if all constructor
16462         elements are *_CST nodes.
16463         * gimplify.c (gimplify_init_constructor): Likewise.
16464
16465         PR middle-end/19164
16466         * c-typeck.c (digest_init): Only call build_vector if inside_init
16467         is a CONSTRUCTOR.
16468
16469 2005-01-18  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
16470
16471         * toplev.c (init_asm_output): Remove dead #ifdef.
16472
16473 2005-01-18  Kaz Kojima  <kkojima@gcc.gnu.org>
16474
16475         * config/sh/linux.h (TARGET_C99_FUNCTIONS): Define.
16476
16477 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
16478
16479         * calls.c (expand_call): Check DECL_BUILT_IN_CLASS before
16480         accessing DECL_FUNCTION_CODE.
16481         * dojump.c (do_jump): Likewise.
16482         * gimplify.c (gimplify_call_expr): Likewise.
16483         * predict.c (expr_expected_value): Likewise.
16484         (strip_builtin_expect): Likewise.
16485         * tree-inline.c (estimate_num_insns_1): Likewise.
16486         * tree-ssa-loop-im.c (stmt_cost): Likewise
16487         * fold-const.c (fold): Test for BUILT_IN_NORMAL.
16488         (tree_expr_nonnegative_p): Likewise.
16489
16490 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
16491
16492         * config/sparc/sparc.c (load_pic_register): Emit the appropriate
16493         variant of the load_pcrel_sym pattern.
16494         * config/sparc/sparc.md (P macro): Move to the top.
16495         (load_pcrel_sym): Macroize using P.
16496         (save_register_window): Likewise.
16497
16498 2005-01-18  Aldy Hernandez  <aldyh@redhat.com>
16499
16500         * config/rs6000/rs6000.md ("sunordered"): Disable for e500.
16501         ("sordered"): Same.
16502
16503 2005-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
16504
16505         PR C/19472
16506         * c-typeck.c (build_asm_expr): Strip nops off
16507         input memory operands.
16508
16509 2005-01-18  David Edelsohn  <edelsohn@gnu.org>
16510
16511         * config/rs6000/aix43.h (CPLUSPLUS_CPP_SPEC): Delete
16512         _XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED, _LARGE_FILE_API.
16513         * config/rs6000/aix51.h (CPLUSPLUS_CPP_SPEC): Same.
16514         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Same.
16515
16516 2005-01-18  Joel Sherrill <joel.sherrill@oarcorp.com>
16517
16518         PR target/19379
16519         * config/i386/i386.c (override_options): If the 80387 is disabled,
16520         then do not return FP values using FP registers.
16521
16522 2005-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16523
16524         * basic-block.h, c-common.c, c-cppbuiltin.c, c-lang.c,
16525         c-tree.h, cfgbuild.c, cgraph.c, cgraph.h, collect2.c,
16526         combine.c, config.gcc, coverage.h, cse.c, cselib.c,
16527         defaults.h, df.c, dwarf2asm.c, dwarf2out.c, explow.c, expr.c,
16528         flow.c, fold-const.c, gcse.c, ggc-page.c, gimple-low.c,
16529         gimplify.c, ifcvt.c, langhooks-def.h, lcm.c, optabs.h,
16530         output.h, postreload-gcse.c, postreload.c, recog.c,
16531         resource.c, rtl.def, rtlanal.c, sched-deps.c, sched-rgn.c,
16532         targhooks.h, toplev.c, tree-data-ref.c, tree-eh.c,
16533         tree-flow.h, tree-loop-linear.c, tree-mudflap.h, tree-nrv.c,
16534         tree-optimize.c, tree-outof-ssa.c, tree-pass.h,
16535         tree-scalar-evolution.c, tree-ssa-copy.c, tree-ssa-dce.c,
16536         tree-ssa-dse.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c,
16537         tree-ssa-pre.c, tree-ssa.c, tree-vectorizer.c, tree.def,
16538         unwind-dw2-fde-darwin.c, var-tracking.c: Update copyright.
16539
16540         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
16541         config/alpha/alpha.c, config/arm/vfp.md,
16542         config/i386/emmintrin.h, config/i386/i386-modes.def,
16543         config/i386/i386-protos.h, config/i386/i386.h,
16544         config/i386/pmmintrin.h, config/i386/ppro.md,
16545         config/i386/predicates.md, config/i386/xmmintrin.h,
16546         config/i860/i860.c, config/ia64/ia64-modes.def,
16547         config/ia64/ia64-protos.h, config/ia64/ia64.h,
16548         config/ia64/ia64.md, config/ia64/itanium1.md,
16549         config/ia64/itanium2.md, config/ia64/predicates.md,
16550         config/iq2000/iq2000.h, config/mips/linux64.h,
16551         config/rs6000/aix41.h, config/rs6000/aix43.h,
16552         config/rs6000/aix52.h, config/rs6000/darwin-fallback.c,
16553         config/rs6000/rs6000.c, config/rs6000/rs6000.h,
16554         config/rs6000/spe.md, config/sh/sh.md, config/sparc/linux.h,
16555         config/sparc/linux64.h, config/sparc/litecoff.h,
16556         config/sparc/sp64-elf.h, config/sparc/sparc.c,
16557         config/sparc/sparc.h, config/sparc/sparc.md,
16558         config/sparc/sysv4-only.h: Update copyright.
16559
16560 2005-01-18  Richard Henderson  <rth@redhat.com>
16561
16562         PR target/19496
16563         * config/i386/i386.c (ix86_expand_fp_movcc): Fail for LTGT and UNEQ.
16564
16565 2005-01-18  Marc Espie  <espie@openbsd.org>
16566         * config/i386/openbsdelf.h: Typo.
16567
16568 2005-01-18  Richard Henderson  <rth@redhat.com>
16569
16570         * config/i386/i386.c (ix86_expand_fp_movcc): Remove TARGET_IEEE_FP
16571         special case for sse.
16572         * config/i386/predicates.md (sse_comparison_operator): Likewise.
16573
16574 2005-01-18  Dorit Naishlos  <dorit@il.ibm.com>
16575
16576         * tree-inline.c (estimate_num_insns_1): Added cases for
16577         ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF, and REALIGN_LOAD_EXPR.
16578
16579 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
16580
16581         PR rtl-optimization/19296
16582         * combine.c (simplify_comparison): Rewrite the condition under
16583         which a non-paradoxical SUBREG of a PLUS can be lifted when
16584         compared against a constant.
16585
16586 2005-01-18  Andi Kleen <ak@muc.de>
16587
16588         * c-typeck.c: (convert_for_assignment): Check warn_pointer_sign.
16589         * c.opt (-Wpointer-sign): Add.
16590         * doc/invoke.texi: (-Wpointer-sign): Add.
16591
16592 2005-01-18  Uros Bizjak  <uros@kss-loka.si>
16593
16594         * config/i386/i386.c (override_options): Revert 2004-11-24 change.
16595         * config/i386/i386.md (fmodsf3, dremsf3, *sinsf2, *cossf2, sincossf3,
16596         *tansf3_1, tansf2, atan2sf3_1, atan2sf3, atansf2, asinsf2, acossf2,
16597         logsf2, log10sf2, log2sf2, log1psf2, logbsf2, ilogbsf2, expsf2,
16598         exp10sf2, exp2sf2, expm1sf2, rintsf2, floorsf2, ceilsf2, btruncsf2,
16599         nearbyintsf2): Disable for TARGET_SSE_MATH.  Leave patterns enabled
16600         for TARGET_MIX_SSE_I387.
16601         (fmoddf3, dremdf3, *sindf2, *sinextendsfdf2, *cosdf2, *cosextendsfdf2,
16602         sincosdf3, *sincosextendsfdf3, *tandf3_1, tandf2, atan2df3_1,
16603         atan2df3, atandf2, asindf2, acosdf2, logdf2, log10df2, log2df2,
16604         log1pdf2, logbdf2, expdf2, exp10df2, exp2df2, expm1df2, rintdf2,
16605         floordf2, ceildf2, btruncdf2, nearbyintdf2): Disable for
16606         (TARGET_SSE2 && TARGET_SSE_MATH).  Leave patterns enabled for
16607         TARGET_MIX_SSE_I387.
16608         (atan2sf3, atan2df3, atan2xf3): Remove register constraints
16609         from expander.
16610
16611 2005-01-18  Uros Bizjak  <uros@kss-loka.si>
16612
16613         PR target/19424
16614         * config/i386/mmx.md (*movv2sf_internal_rex64, *movv2sf_internal):
16615         Add movaps alternative for xmm reg->reg move.
16616
16617 2005-01-17  Jeff Law  <law@redhat.com>
16618
16619         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Clear SSA_NAME_VALUE
16620         at the end of the main DOM loop rather than just before DOM exits.
16621
16622 2005-01-17  Diego Novillo  <dnovillo@redhat.com>
16623
16624         PR tree-optimization/19121
16625         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): When
16626         adding aliases to a name tag, also add them to the pointer's
16627         type tag.
16628         * tree-ssa-copy.c (merge_alias_info): Do not merge flow
16629         sensitive alias info at all.  Only check that the two pointers
16630         have compatible pointed-to sets.
16631         * tree-ssa.c (verify_name_tags): Verify that the alias set of
16632         a pointer's type tag is a superset of the alias set of the
16633         pointer's name tag.
16634
16635 2005-01-17  James E Wilson  <wilson@specifixinc.com>
16636
16637         PR target/19357
16638         * config/ia64/ia64.md (movxf): Handle general register source.  Adjust
16639         comment to document why.
16640
16641 2005-01-17  Richard Henderson  <rth@redhat.com>
16642
16643         * config/i386/sse.md (smaxv4sf3_finite, sse_vmsmaxv4sf3_finite,
16644         sminv4sf3_finite, sse_vmsminv4sf3_finite, smaxv2df3_finite,
16645         sse2_vmsmaxv2df3_finite, sminv2df3_finite,
16646         sse2_vmsminv2df3_finite): New.
16647         (smaxv4sf3, sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, smaxv2df3,
16648         sse2_vmsmaxv2df3, sminv2df3, sse2_vmsminv2df3): Remove commutative.
16649         Force op1 into register.
16650
16651 2005-01-17  Kelley Cook  <kcook@gcc.gnu.org>
16652
16653         * Makefile.in (STAGEMOVESTUFF): Stage all the stamp files to prevent
16654         bubblestrap from always rebuilding build directory.
16655
16656 2005-01-17  Ulrich Weigand  <uweigand@de.ibm.com>
16657
16658         * config/s390/s390.md ("*clc"): Remove incorrect '='.
16659         ("*cmpmem_short"): Likewise.
16660
16661 2005-01-17  Steven Bosscher  <stevenb@suse.de>
16662
16663         * basic-block.h: Document BB_* flags.
16664         * regrename.c (copyprop_hardreg_forward): Don't use BB_VISITED,
16665         use an sbitmap instead.
16666         * sched-rgn.c (compute_trg_info): Likewise.
16667
16668 2005-01-17  Richard Sandiford  <rsandifo@redhat.com>
16669
16670         * config.gcc (mips64*-*-linux*): Set the default abi to n32.  Remove
16671         redundant target_cpu_default and extra_parts lines.  Use the default
16672         "from-abi" ISA.
16673         * config/mips/linux64.h (DRIVER_DEFAULT_ABI_SELF_SPEC): Delete.
16674         (SUBTARGET_EXTRA_SPECS): Delete.
16675         (DRIVER_SELF_SPECS): Remove architecture lines.  Set the ABI directly.
16676         (SUBTARGET_ASM_SPEC): Remove -mabi=n32 and -mabi=64 mappings.
16677         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Use "32" for -mabi=32
16678         and "n32" for -mabi=n32.
16679
16680 2005-01-17  Ian Lance Taylor  <ian@airs.com>
16681
16682         PR c/5675
16683         * c-typeck.c (build_c_cast): Revert patch of 2003-02-16: don't
16684         fold constant variables into initial values.
16685
16686 2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>
16687
16688         * tree-cfg.c (tree_can_merge_blocks_p): Reorder two checks.
16689
16690         * tree-cfg.c (tree_forwarder_block_p): Speed up by walking
16691         through the statements backward.
16692
16693 2005-01-17  Ian Lance Taylor  <ian@airs.com>
16694
16695         PR middle-end/13127:
16696         * tree-inline.c (expand_call_inline): Set TREE_NO_WARNING on
16697         a variable set to the return value of the inlined function.
16698
16699 2005-01-17  Mark Dettinger  <dettinge@de.ibm.com>
16700
16701         * rtlanal.c (rtx_cost): Assign cost of 0 to a SUBREG
16702         when modes are tieable.
16703
16704 2005-01-17  Ranjit Mathew  <rmathew@hotmail.com>
16705
16706         * gthr-posix.h (__gthread_active_p): Use pthread_cancel instead
16707         of pthread_create to find out if threads are enabled.
16708         * gthr-posix95.h (__gthread_active_p): Likewise.
16709
16710 2005-01-17  Paolo Bonzini  <bonzini@gnu.org>
16711
16712         * common.opt (-fnew-ra): Remove.
16713         * ra*.*: Remove.
16714         * toplev.h (flag_new_regalloc): Remove.
16715         * Makefile.in (ra*.*): Don't mention.
16716         * passes.c (rest_of_handle_new_regalloc): Remove.
16717         (rest_of_handle_combine, rest_of_compilation): Always consider
16718         flag_new_regalloc as false.
16719         * doc/invoke.texi: Don't document -fnew-ra.
16720
16721 2005-01-17  Paolo Bonzini <bonzini@gnu.org>
16722
16723         * bb-reorder.c (fix_edges_for_rarely_executed_code): Remove
16724         last parameter to reg_scan.
16725         * loop.c (loop_optimize): Likewise.
16726         * passes.c (rest_of_handle_tracer, rest_of_handle_if_conversion,
16727         rest_of_handle_web, rest_of_handle_cfg, rest_of_handle_jump_bypass,
16728         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
16729         rest_of_handle_gcse, rest_of_handle_loop_optimize,
16730         rest_of_handle_loop2, rest_of_handle_jump2): Likewise.
16731         * regclass.c (reg_scan): Likewise, for the declaration.
16732         * rtl.h (reg_scan): Likewise, for the prototype.
16733
16734 2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>
16735
16736         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Don't call
16737         mark_dfs_back_edges.
16738
16739 2005-01-16  Daniel Berlin  <dberlin@dberlin.org>
16740
16741         * tree-ssa-pre.c (add_to_sets): s1 may be NULL.
16742         (compute_avail): Uses don't go in tmp_gen.
16743
16744 2005-01-16  Steven Bosscher  <stevenb@suse.de>
16745
16746         * ggc-page.c (ggc_alloc_stat): Use __builtin_ctzl instead of a
16747         loop to look for a free slot in a page entry.
16748
16749 2005-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16750
16751         PR target/16304
16752         * defaults.h (TARGET_DEFERRED_OUTPUT_DEFS): Provide default.
16753         * toplev.c (compile_file): Call process_pending_assemble_output_defs
16754         just before targetm.asm_out.file_end.
16755         * tree.h (process_pending_assemble_output_defs): Declare.
16756         * varasm.c (assemble_output_def, process_pending_assemble_output_defs):
16757         New functions.
16758         (assemble_alias): Defer generation of assembly code for defines when
16759         TARGET_DEFERRED_OUTPUT_DEFS is true.
16760         * config/rs6000/aix41.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
16761         * config/rs6000/aix43.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
16762         * doc/tm.texi (TARGET_DEFERRED_OUTPUT_DEFS): document.
16763
16764 2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16765
16766         PR target/19336
16767         * pa.c (pa_scalar_mode_supported_p): New function.
16768         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
16769         * pa.h (MIN_UNITS_PER_WORD): Add comment.
16770
16771         * pa-protos.h (prefetch_operand): Delete.
16772         (prefetch_cc_operand, prefetch_nocc_operand): New declations.
16773         * pa.c (prefetch_operand): Delete.
16774         (prefetch_cc_operand, prefetch_nocc_operand): New functions.
16775         * pa.h (EXTRA_CONSTRAINT): Add `W' constraint.
16776         (PREDICATE_CODES): Delete prefetch_operand.  Add prefetch_cc_operand
16777         and prefetch_nocc_operand.
16778         * pa.md (prefetch): Rework to avoid reload problems handling short
16779         displacements when a cache control completer needs to be provided.
16780         (prefetch_32, prefetch_64): Delete.
16781         (prefetch_cc, prefetch_nocc): New patterns.
16782
16783 2005-01-15  David Edelsohn  <edelsohn@gnu.org>
16784
16785         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Revert previous change.
16786
16787 2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16788
16789         PR ada/19388
16790         * pa.c (pa_asm_output_aligned_common): Warn if specified alignment
16791         exceeds maximum alignment for global common data.
16792         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): Define to 32768.
16793         * som.h (MAX_OFILE_ALIGNMENT): Likewise.
16794
16795 2004-01-15  Roger Sayle  <roger@eyesopen.com>
16796
16797         * tree-ssa-dom.c (extract_range_from_cond): Correct condition.
16798
16799 2004-01-15  Roger Sayle  <roger@eyesopen.com>
16800
16801         * harg-reg-set.h (reg_class_names): Prototype global array.
16802         * regclass.c (reg_class_names): Declare here and initialize to
16803         REG_CLASS_NAMES.
16804         (dump_regclass): Remove local declaration of reg_class_names.
16805         (regclass): Likewise.
16806         * cfg.c (dump_flow_info): Likewise.
16807         * ra-debug.c (reg_class_names): Likewise.
16808         * regrename.c (reg_class_names): Likewise.
16809         * reload.c (reg_class_names): Likewise.
16810         * reload1.c (spill_failure): Likewise.
16811         * config/m68hc11/m68hc11.c (reg_class_names): Likewise.
16812
16813 2005-01-15  Ulrich Weigand  <uweigand@de.ibm.com>
16814
16815         * config/s390/s390.md ("reload_outti"): Remove predicate for
16816         output operand.  Abort if operand is not a MEM.
16817         ("reload_outdi", "reload_outdf"): Likewise.
16818
16819 2005-01-15  Marc Espie  <espie@openbsd.org>
16820
16821         * config.gcc (*-*-openbsd*): Set HAS_LIBC_R for OpenBSD <= 3.2.
16822         (i[34567]86-*-openbsd*): Switch to ELF for OpenBSD >= 3.4.
16823         * config/openbsd.h:  Fix C++ includes for native configurations.
16824         Add proper OS_CPP_BUILTINS.  Fix libspec for recent OpenBSD.
16825         Add trampoline support.
16826         * config/i386/openbsdelf.h: New.
16827
16828 2005-01-15  Marc Espie  <espie@openbsd.org>
16829
16830         * collect2.c (main): Explicitly parse -dynamic-linker option.
16831
16832 2005-01-15  Jakub Jelinek  <jakub@redhat.com>
16833
16834         PR tree-optimization/19060
16835         * tree-ssa-dom.c (extract_range_from_cond) <case LT_EXPR, GT_EXPR>:
16836         Return 0 if op1 <= TYPE_MIN_VALUE () resp. op1 >= TYPE_MAX_VALUE ().
16837         (simplify_cond_and_lookup_avail_expr): Add assert for dummy == 0
16838         and handle extract_range_from_cond returning false.
16839         * fold-const.c (fold): Optimize comparisons with min/max even for
16840         width > HOST_BITS_PER_WIDE_INT.
16841
16842 2005-01-15  Ralf Corsepius  <ralf.corsepius@rtems.org>
16843
16844         * config/mips/rtems.h (MIPS_DEFAULT_GVALUE): Set to 0.
16845         * config/mips/t-rtems (MULTILIBS_DIRNAMES,MULTILIB_OPTIONS):
16846         Remove little endian multilib variants.
16847         Add mips32 multilib variant.
16848
16849 2005-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16850
16851         * explow.c (copy_all_reg, stabilize): Remove.
16852         * expr.h: Remove the corresponding prototypes.
16853
16854         * rtlanal.c (regs_set_between_p): Remove.
16855         * rtl.h: Remove the corresponding prototype.
16856
16857 2005-01-14  David Edelsohn  <edelsohn@gnu.org>
16858
16859         * config/rs6000/rs6000.c (rs6k_nonimmediate_operand): Rename
16860         to rs6000_nonimmediate_operand.
16861         * config/rs6000/rs6000.h (PREDICATE_CODES): Rename
16862         rs6k_nonimmediate_operand to rs6000_nonimmediate_operand.
16863         * config/rs6000/rs6000.md (movsi_internal1): Rename predicate to
16864         rs6000_nonimmediate_operand.
16865         * config/rs6000/spe.md (movdf_e500_double): Rename predicate to
16866         rs6000_nonimmediate_operand.
16867
16868 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
16869
16870         * tree-ssa-alias.c (pass_may_alias): Add TODO_verify_stmts.
16871
16872 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
16873
16874         * config/rs6000/rs6000.h (CLASS_MAX_NREGS): DF goes in 1 register
16875         on e500v2.
16876         (CANNOT_CHANGE_MODE_CLASS): Restrict DI mode changes on e500v2.
16877         (PREDICATE_CODES): Add rs6k_nonimmediate_operand.
16878
16879         * config/rs6000/rs6000.c (invalid_e500_subreg): New.
16880         (rs6k_nonimmediate_operand): New.
16881         (rs6000_legitimate_offset_address_p): Handle DI modes on e500v2
16882         correctly.
16883         (legitimate_lo_sum_address_p): Same.
16884         (rs6000_legitimize_address): Same.
16885         (rs6000_legitimize_reload_address): Same.
16886         (rs6000_legitimate_address): Same.
16887         (spe_build_register_parallel): Pass DF and DC modes in a DI
16888         register.
16889
16890         * config/rs6000/rs6000.md ("*movsi_internal1"): Change predicate
16891         to rs6k_nonimmediate_operand.
16892
16893         * config/rs6000/spe.md ("*frob_df_di"): New.
16894         ("*frob_di_df"): New.
16895         ("*frob_di_df_2"): New.
16896         ("*mov_sidf_e500_subreg0"): New.
16897         ("*mov_sidf_e500_subreg4"): New.
16898         ("*movdf_e500_double"): Change predicate to
16899         rs6k_nonimmediate_operand.
16900
16901 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
16902
16903         * postreload.c (move2add_note_store): Only call
16904         trunc_int_for_mode on scalar integers.
16905
16906 2005-01-14  Steven Bosscher  <stevenb@suse.de>
16907
16908         * tree-ssa-dce.c (visited_control_parents): New sbitmap to
16909         replace BB_VISITED uses.
16910         (find_obviously_necessary_stmts): Don't clear BB_VISITED.
16911         (propagate_necessity): Check the bitmap instead of BB_VISITED.
16912         (tree_dce_done): Free visited_control_parents.
16913         (perform_tree_ssa_dce): Allocate and clear it.
16914         * tree-ssa-pre.c (compute_antic_aux): Make non-recursive.
16915         (compute_antic): Iterate from here using a DFS.  Use an sbitmap
16916         instead of BB_VISITED.
16917
16918 2005-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16919
16920         * c-tree.h, coverage.h, langhooks-def.h, optabs.h, output.h,
16921         rtl.h, targhooks.h, tree-flow.h, tree-mudflap.h, tree.h:
16922         Remove unused prototypes.
16923
16924 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
16925
16926         * config/rs6000/rs6000.c (rs6000_stack_info): Fix caching of SPE
16927         64-bit register usage.
16928         (spe_func_has_64bit_regs_p): Add FIXME note.
16929
16930 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
16931
16932         * config/rs6000/rs6000.c (rs6000_generate_compare): Replace
16933         flag_finite_math_only with flag_unsafe_math_optimizations.
16934
16935 2005-01-14  J. D. Johnston  <jjohnst@us.ibm.com>
16936
16937         * config/s390/tpf-unwind.h (s390_fallback_frame_state): Correct
16938         end-of-stack check.
16939         (__tpf_eh_return): Copy TPF private stack area from the module
16940         boundary stack frame.  Add check for when module addresses are
16941         equal, but no stub address is found.
16942
16943 2005-01-14  Richard Earnshaw  <rearnsha@arm.com>
16944
16945         PR target/7525
16946         * arm.h (struct machine_function): Add call_via field.
16947         (thumb_call_via_label): Declare.
16948         * arm.c (thumb_call_via_label): New variable.
16949         (thumb_call_reg_needed): New variable.
16950         (arm_output_function_epilogue): For Thumb code, output any per-function
16951         call-indirect trampolines.
16952         (thumb_call_via_reg): New function.
16953         (arm_file_end): New function.
16954         (TARGET_ASM_FILE_END): Call arm_file_end.
16955         (aof_file_end): Likewise.
16956         * arm-protos.h (thumb_call_via_reg): Declare.
16957         * arm.md (call_reg_thumb, call_value_reg_thumb): Call
16958         thumb_call_via_reg in normal case.
16959
16960 2005-01-14  Jakub Jelinek  <jakub@redhat.com>
16961
16962         PR middle-end/19084
16963         PR rtl-optimization/19348
16964         * recog.c (peephole2_optimize): Do global life update if some peephole
16965         decides it doesn't need at least one of its inputs and that change
16966         influences liveness at the start of the basic block.
16967
16968         * basic-block.h (EXECUTE_IF_AND_COMPL_IN_REG_SET): Needs 2 REGSET
16969         arguments instead of 1.
16970
16971 2005-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
16972
16973         PR middle-end/18820
16974         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Return
16975         zero for nested functions needing a static chain or functions
16976         with a non-constant address.
16977
16978 2005-01-13  Roger Sayle  <roger@eyesopen.com>
16979
16980         * simplify-rtx.c (simplify_binary_operation) <AND>: Optimize
16981         (and (sign_extend X) C) into (zero_extend (and X C)).
16982
16983 2005-01-13  David O'Brien  <obrien@FreeBSD.org>
16984
16985         * config/freebsd-spec.h:  Make KSE pthread lib logic the default.
16986
16987 2005-01-13  Richard Henderson  <rth@redhat.com>
16988
16989         PR target/19009
16990         PR target/19250
16991         PR target/19252
16992         * config/i386/i386.md (cmpdf, cmpsf, bunordered, bordered, buneq,
16993         bunge, bungt, bunle, bunlt, bltgt): Enable for TARGET_SSE_MATH,
16994         not just TARGET_SSE.
16995         (cmpfp_i_387): Rename from cmpfp_i.  Move after sse patterns.
16996         (cmpfp_i_mixed): Rename from cmpfp_i_sse; use for TARGET_MIX_SSE_I387.
16997         (cmpfp_i_sse): Rename from cmpfp_i_sse_only; use for TARGET_SSE_MATH.
16998         (cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387): Similarly.
16999         (fp_jcc_1_mixed, fp_jcc_1_sse, fp_jcc_1_387): Similarly.
17000         (fp_jcc_2_mixed, fp_jcc_2_sse, fp_jcc_2_387): Similarly.
17001         (fp_jcc_3_387, fp_jcc_4_387, fp_jcc_5_387, fp_jcc_6_387,
17002         fp_jcc_7_387, fp_jcc_8_387): Rename from fp_jcc_N.
17003         (movdicc_c_rex64): Rename with '*'.
17004         (movsfcc, movdfcc): Add checks for 387 and sse math to condition.
17005         (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): New.
17006         (movsfcc_1_387): Rename from movsfcc_1.
17007         (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): New.
17008         (movdfcc_1, movdfcc_1_rex64): Add check for 387.
17009         (sminsf3, smaxsf3, smindf3, smaxdf3): New.
17010         (minsf3, minsf, minsf_nonieee, minsf_sse, mindf3, mindf,
17011         mindf_nonieee, mindf_sse, maxsf3, maxsf, maxsf_nonieee, maxsf_sse,
17012         maxdf3, maxdf, maxdf_nonieee, maxdf_sse, sse_movsfcc, sse_movsfcc_eq,
17013         sse_movdfcc, sse_movdfcc_eq, sse_movsfcc_const0_1,
17014         sse_movsfcc_const0_2, sse_movsfcc_const0_3, sse_movsfcc_const0_4,
17015         sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
17016         sse_movdfcc_const0_4): Remove.
17017         * config/i386/i386.c (ix86_expand_fp_movcc): For TARGET_SSE_MATH,
17018         recognize min/max early.  Update for changed sse cmove patterns.
17019         (ix86_split_sse_movcc): New.
17020         * config/i386/i386-protos.h: Update.
17021
17022 2005-01-13  Steven Bosscher  <stevenb@suse.de>
17023
17024         * tree-ssa-dse.c (fix_phi_uses): Use SSA operand iterators.
17025         (fix_stmt_v_may_defs): Likewise.
17026
17027 2005-01-13  Richard Henderson  <rth@redhat.com>
17028
17029         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use elt_mode
17030         for converting the mask.
17031
17032 2005-01-13  David Edelsohn  <edelsohn@gnu.org>
17033
17034         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Change _XOPEN_SOURCE
17035         definition to 600.
17036
17037 2005-01-13  Richard Henderson  <rth@redhat.com>
17038
17039         * config/i386/i386.c (IX86_BUILTIN_MOVQ, IX86_BUILTIN_LOADD,
17040         IX86_BUILTIN_STORED, IX86_BUILTIN_MOVQ2DQ,
17041         IX86_BUILTIN_MOVDQ2Q): Remove.
17042         (IX86_BUILTIN_VEC_EXT_V4SI): New.
17043         (ix86_init_mmx_sse_builtins, ix86_expand_builtin): Update to match.
17044         (ix86_expand_vector_extract): For V4S[FI], extract element 0 after
17045         shuffling.
17046         * config/i386/sse.md (sse_concatv2sf): Accept zero operand 2.
17047         (sse2_pextrw): Fix immediate constraint.
17048         (sse2_loadq, sse2_loadq_rex64): Remove.
17049         * config/i386/emmintrin.h (_mm_cvtsi128_si32, _mm_cvtsi128_si64x):
17050         Use __builtin_ia32_vec_ext_<size>.
17051         (_mm_cvtsi32_si128, _mm_cvtsi64x_si128): Use _mm_set_epi<size>.
17052
17053 2005-01-13  Aldy Hernandez  <aldyh@redhat.com>
17054
17055         * function.c (assign_parm_setup_block): Look inside original
17056         entry_parm when inspecting PARALLEL.
17057
17058 2005-01-13  Ralf Corsepius  <ralf.corsepius@rtems.org>
17059             Joel Sherrill  <joel@oarcorp.com>
17060
17061         PR target/19399
17062         * gthr-rtems.h (__gthread_recursive_mutex_t): New type.
17063         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Define to
17064         rtems_gxx_recursive_mutex_init.
17065         (__gthread_recursive_mutex_lock): New function.
17066         (__gthread_recursive_mutex_trylock): Likewise.
17067         (__gthread_recursive_mutex_unlock): Likewise.
17068
17069 2005-01-13  Ralf Corsepius <ralf.corsepius@rtems.org>
17070
17071         * config/i386/t-rtems-i386: Multilib on -mtune instead of -mcpu.
17072
17073 2005-01-13  Jan Beulich  <jbeulich@novell.com>
17074
17075         * config/ia64/ia64.md (ashlti3, ashlti3_internal): New.
17076         (ashrti3_internal): Indicate output is early clobber. Generate result
17077         into output rather than first input. Use move for low word of output
17078         if shift count is exactly 64.
17079         (lshrti3_internal): Likewise.
17080
17081 2005-01-13  Hans-Peter Nilsson  <hp@bitrange.com>
17082
17083         PR target/18329
17084         PR target/18330
17085         * reload1.c (delete_output_reload): Don't delete an output reload
17086         if the pseudo lives longer than a single basic block.  Adjust and
17087         improve wording of comment.
17088
17089 2005-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
17090
17091         PR target/19334
17092         * config/darwin.c (machopic_select_section): Use TYPE_SIZE_UNIT instead
17093         of TYPE_SIZE where we mean the number of bytes.
17094
17095 2005-01-12  Aldy Hernandez  <aldyh@redhat.com>
17096
17097         * function.c (assign_parm_setup_block): Relax condition on
17098         multi-register optimization.
17099
17100 2005-01-12  Nick Clifton  <nickc@redhat.com>
17101
17102         * config/sh/sh.md (udivsi3_sh2a, divsi3_sh2a): Give these patterns
17103         an "in_delay_slot" attribute of "no" to prevent them being used in
17104         delay slots.  This is forbidden because they might generate
17105         exceptions.
17106
17107 2005-01-12  Alan Modra  <amodra@bigpond.net.au>
17108
17109         PR target/19389
17110         * config/rs6000/rs6000.md (movtf_internal): Replace r->o and m->r
17111         with r->Y and Y->r.
17112
17113 2005-01-12  Nick Clifton  <nickc@redhat.com>
17114
17115         * config/iq2000/iq2000.h (ASM_SPEC): Undefine (to stop -Qy being
17116         passed on to GAS) but do not define, as GAS no longer supports or
17117         needs the -m2000 option.
17118
17119 2005-01-11  Roger Sayle  <roger@eyesopen.com>
17120
17121         * builtins.c (fold_builtin_fabs): Convert argument to the appropriate
17122         type as args of unprototyped builtins aren't automatically promoted.
17123         (fold_builtin_abs): Likewise.
17124
17125 2005-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17126
17127         * Makefile.in: Set a `build-warn' variable.
17128
17129 2005-01-11  Zdenek Dvorak  <dvorakz@suse.cz>
17130
17131         PR tree-optimization/17949
17132         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): New function.
17133         (find_interesting_uses_address): Use it.
17134
17135 2005-01-11  Aldy Hernandez  <aldyh@redhat.com>
17136
17137         * regrename.c (kill_value): Handle subreg's that won't simplify.
17138
17139 2005-01-11  Richard Henderson  <rth@redhat.com>
17140
17141         PR target/13366
17142         * config/i386/i386.h (enum ix86_builtins): Move ...
17143         * config/i386/i386.c: ... here.
17144         (IX86_BUILTIN_MOVDDUP, IX86_BUILTIN_MMX_ZERO, IX86_BUILTIN_PEXTRW,
17145         IX86_BUILTIN_PINSRW, IX86_BUILTIN_LOADAPS, IX86_BUILTIN_LOADSS,
17146         IX86_BUILTIN_STORESS, IX86_BUILTIN_SSE_ZERO, IX86_BUILTIN_PEXTRW128,
17147         IX86_BUILTIN_PINSRW128, IX86_BUILTIN_LOADAPD, IX86_BUILTIN_LOADSD,
17148         IX86_BUILTIN_STOREAPD, IX86_BUILTIN_STORESD,  IX86_BUILTIN_STOREHPD,
17149         IX86_BUILTIN_STORELPD, IX86_BUILTIN_SETPD1, IX86_BUILTIN_SETPD,
17150         IX86_BUILTIN_CLRPD, IX86_BUILTIN_LOADPD1, IX86_BUILTIN_LOADRPD,
17151         IX86_BUILTIN_STOREPD1, IX86_BUILTIN_STORERPD, IX86_BUILTIN_LOADDQA,
17152         IX86_BUILTIN_STOREDQA, IX86_BUILTIN_CLRTI,
17153         IX86_BUILTIN_LOADDDUP): Remove.
17154         (IX86_BUILTIN_VEC_INIT_V2SI, IX86_BUILTIN_VEC_INIT_V4HI,
17155         IX86_BUILTIN_VEC_INIT_V8QI, IX86_BUILTIN_VEC_EXT_V2DF,
17156         IX86_BUILTIN_VEC_EXT_V2DI, IX86_BUILTIN_VEC_EXT_V4SF,
17157         IX86_BUILTIN_VEC_EXT_V8HI, IX86_BUILTIN_VEC_EXT_V4HI,
17158         IX86_BUILTIN_VEC_SET_V8HI, IX86_BUILTIN_VEC_SET_V4HI): New.
17159         (ix86_init_builtins): Make static.
17160         (ix86_init_mmx_sse_builtins): Update for changed builtins.
17161         (ix86_expand_binop_builtin): Only use ix86_fixup_binary_operands
17162         if all the modes match.  Otherwise, fake it.
17163         (get_element_number, ix86_expand_vec_init_builtin,
17164         ix86_expand_vec_ext_builtin, ix86_expand_vec_set_builtin): New.
17165         (ix86_expand_builtin): Make static.  Update for changed builtins.
17166         (ix86_expand_vector_move_misalign): Use sse2_loadlpd with zero
17167         operand instead of sse2_loadsd.  Cast sse1 fallback to V4SFmode.
17168         (ix86_expand_vector_init_duplicate): New.
17169         (ix86_expand_vector_init_low_nonzero): New.
17170         (ix86_expand_vector_init_one_var, ix86_expand_vector_init_general):
17171         Split out from ix86_expand_vector_init; handle integer modes.
17172         (ix86_expand_vector_init): Use them.
17173         (ix86_expand_vector_set, ix86_expand_vector_extract): New.
17174         * config/i386/i386-protos.h: Update.
17175         * config/i386/predicates.md (reg_or_0_operand): New.
17176         * config/i386/mmx.md (mov<MMXMODEI>_internal): Add 'r' variants.
17177         (movv2sf_internal): Likewise.  And a splitter to match them all.
17178         (vec_dupv2sf, mmx_concatv2sf, vec_setv2sf, vec_extractv2sf,
17179         vec_initv2sf, vec_dupv4hi, vec_dupv2si, mmx_concatv2si, vec_setv2si,
17180         vec_extractv2si, vec_initv2si, vec_setv4hi, vec_extractv4hi,
17181         vec_initv4hi, vec_setv8qi, vec_extractv8qi, vec_initv8qi): New.
17182         (mmx_pinsrw): Fix operand ordering.
17183         * config/i386/sse.md (movv4sf splitter): Use direct pattern,
17184         rather than sse_loadss expander.
17185         (movv2df splitter): Similarly.
17186         (sse_loadss, sse_loadlss): Remove.
17187         (vec_dupv4sf, sse_concatv2sf, sse_concatv4sf, vec_extractv4sf_0): New.
17188         (vec_setv4sf, vec_setv2df): Use ix86_expand_vector_set.
17189         (vec_extractv4sf, vec_extractv2df): Use ix86_expand_vector_extract.
17190         (sse3_movddup): Rename with '*'.
17191         (sse3_movddup splitter): Use gen_rtx_REG instead of gen_lowpart.
17192         (sse2_loadsd): Remove.
17193         (vec_dupv2df_sse3): Rename from sse3_loadddup.
17194         (vec_dupv2df, vec_concatv2df_sse3, vec_concatv2df): New.
17195         (sse2_pinsrw): Fix argument ordering.
17196         (sse2_loadld, sse2_loadq): Add sse1 alternatives.
17197         (sse2_stored): Remove 'r' destination.
17198         (vec_dupv4si, vec_dupv2di, sse2_concatv2si, sse1_concatv2si,
17199         vec_concatv4si_1, vec_concatv2di, vec_setv2di, vec_extractv2di,
17200         vec_initv2di, vec_setv4si, vec_extractv4si, vec_initv4si,
17201         vec_setv8hi, vec_extractv8hi, vec_initv8hi, vec_setv16qi,
17202         vec_extractv16qi, vec_initv16qi): New.
17203
17204         * config/i386/emmintrin.h (__m128i, __m128d): Use typedef, not define.
17205         (_mm_set_sd, _mm_set1_pd, _mm_setzero_pd, _mm_set_epi64x,
17206         _mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128): Use
17207         constructor form.
17208         (_mm_load_pd, _mm_store_pd): Use plain dereference.
17209         (_mm_load_si128, _mm_store_si128): Likewise.
17210         (_mm_load1_pd): Use _mm_set1_pd.
17211         (_mm_load_sd): Use _mm_set_sd.
17212         (_mm_store_sd, _mm_storeh_pd): Use __builtin_ia32_vec_ext_v2df.
17213         (_mm_store1_pd, _mm_storer_pd): Use _mm_store_pd.
17214         (_mm_set_epi64): Use _mm_set_epi64x.
17215         (_mm_set1_epi64x, _mm_set1_epi64, _mm_set1_epi32, _mm_set_epi16,
17216         _mm_set1_epi8, _mm_setr_epi64, _mm_setr_epi32, _mm_setr_epi16,
17217         _mm_setr_epi8): Use _mm_set_foo form.
17218         (_mm_loadl_epi64, _mm_movpi64_epi64, _mm_move_epi64): Use _mm_set_epi64.
17219         (_mm_storel_epi64, _mm_movepi64_pi64): Use __builtin_ia32_vec_ext_v2di.
17220         (_mm_extract_epi16): Use __builtin_ia32_vec_ext_v8hi.
17221         (_mm_insert_epi16): Use __builtin_ia32_vec_set_v8hi.
17222         * config/i386/mmintrin.h (_mm_setzero_si64): Use plain cast.
17223         (_mm_set_pi32): Use __builtin_ia32_vec_init_v2si.
17224         (_mm_set_pi16): Use __builtin_ia32_vec_init_v4hi.
17225         (_mm_set_pi8): Use __builtin_ia32_vec_init_v8qi.
17226         (_mm_set1_pi16, _mm_set1_pi8): Use _mm_set_piN variant.
17227         * config/i386/pmmintrin.h (_mm_loaddup_pd): Use _mm_load1_pd.
17228         (_mm_movedup_pd): Use _mm_shuffle_pd.
17229         * config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss,
17230         _mm_set1_ps, _mm_set_ps, _mm_setr_ps): Use constructor form.
17231         (_mm_cvtpi16_ps, _mm_cvtpu16_ps, _mm_cvtpi8_ps, _mm_cvtpu8_ps,
17232         _mm_cvtps_pi8, _mm_cvtpi32x2_ps): Avoid __builtin_ia32_mmx_zero;
17233         Use _mm_setzero_ps.
17234         (_mm_load_ss, _mm_load1_ps): Use _mm_set* form.
17235         (_mm_load_ps, _mm_loadr_ps): Use raw dereference.
17236         (_mm_store_ss): Use __builtin_ia32_vec_ext_v4sf.
17237         (_mm_store_ps): Use raw dereference.
17238         (_mm_store1_ps): Use _mm_storeu_ps.
17239         (_mm_storer_ps): Use _mm_store_ps.
17240         (_mm_extract_pi16): Use __builtin_ia32_vec_ext_v4hi.
17241         (_mm_insert_pi16): Use __builtin_ia32_vec_set_v4hi.
17242
17243 2005-01-11  Stan Shebs  <shebs@apple.com>
17244
17245         * config/rs6000/rs6000.c (machopic_output_stub): Issue
17246         ldu instead of lwzu if 64-bit -mdynamic-no-pic.
17247
17248 2005-01-11  Andrew Pinski  <pinskia@physics.uc.edu>
17249
17250         PR target/18761
17251         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
17252         Skip all DECLs except for FIELD_DECLs.
17253
17254 2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
17255
17256         * config/s390/s390.c (override_options): Return error if
17257         -mbackchain, -mpacked-stack and -mhard-float are used together.
17258         (s390_va_start): Remove the backchain && packed-stack special case.
17259         (s390_gimplify_va_arg): Likewise.
17260         * doc/invoke.texi: Remove the ABI incompatibility note.
17261
17262 2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
17263
17264         * config/s390/s390.c (struct s390_frame_layout): Remove
17265         save_backchain_p.
17266         (s390_frame_info, s390_emit_prologue): Replace occurrences of
17267         save_backchain_p with TARGET_BACKCHAIN.
17268
17269 2005-01-11  Alan Modra  <amodra@bigpond.net.au>
17270
17271         PR target/18916
17272         * builtins.c (std_gimplify_va_arg_expr): Adjust alignment of *ap.
17273         * expr.h (struct locate_and_pad_arg_data): Add "boundary".
17274         * function.c (locate_and_pad_parm): Set new field.
17275         (assign_parm_find_stack_rtl): Use it instead of FUNCTION_ARG_BOUNDARY.
17276         Tweak where_pad test to include "none".  Always set mem align for
17277         stack_parm.
17278         (assign_parm_adjust_stack_rtl): Discard stack_parm if alignment
17279         not sufficient for type.
17280         (assign_parm_setup_block): If stack_parm is zero on entry, always
17281         make a new stack local.  Block move old stack parm if necessary
17282         to new aligned stack local.
17283         (assign_parm_setup_stack): Use a block move to handle
17284         potentially misaligned entry_parm.
17285         (assign_parms_unsplit_complex): Specify required alignment when
17286         creating stack local.
17287         * calls.c (compute_argument_addresses): Override alignment of stack
17288         arg calculated from its type with the alignment given by
17289         FUNCTION_ARG_BOUNDARY.
17290         (store_one_arg): Likewise.
17291
17292 2005-01-11  Jan Beulich  <jbeulich@novell.com>
17293
17294         * config/ia64/ia64.md (zero_extendsidi2): Replace zxt4 by addp4.
17295         Change respective itanium_class attribute to ialu.
17296         (shladdp4_internal): New.
17297         * config/ia64/predicates.md (shladd_log2_operand): New.
17298
17299 2005-01-11  Richard Henderson  <rth@redhat.com>
17300
17301         * expr.c (store_constructor): Use rtvec_alloc instead of
17302         alloca+gen_rtvec_v, and an incorrect number passed to alloca.
17303
17304 2005-01-11  Kazu Hirata  <kazu@cs.umass.edu>
17305
17306         * config/alpha/alpha.c, config/i386/mmx.md: Fix comment typos.
17307
17308 2005-01-11  Alan Modra  <amodra@bigpond.net.au>
17309
17310         * varasm.c (default_section_type_flags_1): Don't set SECTION_SMALL.
17311         * config/ia64/ia64.c (TARGET_SECTION_TYPE_FLAGS): Define.
17312         (TARGET_RWRELOC): Define.
17313         (ia64_rwreloc_section_type_flags): Delete.
17314         (ia64_section_type_flags): New function.
17315         * config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): Don't define.
17316         (TARGET_RWRELOC): Define.
17317
17318 2005-01-10  David Mosberger  <davidm@hpl.hp.com>
17319
17320         PR target/18987
17321         * config/ia64/ia64.c (process_set): For alloc insn, only call
17322         process_epilogue is !frame_pointer_needed.
17323
17324 2005-01-10  Roger Sayle  <roger@eyesopen.com>
17325
17326         PR c++/19355
17327         * c-common.c (c_common_truthvalue_conversion): TRUTH_NOT_EXPR is a
17328         unary operator and can't be treated as a binary/comparison operator.
17329
17330 2005-01-10  Richard Henderson  <rth@redhat.com>
17331
17332         * config/i386/i386.c (ix86_function_value): Use type_natural_mode.
17333         (ix86_return_in_memory): Likewise.
17334         (function_arg_advance):  Likewise.  Mirror structure in function_arg
17335         for choosing register to advance.
17336
17337 2005-01-10  Kazu Hirata  <kazu@cs.umass.edu>
17338
17339         * tree-vectorizer.c, tree.def: Fix comment typos.
17340
17341 2005-01-10  Mark Dettinger  <dettinge@de.ibm.com>
17342
17343         * config/s390/s390.c (struct processor_costs): 4 new fields:
17344         ddbr, ddr, debr, der.
17345         (s390_rtx_costs): More precise handling of divide instructions.
17346
17347 2005-01-10  David Edelsohn  <edelsohn@gnu.org>
17348
17349         * config/rs6000/t-aix43 (BOOT_LDFLAGS): Define.
17350
17351 2005-01-10  Jan Beulich  <jbeulich@novell.com>
17352
17353         * config/ia64/ia64.c (ia64_in_small_data_p): Also handle the section
17354         names resulting from -ffunction-sections/-fdata-sections and linkonce
17355         ones.
17356         * varasm.c (default_section_type_flags_1): Also set SECTION_SMALL
17357         based on the section name. Rearrange the section name comparison logic
17358         slightly so that each section name is compared against at most once.
17359
17360 2005-01-10  Ben Elliston  <bje@au.ibm.com>
17361
17362         * doc/invoke.texi (Code Gen Options): Add PowerPC to the list of
17363         targets for which -fPIC reduces limitations on the GOT size.
17364
17365 2005-01-09  Falk Hueffner  <falk@debian.org>
17366
17367         * fold-const.c (fold): Also handle EXACT_DIV_EXPR when folding
17368         X/C1 cmpop C2.
17369
17370 2005-01-09  David Edelsohn  <edelsohn@gnu.org>
17371
17372         PR target/18720
17373         * collect2.c (main): Set aixrtl_flag for -brtl option.
17374         (resolve_lib_name): Search for .so file extension before .a
17375         if aixrtl_flag set.
17376
17377 2005-01-09  Dorit Naishlos  <dorit@il.ibm.com>
17378
17379         * tree-vectorizer.c (vect_enhance_data_refs_alignment): Add dump prints.
17380         (vect_analyze_data_refs_alignment): Add dump prints.
17381
17382 2005-01-09  Ira Rosen  <irar@il.ibm.com>
17383
17384         * tree-vectorizer.c (vect_analyze_offset_expr): Use
17385         expr_invariant_in_loop_p.
17386         Initialize outputs first thing in the function.
17387         (vect_update_ivs_after_vectorizer): Call initial_condition_in_loop_num.
17388         (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
17389         (vect_analyze_pointer_ref_access): Check that the initial condition of
17390         the access function is loop invariant.
17391
17392 2005-01-09  Richard Henderson  <rth@redhat.com>
17393
17394         * config/i386/i386.c (bdesc_2arg): Update names for mmx_ prefixes.
17395         (ix86_expand_builtin): Likewise.  Frob MASKMOVQ wrt the input mem
17396         just like MASKMOVDQU.  Return plain zero for MMX_ZERO.
17397         * config/i386/i386.md (MMXMODEI, mov<MMXMODEI>,
17398         mov<MMXMODEI>_internal_rex64, mov<MMXMODEI>_internal, movv2sf,
17399         movv2sf_internal_rex64, movv2sf_internal, MMXMODE,
17400         movmisalign<MMXMODE>, mmx_pmovmskb, mmx_maskmovq, mmx_maskmovq_rex,
17401         sse_movntdi, addv8qi3, addv4hi3, addv2si3, mmx_adddi3, ssaddv8qi3,
17402         ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3, subv4hi3, subv2si3,
17403         mmx_subdi3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
17404         mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
17405         sse2_umulsidi3, mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3,
17406         mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pinsrw,
17407         mmx_pextrw, mmx_pshufw, eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3,
17408         gtv2si3, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3,
17409         ashrv2si3, lshrv4hi3, lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3,
17410         mmx_ashldi3, mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
17411         mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
17412         mmx_punpckldq, emms, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3,
17413         eqv2sf3, pfmaxv2sf3, pfminv2sf3, mulv2sf3, femms, pf2id, pf2iw,
17414         pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pfrcpv2sf2, pfrcpit1v2sf3,
17415         pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3, pmulhrwv4hi3, pswapdv2si2,
17416         pswapdv2sf2): Move to mmx.md; rename as necessary with leading
17417         mmx_ prefix.
17418         (mmx_clrdi, pavgusb): Remove.
17419         (ldmxcsr, stmxcsr, sfence, sfence_insn): Move to sse.md; rename
17420         with leading sse_ prefix.
17421         * config/i386/sse.md: Receive them.
17422         * config/i386/mmx.md: New file.
17423         (MMXMODE12, MMXMODE24, mmxvecsize): New.
17424         (subrv2sf3): Turn into expander for normal subtraction.
17425         (mmx_addv2sf3, mmx_mulv2sf3, mmx_smaxv2sf3, mmx_sminv2sf3,
17426         mmx_eqv2sf3, mmx_mulv4hi3, mmx_smulv4hi3_highpart,
17427         mmx_umulv4hi3_highpart, mmx_pmaddwd, mmx_pmulhrwv4hi3, sse2_umulsidi3,
17428         mmx_umaxv8qi3, mmx_smaxv4hi3, mmx_uminv8qi3, mmx_sminv4hi3): Mark
17429         commutative; use ix86_binary_operator_ok.
17430         (mmx_add<MMXMODEI>3, mmx_ssadd<MMXMODE12>3, mmx_usadd<MMXMODE12>3,
17431         mmx_sub<MMXMODEI>3, mmx_sssub<MMXMODE12>3, mmx_ussub<MMXMODE12>3
17432         mmx_ashr<MMXMODE24>3, mmx_lshr<MMXMODE23>3, mmx_ashl<MMXMODE24>3
17433         mmx_eq<MMXMODEI>3, mmx_gt<MMXMODEI>3, mmx_and<MMXMODEI>3,
17434         mmx_nand<MMXMODEI>3, mmx_ior<MMXMODEI>3, mmx_xor<MMXMODEI>3):
17435         Macroize from existing patterns; use ix86_binary_operator_ok.
17436         (mmx_packsswb, mmx_packssdw, mmx_packuswb): Add memory alternative.
17437         (mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
17438         mmx_punpckhdq, mmx_punpckhdq, mmx_punpckldq): Likewise.  Model
17439         with vec_select+vec_concat.
17440         (mmx_pshufw, mmx_pshufw_1): Likewise.
17441         (mmx_uavgv8qi3): Merge pavgusb.  Model correcty.
17442         (mmx_uavgv4hi3): Model correctly.
17443         * config/i386/mmintrin.h (_mm_and_si64, _mm_andnot_si64, _mm_or_si64,
17444         _mm_xor_si64): Remove casts.
17445
17446 2005-01-09  Zdenek Dvorak  <dvorakz@suse.cz>
17447
17448         PR tree-optimization/19224
17449         * tree-scalar-evolution.c (get_instantiated_value,
17450         set_instantiated_value): New functions.
17451         (instantiate_parameters_1): Cache the results.
17452         (instantiate_parameters, resolve_mixers): Initialize and free
17453         the cache.
17454
17455 2005-01-08  David Edelsohn  <edelsohn@gnu.org>
17456
17457         * config/i386/i386.md (addhi_4): Correct reference in comment.
17458         (addqi_4): Same.
17459
17460 2005-01-08  Richard Henderson  <rth@redhat.com>
17461
17462         * config/i386/emmintrin.h (_mm_cvtsi128_si32): Move earlier.
17463         (_mm_cvtsi128_si64x): Likewise.
17464         (_mm_srl_epi64, _mm_srl_epi32, _mm_srl_epi16, _mm_sra_epi32,
17465         _mm_sra_epi16, _mm_sll_epi64, _mm_sll_epi32, _mm_sll_epi16): Use
17466         the _mm_{srl,sll}i_foo counterpart, and _mm_cvtsi128_si32.
17467         * config/i386/i386-modes.def: Add V16HI, V32QI, V4DF, V8SF.
17468         * config/i386/i386-protos.h: Update.
17469         * config/i386/i386.c (print_operand): Add 'H'.
17470         (ix86_fixup_binary_operands): Split out from ...
17471         (ix86_expand_binary_operator): ... here.
17472         (ix86_fixup_binary_operands_no_copy): New.
17473         (ix86_expand_fp_absneg_operator): Handle vector mode results.
17474         (bdesc_2arg): Update names for sse{,2,3}_ prefixes.
17475         (ix86_init_mmx_sse_builtins): Remove *maskncmp* special cases.
17476         (safe_vector_operand): Use CONST0_RTX.
17477         (ix86_expand_binop_builtin): Use ix86_fixup_binary_operands.
17478         (ix86_expand_builtin): Merge CODE_FOR_sse2_maskmovdqu_rex64 and
17479         CODE_FOR_sse2_maskmovdqu.  Special case SSE version of MASKMOVDQU
17480         expansion.  Update names for sse{,2,3}_ prefixes.  Remove *maskncmp*
17481         special cases.
17482         * config/i386/i386.h (IX86_BUILTIN_CMPNGTSS): New.
17483         (IX86_BUILTIN_CMPNGESS): New.
17484         * config/i386/i386.md (UNSPEC_FIX_NOTRUNC): New.
17485         (attr type): Add sselog1.
17486         (attr unit, attr memory): Handle it.
17487         (movti, movti_internal, movti_rex64): Move near other integer moves.
17488         (movtf, movtf_internal): Move near other fp moves.
17489         (SSEMODE, SSEMODEI, vec_setv2df, vec_extractv2df, vec_initv2df,
17490         vec_setv4sf, vec_extractv4sf, vec_initv4sf, movv4sf, movv4sf_internal,
17491         movv2df, movv2df_internal, mov<SSEMODEI>, mov<SSEMODEI>_internal,
17492         movmisalign<SSEMODE>, sse_movups_1, sse_movmskps, sse_movntv4sf,
17493         sse_movhlps, sse_movlhps, sse_storehps, sse_loadhps, sse_storelps,
17494         sse_loadlps, sse_loadss, sse_loadss_1, sse_movss, sse_storess,
17495         sse_shufps, addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, negv4sf2,
17496         mulv4sf3, vmmulv4sf3, divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2,
17497         rsqrtv4sf2, vmrsqrtv4sf2, sqrtv4sf2, vmsqrtv4sf2, sse_andv4sf3,
17498         sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3, sse2_andv2df3,
17499         sse2_nandv2df3, sse2_iorv2df3, sse2_xorv2df3, sse2_andv2di3,
17500         sse2_nandv2di3, sse2_iorv2di3, sse2_xorv2di3, maskcmpv4sf3,
17501         vmmaskcmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
17502         smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
17503         cvttps2pi, cvtsi2ss, cvtsi2ssq, cvtss2si, cvtss2siq, cvttss2si,
17504         cvttss2siq, addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3,
17505         vmmulv2df3, divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3,
17506         vmsminv2df3, sqrtv2df2, vmsqrtv2df2, maskcmpv2df3, vmmaskcmpv2df3,
17507         sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb, sse2_maskmovdqu,
17508         sse2_maskmovdqu_rex64, sse2_movntv2df, sse2_movntv2di, sse2_movntsi,
17509         cvtdq2ps, cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq,
17510         cvtpd2pi, cvttpd2pi, cvtpi2pd, cvtsd2si, cvtsd2siq, cvttsd2si,
17511         cvttsd2siq, cvtsi2sd, cvtsi2sdq, cvtsd2ss, cvtss2sd, cvtpd2ps,
17512         cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3, ssaddv16qi3,
17513         ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3, subv4si3,
17514         subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3, mulv8hi3,
17515         smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
17516         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_uavgv16qi3, sse2_uavgv8hi3,
17517         sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd, sse2_pshuflw,
17518         sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3, gtv8hi3,
17519         gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3, ashrv8hi3,
17520         ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3, ashlv4si3,
17521         ashlv2di3, sse2_ashlti3, sse2_lshrti3, sse2_unpckhpd, sse2_unpcklpd,
17522         sse2_packsswb, sse2_packssdw, sse2_packuswb, sse2_punpckhbw,
17523         sse2_punpckhwd, sse2_punpckhdq, sse2_punpcklbw, sse2_punpcklwd,
17524         sse2_punpckldq, sse2_punpcklqdq, sse2_punpckhqdq, sse2_movupd,
17525         sse2_movdqu, sse2_movdq2q, sse2_movdq2q_rex64, sse2_movq2dq,
17526         sse2_movq2dq_rex64, sse2_loadd, sse2_stored, sse2_storehpd,
17527         sse2_loadhpd, sse2_storelpd, sse2_loadlpd, sse2_movsd, sse2_loadsd,
17528         sse2_loadsd_1, sse2_storesd, sse2_shufpd, sse2_clflush, sse2_mfence,
17529         mfence_insn, sse2_lfence, lfence_insn, mwait, monitor, addsubv4sf3,
17530         addsubv2df3, haddv4sf3, haddv2df3, hsubv4sf3, hsubv2df3, movshdup,
17531         movsldup, lddqu, loadddup, movddup): Move to sse.md.  Any with
17532         non-optabs meanings renamed with an "sse{,2,3}_" prefix at the
17533         same time.
17534         (SSEPUSH, push<SSEPUSH>): Remove.
17535         (MMXPUSH, push<MMXPUSH>): Remove.
17536         (sse_movaps, sse_movaps_1, sse_movups): Remove.
17537         (sse2_movapd, sse2_movdqa, sse2_movq): Remove.
17538         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Remove.
17539         (sse_clrv4sf, sse_clrv2df, sse2_clrti): Remove.
17540         (maskncmpv4sf3, vmmaskncmpv4sf3): Remove.
17541         (maskncmpv2df3, vmmaskncmpv2df3): Remove.
17542         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti): Remove.
17543         (lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti): Remove.
17544         * config/i386/athlon.md (athlon_sselog_load): Handle sselog1.
17545         (athlon_sselog_load_k8, athlon_sselog, athlon_sselog_k8): Likewise.
17546         * config/i386/ppro.md (ppro_sse_div_V4SF_load): Fix memory attr.
17547         (ppro_sse_log_V4SF_load): Similarly.  Handle sselog1.
17548         (ppro_sse_log_V4SF): Handle sselog1.
17549         * config/i386/predicates.md (const_0_to_1_operand): New.
17550         (const_0_to_255_mul_8_operand): New.
17551         (const_1_to_31_operand): Rename from const_int_1_31_operand.
17552         (const_2_to_3_operand, const_4_to_7_operand): New.
17553         * config/i386/sse.md: New file.
17554         (SSEMODE12, SSEMODE24, SSEMODE124, SSEMODE248, ssevecsize): New.
17555         (sse_movups): Rename from sse_movups_1.
17556         (sse_loadlss): Rename from sse_loadss_1.
17557         (andv4sf3, iorv4sf3, xorv4sf3, andv2df3): Remove the sse prefix
17558         from the name.
17559         (negv4sf2): Use ix86_expand_fp_absneg_operator.
17560         (absv4sf2, negv2df, absv2df): New.
17561         (addv4sf3): Add expander to call ix86_fixup_binary_operands_no_copy.
17562         (subv4sf3, mulv4sf3, divv4sf3, smaxv4sf3, sminv4sf3, andv4sf3,
17563         iorv4sf3, xorv4sf3, addv2df3, subv2df3, mulv2df3, divv2df3,
17564         smaxv2df3, sminv2df3, andv2df3, iorv2df3, xorv2df3, mulv8hi3,
17565         umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3): Likewise.
17566         (sse3_addsubv4sf3): Model correctly.
17567         sse3_haddv4sf3, sse3_hsubv4sf3, sse3_addsubv2df3, sse3_haddv2df3,
17568         sse3_hsubv2df3, sse2_ashlti3, sse2_lshrti3): Likewise.
17569         (sse_movhlps): Model with vec_select+vec_concat.
17570         (sse_movlhps, sse_unpckhps, sse_unpcklps, sse3_movshdup,
17571         sse3_movsldup, sse_shufps, sse_shufps_1, sse2_unpckhpd, sse3_movddup,
17572         sse2_unpcklpd, sse2_shufpd, sse2_shufpd_1, sse2_punpckhbw,
17573         sse2_punpcklbw, sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq,
17574         sse2_punpckldq, sse2_punpckhqdq, sse2_punpcklqdq, sse2_pshufd,
17575         sse2_pshufd_1, sse2_pshuflw, sse2_pshuflw_1, sse2_pshufhw,
17576         sse2_pshufhw_1): Likewise.
17577         (neg<SSEMODEI>2, one_cmpl<SSEMODEI>2): New.
17578         (add<SSEMODEI>3, sse2_ssadd<SSEMODE12>3, sse2_usadd<SSEMODE12>3,
17579         sub<SSEMODEI>3, sse2_sssub<SSEMODE12>3, sse2_ussub<SSEMODE12>3,
17580         ashr<SSEMODE24>3, lshr<SSEMODE248>3, sse2_eq<SSEMODE124>3,
17581         sse2_gt<SSEMODDE124>3, and<SSEMODEI>3, sse_nand<SSEMODEI>3,
17582         ior<SSEMODEI>3, xor<SSEMODEI>3): Macroize from existing patterns.
17583         (addv4sf3, sse_vmaddv4sf3, mulv4sf3, sse_vmmulv4sf3, smaxv4sf3,
17584         sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, addv2df3, sse2_vmaddv2df3,
17585         mulv2df3, sse2_vmmulv2df3, smaxv2df3, sse2_vmsmaxv2df3, sminv2df3,
17586         sse2_vmsminv2df3, umaxv16qi3, smaxv8hi3, uminv16qi3
17587         sminv8hi3): Mark commutative
17588         operands.  Use ix86_binary_operator_ok.
17589         (sse_unpckhps, sse_unpcklps, sse2_packsswb, sse2_packssdw,
17590         sse2_packuswb, sse2_punpckhbw, sse2_punpcklbw, sse2_punpckhwd,
17591         sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq, sse2_punpckhqdq,
17592         sse2_punpcklqdq): Allow operand2 in memory.
17593         (sse_movhlps, sse_movlhps, sse2_unpckhpd, sse2_unpcklpd
17594         sse2_movsd): Add memory alternatives.
17595         (sse_storelps): Turn expander into an insn; split after reload.
17596         (sse_storess, sse2_loadhpd, sse2_loadlpd): Add non-xmm inputs.
17597         (sse2_storehpd, sse2_storelpd): Add non-xmm outputs.
17598
17599 2005-01-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
17600
17601         * configure.ac (DWARF-2 debug_line): Use objdump.
17602         * configure: Regenerate.
17603
17604 2005-01-08  Jeff Law  <law@redhat.com>
17605             Diego Novillo  <dnovillo@redhat.com>
17606
17607         PR tree-optimization/18241
17608         * tree-nrv.c (tree_nrv): Ignore volatile return values.
17609         * tree-ssa-dse.c (dse_optimize_stmt): Do not optimize
17610         statements with volatile operands.
17611         * tree-ssa-operands.c (add_stmt_operand): Do add volatile
17612         operands after marking a statement with has_volatile_ops.
17613
17614 2005-01-08  Roger Sayle  <roger@eyesopen.com>
17615
17616         * tree.c (int_fits_type_p): Always honor integer constant
17617         TYPE_MIN_VALUE and TYPE_MAX_VALUE if they exist.
17618
17619 2005-01-08  Roger Sayle  <roger@eyesopen.com>
17620
17621         * ifcvt.c (find_if_case_1): Reinstate 2005-01-04 change, now that
17622         the latent bug in rtl_delete_block has been resolved.
17623
17624 2005-01-08  Richard Sandiford  <rsandifo@redhat.com>
17625
17626         * config/mips/t-iris6 (MULTILIB_DIRNAMES): Use -mabi argument values.
17627         (MULTILIB_OSDIRNAMES): Use the standard lib, lib32 and lib64.
17628
17629 2005-01-08  Richard Sandiford  <rsandifo@redhat.com>
17630
17631         * config/mips/t-slibgcc-irix (SHLIB_LINK): Install a copy of the
17632         library as @multilib_dir@/$(SHLIB_SONAME).
17633
17634 2005-01-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
17635
17636         * configure.ac (HAVE_AS_OFFSETABLE_LO10): Fix typo.
17637         * configure: Regenerate.
17638
17639 2005-01-07  Jakub Jelinek  <jakub@redhat.com>
17640
17641         * c-common.c (handle_mode_attribute): For ENUMERAL_TYPE, also copy
17642         TYPE_MODE.
17643
17644 2005-01-07  David Edelsohn  <edelsohn@gnu.org>
17645
17646         PR target/13674
17647         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
17648         Convert non-word aligned offset address using ld/std into
17649         indirect address.
17650
17651 2005-01-07  Richard Henderson  <rth@redhat.com>
17652
17653         * config/i386/i386.md (sse_loadhps splitter): Fix operand number typo.
17654
17655 2005-01-07  Richard SAndiford  <rsandifo@redhat.com>
17656
17657         * tree.h (IS_EXPR_CODE_CLASS): Use a straight-forward range check.
17658
17659 2005-01-07  Jakub Jelinek  <jakub@redhat.com>
17660
17661         PR tree-optimization/19283
17662         * fold-const.c (fold_widened_comparison): Return NULL if shorter_type
17663         is not shorter than the original type.
17664
17665         PR rtl-optimization/19012
17666         * config/i386/i386.md (addqi_1_slp): Set memory attribute.
17667
17668         PR rtl-optimization/18861
17669         * cfgbuild.c (BLOCK_USED_BY_TABLEJUMP): Define.
17670         (FULL_STATE): Define.
17671         (mark_tablejump_edge): New function.
17672         (purge_dead_tablejump_edges): New function.
17673         (find_bb_boundaries): Use it.
17674
17675         PR tree-optimization/18828
17676         * builtins.c (expand_builtin_next_arg): Remove argument and all
17677         the argument checking.
17678         (expand_builtin): Adjust caller.
17679         (expand_builtin_va_start): Likewise.  Remove error for too many
17680         arguments.
17681         (fold_builtin_next_arg): Issue error for too many arguments.
17682         After checking arguments, replace them with magic arguments that
17683         prevent further checking of the args.
17684
17685 2005-01-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17686
17687         * pa64-hpux.h (STARTFILE_SPEC): Fix typo in spec.
17688
17689 2005-01-06  Roger Sayle  <roger@eyesopen.com>
17690
17691         PR target/6077
17692         * gcc.c (input_suffix_matches): Tweak the semantics of %{.s:...}
17693         and %{.S:...} (and their negative variants) to test whether the
17694         input file is assembler or pre-processed-assembler independent of
17695         the actual filename extension.
17696
17697 2005-01-06  Roger Sayle  <roger@eyesopen.com>
17698
17699         * simplify-rtx.c (simplify_subreg): Simplify truncations of shifts
17700         of sign or zero extended values.
17701
17702 2005-01-06  Geoffrey Keating  <geoffk@apple.com>
17703
17704         * c-cppbuiltin.c (builtin_define_float_constants): Set __*_EPSILON__
17705         for IBM long double format correctly.
17706
17707 2005-01-06  Daniel Berlin <dberlin@dberlin.org>
17708
17709         Fix PR tree-optimization/18792
17710
17711         * tree-data-ref.c (build_classic_dist_vector): Change first_loop
17712         to first_loop_depth, and use loop depth instead of loop number.
17713         (build_classic_dir_vector): Ditto.
17714         (compute_data_dependences_for_loop): Use depth, not loop number.
17715         * tree-loop-linear.c (try_interchange_loops): Use loop depth, not loop
17716         number. Pass in loops, instead of loop numbers.
17717         (gather_interchange_stats): Ditto.
17718         (linear_transform_loops): Ditto.
17719
17720 2005-01-06  Richard Sandiford  <rsandifo@redhat.com>
17721
17722         PR rtl-opt/13299
17723         * loop.c (get_monotonic_increment, biased_biv_fits_mode_p,
17724         biv_fits_mode_p, extension_within_bounds_p): New functions.
17725         (check_ext_dependent_givs): Use them.
17726
17727 2005-01-06  Roger Sayle  <roger@eyesopen.com>
17728
17729         * cfgrtl.c (rtl_delete_block): A basic block may be followed by
17730         more than one barrier, in which case we should delete them all.
17731
17732 2005-01-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
17733
17734         * gcc.c (process_command): Change year in 'gcc --version' to 2005.
17735
17736 2005-01-05  Daniel Berlin  <dberlin@dberlin.org>
17737
17738         Fix PR middle-end/19286
17739         Fix PR debug/19267
17740         * dwarf2out.c (gen_subprogram_die): If we've already tried to
17741         output this subprogram, simply ignore this attempt to do it again.
17742         (add_abstract_origin_attribute): Don't abort trying to add the abstract
17743         origin attribute if it's not possible.
17744         (gen_block_die): Don't ignore subblocks of "unused" blocks.
17745         (decls_for_scope): Ditto.
17746         * gimple-low.c (mark_blocks_with_used_subblocks): Remove.
17747         (mark_used_blocks): Don't call mark_blocks_with_used_subblocks.
17748
17749 2005-01-05  Richard Henderson  <rth@redhat.com>
17750
17751         PR target/11327
17752         * config/i386/i386.c (BUILTIN_DESC_SWAP_OPERANDS): New.
17753         (bdesc_2arg): Use it.
17754         (ix86_expand_binop_builtin): Force operands into registers
17755         when optimizing.
17756         (ix86_expand_unop_builtin, ix86_expand_unop1_builtin,
17757         ix86_expand_sse_compare, ix86_expand_sse_comi,
17758         ix86_expand_builtin): Likewise.
17759
17760 2005-01-05  Richard Henderson  <rth@redhat.com>
17761
17762         * config/ia64/ia64.c (rtx_needs_barrier): Handle CONST_VECTOR
17763         and VEC_SELECT.
17764         * config/ia64/vect.md (mulv8qi3): Re-implement with mix_[rl].
17765         (mulv4hi3): Set itanium_class mmmul.
17766         (fpack_sfxf, fpack_xfsf, fpack_xfxf): Remove.
17767         (fpack): Rename from fpack_sfsf.
17768
17769 2005-01-05  Richard Henderson  <rth@redhat.com>
17770
17771         PR rtl-opt/10692
17772         * reload1.c (do_input_reload): Restrict the optimization deleteing
17773         a previous output reload to RELOAD_FOR_INPUT.
17774
17775 2005-01-05  Steven Bosscher  <stevenb@suse.de>
17776
17777         * combine.c (expand_compound_operation)  <ZERO_EXTRACT>: Add
17778         comment that we fall through after case.
17779         (mark_used_regs_combine): Don't expect a SIGN_EXTRACT in a SET_DEST.
17780         (distribute_links): Likewise.
17781         * cse.c (cse_insn): Likewise.
17782         * cselib.c (cselib_invalidate_mem): Likewise.
17783         * df.c: Update comments at the top of the file.
17784         (read_modify_subreg_p): Update comments here too.
17785         (df_def_record_1): Don't expect a SIGN_EXTRACT in a SET_DEST.
17786         * flow.c (mark_set_1): Likewise.
17787         (mark_used_regs): Likewise.
17788         * gcse.c (mems_conflict_for_gcse_p): Likewise.
17789         (canon_list_insert): Likewise.
17790         (mark_set): Likewise.
17791         (try_replace_reg): Likewise.
17792         (store_killed_in_insn): Likewise.
17793         * loop.c (count_one_set): Likewise.
17794         (basic_induction_var): Likewise.
17795         * postreload-gcse.c (find_mem_conflicts): Likewise.
17796         * postreload.c (reload_combine_note_store): Likewise.
17797         (move2add_note_store): Likewise.
17798         * reload.c (find_equiv_reg): Likewise.
17799         (mark_referenced_resources): Likewise.
17800         * rtlanal.c (set_noop_p): Likewise.
17801         (note_stores): Likewise.
17802         (note_uses): Likewise.
17803         * sched-deps.c (sched_analyze_1): Likewise.
17804         * sched-rgn.c (check_live_1): Likewise.
17805         (update_live_1): Likewise.
17806         * config/i860/i860.c: Likewise.
17807
17808         * rtl.dec (SIGN_EXTRACT): Document that this cannot appear as
17809         an lvalue.
17810         (ZERO_EXTRACT): Mention that this one can be an lvalue.
17811
17812         * doc/rtl.texi: Update documentation for bit-fields and SET.
17813
17814 2005-01-05  Roger Sayle  <roger@eyesopen.com>
17815
17816         * ifcvt.c (find_if_case_1): Revert 2005-01-04 change.
17817
17818 2005-01-05  Jan Hubicka  <jh@suse.cz>
17819             Richard Henderson  <rth@redhat.com>
17820
17821         PR target/18910
17822         * config/i386/i386.c (ix86_expand_move): Handle tls symbols
17823         with an offset.
17824
17825 2005-01-05  Richard Henderson  <rth@redhat.com>
17826
17827         PR target/12902
17828         * config/i386/i386.md (sse_movhps, sse_movlps): Remove.
17829         (sse_shufps): Change operand 3 to const_int_operand.
17830         (sse2_storelps): Fix typo in template.
17831         (sse_storehps, sse_loadhps, sse_storelps, sse_loadlps): New.
17832         * config/i386/i386.c (ix86_expand_vector_move_misalign): Use them.
17833         (ix86_expand_builtin): Likewise.
17834
17835 2005-01-05  Julian Brown  <julian@codesourcery.com>
17836
17837         * config/arm/arm.c (arm_return_in_memory): Treat complex types
17838         as aggregates for AAPCS ABIs.
17839
17840 2005-01-05  Stan Shebs  <shebs@apple.com>
17841
17842         * unwind-dw2-fde-darwin.c (examine_objects): Use 64-bit
17843         Mach-O getters if ppc64.
17844         * config/darwin.c (darwin_asm_output_dwarf_delta): Obey
17845         size argument.
17846         * config/darwin.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
17847         signed four-byte field for global code case.
17848         (STARTFILE_SPEC): Avoid crt2.o for 64-bit compilation.
17849
17850 2005-01-05  Roger Sayle  <roger@eyesopen.com>
17851
17852         PR middle-end/19100
17853         * c-common.c: Include real.h.
17854         (c_common_truthvalue_conversion): Avoid destructively modifying expr.
17855         Correctly handle TREE_CONSTANT_OVERFLOW for INTEGER_CST.
17856         Correctly handle TREE_CONSTANT_OVERFLOW and NaNs for REAL_CST.
17857         * Makefile.in (c-common.o): Update dependencies.
17858
17859 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
17860
17861         * c-parse.in (asm_string): Add trailing semicolon.
17862
17863 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
17864
17865         * c-parse.in (asm_string): New.  Don't allow wide strings in
17866         'asm'.
17867         (simple_asm_expr, asm_argument, asm_operand, asm_clobbers): Use
17868         asm_string instead of STRING.
17869
17870 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
17871
17872         * c-typeck.c (constructor_no_implicit): Remove.
17873         (set_designator, process_init_element): Don't check
17874         constructor_no_implicit.
17875
17876 2005-01-05  J"orn Rennecke <joern.rennecke@st.com>
17877             Kaz Kojima  <kkojima@gcc.gnu.org>
17878
17879         PR target/16482
17880         * lcm.c (create_pre_exit): New.
17881         (optimize_mode_switching): In MODE_ENTRY / MODE_EXIT case, set
17882         ENTRY_EXIT_EXTRA to 3.  Use create_pre_exit.
17883
17884 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
17885
17886         * arm.h (TARGET_OPTIONS): Correctly record -mhard-float and
17887         -msoft-float in target_float_switch.
17888         * arm.c (arm_override_options): Fix processing of target_float_switch.
17889
17890 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
17891
17892         * arm/vfp.md (arm_movsi_vfp): Hide VFP register classes from register
17893         preferencing.
17894
17895 2004-01-05  Uros Bizjak  <uros@kss-loka.si>
17896
17897         * doc/invoke.texi (Intel 386 and AMD x86-64 Options):
17898         Replace i387 with 'i386 compiler' in -mfpmath=sse option.
17899
17900 2005-01-04  Roger Sayle  <roger@eyesopen.com>
17901
17902         * ifcvt.c (find_if_case_1): Avoid creating an empty forwarder block,
17903         if deleting the then-block allows the test-block to fallthru to the
17904         else-block.
17905
17906 2005-01-04  Andrew Pinski  <pinskia@physics.uc.edu>
17907
17908         PR c/19152
17909         * c-decl.c (diagnose_mismatched_decls): Accept "extern inline" declared
17910         after the full declaration if the are in two different TUs.
17911
17912 2005-01-04  Richard Henderson  <rth@redhat.com>
17913
17914         PR tree-opt/19158
17915         * tree-sra.c (generate_one_element_init): Just
17916         call gimplify_and_add.
17917         (generate_element_init): Record the
17918         new referenced variables and mark them for renaming
17919         and split out to ...
17920         (generate_element_init_1): This.
17921         (scalarize_init): Don't call push_gimplify_context/
17922         pop_gimplify_context.
17923
17924 2005-01-04  Geoffrey Keating  <geoffk@apple.com>
17925
17926         * toplev.c (get_src_pwd): Handle failure of getpwd().
17927
17928 2005-01-04  Roger Sayle  <roger@eyesopen.com>
17929
17930         * fold-const.c (fold_single_bit_test): Delete unreachable handling
17931         of TRUTH_NOT_EXPR.
17932         (fold): Don't call fold_single_bit_test with a TRUTH_NOT_EXPR, as
17933         all the cases handled by it are inverted by invert_truthvalue.
17934
17935 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
17936
17937         * config/sparc/sparc.md (save_register_windowdi): Add missing mode.
17938         (save_register_windowsi): Likewise.
17939
17940 2005-01-04  Richard Henderson  <rth@redhat.com>
17941
17942         * tree-mudflap.c (mf_varname_tree): Fix thinko setting declname.
17943
17944 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
17945
17946         PR middle-end/17767
17947         * cse.c (fold_rtx) [RTX_COMPARE, RTX_COMM_COMPARE]: Don't attempt
17948         any simplifications of vector mode comparison operators.
17949         * simplify-rtx.c (simplify_relational_operation): Fix variable name.
17950
17951 2005-01-04  Paolo Bonzini  <bonzini@gnu.org>
17952             Devang Patel  <dpatel@apple.com>
17953
17954         PR tree-optimization/18308
17955         * tree-if-conv.c (add_to_dst_predicate_list): Gimplify
17956         the operands before creating a new expression.
17957         * dojump.c (do_jump): Make drop_through_label available
17958         for all cases.  Add expansion of COND_EXPR.
17959
17960 2005-01-04  Ira Rosen  <irar@il.ibm.com>
17961
17962         * tree-vectorizer.c (vect_analyze_offset_expr): Test for
17963         INTEGER_CST instead of TREE_CONSTANT.
17964         (vect_gen_niters_for_prolog_loop): Test for INTEGER_CST
17965         instead of TREE_CONSTANT.
17966         (vect_analyze_pointer_ref_access): Test for INTEGER_CST
17967         instead of TREE_CONSTANT.
17968
17969 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
17970
17971         * tree-eh.c (replace_goto_queue): Return early if the queue is empty.
17972
17973 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
17974
17975         PR target/19240
17976         * config/i386/i386.md (*fop_df_1_i387): Disable for TARGET_SSE_MATH.
17977         (*fop_df_1_i387): Disable for (TARGET_SSE2 && TARGET_SSE_MATH).
17978
17979 2005-01-03  Richard Henderson  <rth@redhat.com>
17980
17981         * fold-const.c (force_fit_type): Cope with types larger than 2 HWI.
17982         (fold_convert_const_int_from_int, fold_convert_const_int_from_real,
17983         fold_convert_const_real_from_real): Split out from ...
17984         (fold_convert_const): ... here.
17985
17986 2005-01-03  Richard Henderson  <rth@redhat.com>
17987
17988         PR target/19235
17989         * config/i386/i386.md (movdi_2): Separate SSE1 and SSE2 alternatives.
17990         (mov<MMXMODEI>_internal): Likewise.
17991         (movdf_nointeger): Prefer Y while not preferring, but allowing, x.
17992         Add V2SF case; use it for SSE1; don't use TI.
17993         (movdf_integer): Likewise.
17994         (mov<SSEMODEI>_internal, movti_internal): Force V4SF for SSE1.
17995
17996 2005-01-03  Ira Rosen  <irar@il.ibm.com>
17997
17998         * tree-vectorizer.c (vect_strip_conversions): New function.
17999         (vect_analyze_offset_expr): Call vect_strip_conversions. Add
18000         check for binary class.
18001
18002 2005-01-03  Daniel Berlin  <dberlin@dberlin.org>
18003
18004         Fix PR debug/17924
18005         Fix PR debug/19191
18006         * dwarf2out.c (block_ultimate_origin): Follow decl origin if origin
18007         is a decl.
18008         * gimple-low.c (mark_blocks_with_used_vars): New function.
18009         (mark_blocks_with_used_subblocks): Ditto.
18010         (mark_used_blocks): Ditto.
18011         (pass_mark_used_blocks): New pass.
18012         * tree-inline.c: Include debug.h.
18013         (expand_call_inline): Call outlining_inline_function here.
18014         * tree-optimize.c (init_tree_optimization_passes): Add
18015         pass_mark_used_blocks.
18016         * tree-pass.h (pass_mark_used_blocks): New.
18017         * Makefile.in (tree-inline.o): Add debug.h dependency.
18018
18019 2005-01-03  Geoffrey Keating  <geoffk@apple.com>
18020
18021         * config/darwin.c (darwin_handle_weak_import_attribute): Permit
18022         VAR_DECLs to have weak_import attribute.
18023
18024         * config/rs6000/darwin-fallback.c: Use 'ucontext_t' rather than
18025         'struct ucontext'.
18026
18027 2004-01-03  Steven Bosscher  <stevenb@suse.de>
18028
18029         * passes.c (rest_of_compilation): Don't run regmove if only
18030         flag_expensive_optimizations, require flag_regmove instead.
18031
18032 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
18033
18034         * config/sparc/litecoff.h (TARGET_OS_CPP_BUILTINS): Do not
18035         register "sparc".
18036         * config/sparc/sysv4-only.h (TARGET_OS_CPP_BUILTINS): Likewise.
18037         * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
18038         * config/sparc/sol2-64.h (TARGET_SUB_OS_CPP_BUILTINS): Delete.
18039         * config/sparc/sp64-elf.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
18040
18041 2005-01-03  Richard Henderson  <rth@redhat.com>
18042
18043         * config/ia64/ia64.c (TARGET_VECTOR_MODE_SUPPORTED_P): New.
18044         (ia64_const_ok_for_letter_p): New.
18045         (ia64_const_double_ok_for_letter_p): New.
18046         (ia64_extra_constraint): New.
18047         (ia64_expand_vecint_compare): New.
18048         (ia64_expand_vcondu_v2si): New.
18049         (ia64_expand_vecint_cmov): New.
18050         (ia64_expand_vecint_minmax): New.
18051         (ia64_print_operand): Add 'v'.
18052         (ia64_preferred_reload_class): New.
18053         (ia64_vector_mode_supported_p): New.
18054         * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): New.
18055         (PREFERRED_RELOAD_CLASS): Move to function.
18056         (CONST_OK_FOR_LETTER_P): Move to function.
18057         (CONST_DOUBLE_OK_FOR_LETTER_P): Move to function.
18058         (CONSTRAINT_OK_FOR_Q, CONSTRAINT_OK_FOR_R): Remove.
18059         (CONSTRAINT_OK_FOR_S, CONSTRAINT_OK_FOR_T): Remove.
18060         (EXTRA_CONSTRAINT): Move to function.
18061         * config/ia64/ia64.md: Include vect.md.
18062         (itanium_class): Add mmalua.
18063         (type): Handle it.
18064         * config/ia64/itanium1.md (1_mmalua): New.  Add it to bypasses.
18065         (1b_mmalua): New.
18066         * config/ia64/itanium2.md (2_mmalua, 2b_mmalua): Similarly.
18067         * config/ia64/predicates.md (gr_reg_or_0_operand): Accept any
18068         CONST0_RTX.
18069         (const_int_2bit_operand): New.
18070         (fr_reg_or_0_operand): New.
18071         * config/ia64/ia64-modes.def: Add vector modes.
18072         * config/ia64/ia64-protos.h: Update.
18073         * config/ia64/vect.md: New file.
18074
18075 2005-01-03  Richard Henderson  <rth@redhat.com>
18076
18077         * simplify-rtx.c (simplify_binary_operation): Handle VEC_CONCAT.
18078
18079 2005-01-03  Uros Bizjak  <uros@kss-loka.si>
18080
18081         PR target/19236
18082         * config/i386/i386.c (log1psf2): Change mode of operands[0,1]
18083         to SFmode.
18084         (log1pdf2): Change mode of operands[0,1] to DFmode.
18085
18086 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
18087
18088         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Define to false.
18089         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Define to true.
18090         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
18091         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define to
18092         SPARC_RELAXED_ORDERING.
18093
18094 2005-01-03  Richard Henderson  <rth@redhat.com>
18095             Uros Bizjak  <uros@kss-loka.si>
18096
18097         PR target/14631
18098         * config/i386/i386.c (ix86_expand_builtin): [IX86_BUILTIN_PINSRW,
18099         IX86_BUILTIN_PINSRW128]: Fix wrong selector range in error message.
18100         * config/i386/i386.md (mmx_pinsrw, sse2_pinsrw): Fix selector
18101         handling.
18102         (*mmx_pinsrw, *sse2_pinsrw): New patterns.
18103         * config/i386/i386/predicates.md (const_pow2_1_to_8_operand,
18104         const_pow2_1_to_128_operand): New predicates.
18105
18106 2005-01-02  Greg McGary  <greg@mcgary.org>
18107
18108         * tree-mudflap.c (mf_varname_tree): decl_printable_name handles
18109         anonymous decls.
18110         (mf_xform_derefs_1) [RESULT_DECL, STRING_CST]: Handle as innermost
18111         object.  [ptr_type]: Remove unused variable.
18112         Remember nearest addressable array-element or record-component
18113         when checking bitfield components.  Tolerate empty BIND_EXPR.
18114
18115 2005-01-01  Richard Henderson  <rth@redhat.com>
18116
18117         * tree-vectorizer.c (vect_analyze_offset_expr): Strip conversions
18118         that don't narrow the value.  Fail for other conversions.
18119
18120 2005-01-01  Richard Henderson  <rth@redhat.com>
18121
18122         PR c/19031
18123         * c-decl.c (pop_file_scope): Call maybe_apply_pending_pragma_weaks.
18124         * c-lang.c (finish_file): Don't do it here.
18125         * objc/objc-act.c (objc_finish_file): Likewise.
18126
18127         * cgraph.c (decl_assembler_name_equal): New.
18128         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): New.
18129         (cgraph_varpool_node): Actually link up cgraph_varpool_nodes.
18130         * cgraph.h (struct cgraph_varpool_node): Add next.
18131         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): Declare.
18132         * varasm.c (assemble_alias): Mark the target as needed.
18133
18134 2005-01-01  Andrew Pinski  <pinskia@physics.uc.edu>
18135
18136         PR middle-end/19221
18137         * function.c (get_arg_pointer_save_area): Use entry_of_function
18138         instead of get_insns.
18139
18140 2005-01-01  Roger Sayle  <roger@eyesopen.com>
18141             Andrew Pinski  <pinskia@physics.uc.edu>
18142             James E. Wilson  <wilson@specifixinc.com>
18143
18144         PR rtl-optimization/12092
18145         * loop.c (emit_prefetch_instructions): Do nothing if PREFETCH_BLOCK
18146         is zero.
18147
18148 2005-01-01  Roger Sayle  <roger@eyesopen.com>
18149             Olivier Hainque  <hainque@act-europe.fr>
18150
18151         * tree.c (int_fits_type_p): A narrower type always fits in a
18152         wider one, except for negative values into unsigned types.
18153
18154 2005-01-01  Roger Sayle  <roger@eyesopen.com>
18155
18156         * tree.c (int_fits_type_p): Compare the result of force_fit_type
18157         with the original constant rather than require TREE_OVERFLOW.
18158
18159 2005-01-01  Steven Bosscher  <stevenb@suse.de>
18160
18161         PR middle-end/17544
18162         * c-decl.c (finish_function): If compiling C99, annotate the
18163         compiler generated return with the current file name and line 0.
18164         * tree-cfg.c (remove_useless_stmts_warn_notreached): Only warn if
18165         the source line is greater than 0.
18166         (remove_bb): Likewise.