OSDN Git Service

1b03546adec6669addd73382a37792862a4341a3
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-05-24  Paolo Carlini  <pcarlini@suse.de>
2
3         * config/ia64/ia64intrin.h: Define nothing for C++:
4         overloaded builtins have been ported to C++.
5
6 2005-05-24  Jeff Law  <law@redhat.com>
7
8         * tree-nested.c (build_addr): New "context" argument.  Temporarily
9         set current_function_decl around the call to build the ADDR_EXPR.
10         (get_static_chain): Pass proper context to build_addr.
11         (convert_nl_goto_reference): Likewise.
12         (convert_tramp_reference): Likewise.
13         (final_nesting_tree_1): Likewise.
14         * tree-profile.c (tree_gen_interval_profiler): Likewise.
15         (tree_gen_pow2_profiler): Likewise.
16         (tree_gen_one_value_profiler): Likewise.
17         * tree-ssa-loop-ivopts.c (build_addr_strip_iref): Likewise.
18         * tree.h (build_addr): Update prototype.
19
20 2005-05-24  Kazu Hirata  <kazu@cs.umass.edu>
21
22         * tree-flow.h (bb_ann_d): Remove has_escape_site.
23         * tree-ssa-alias.c (compute_points_to_addr_escape): Don't
24         write to has_escape_site.
25
26 2005-05-24  Jeff Law  <law@redhat.com>
27
28         * Makefile.in (tree-cfg.o): Depend on tree-ssa-propagate.h.
29         * tree-cfg.c: Include tree-ssa-propagate.h.
30         (replace_uses_by): Call recompute_tree_invarant_for_addr_expr as
31         needed.
32
33 2005-05-24  Nick Clifton  <nickc@redhat.com>
34
35         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
36         __NO_FPRS__ when 'f' class registers will not be available. 
37
38 2005-05-24  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
39
40         * config/m32r/m32r.c (m32r_expand_block_move):  Return 0 if
41         nothing was done.
42         * config/m32r/m32r.md (movmemsi):  If m32r_expand_block_move did
43         nothing then FAIL.
44         * config/m32r/m32r/m32r-protos.h  (m32r_expand_block_move): Update
45         prototype.
46
47 2005-05-23  Jeff Law  <law@redhat.com>
48
49         * tree-ssa-dom.c (cprop_into_stmt): Do not call
50         recompute_tree_invariant_for_addr_expr here.
51         (optimize_stmt): Call it here instead and do so if anything
52         at all has changed in the statement and the RHS is an ADDR_EXPR.
53         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): If
54         needed, call recompute_tree_invariant_for_addr_expr.
55         * tree-ssa-propagate.c (substitute_and_fold): Call
56         recompute_tree_invariant_for_addr_expr as needed.
57
58 2005-05-23  Andreas Krebbel  <krebbel1@de.ibm.com>
59
60         * config/s390/s390.c (s390_optimize_prologue): Don't replace an insn
61         saving less registers than the replacement.
62
63 2005-05-23  Jan Hubicka  <jh@suse.cz>
64
65         * tree-flow.h (stmt_ann_d): Kill GTY ((skip)) mark on BB.
66
67 2005-05-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
68
69         * config/sparc/sparc-protos.h (sparc_expand_move): New prototype.
70         * config/sparc/sparc.c (sparc_expand_move): New function.
71         (sparc_emit_set_const64): Rewrite assert condition on entry.
72         (legitimate_constant_p) <CONST_VECTOR>: New case.
73         (legitimize_pic_address): Use TARGET_ARCH64 to select the mode.
74         * config/sparc/sparc.md (movqi, movhi, movsi, movdi, movV32,
75         movV64, movtf): Use nonimmediate_operand for the first operand.
76         Rewrite.  Only invoke sparc_expand_move.
77         * config/sparc/predicates.md (input_operand): Reorder tests.
78
79 2005-05-23  Jan Beulich  <jbeulich@novell.com>
80
81         * gthr-posix.h (__gthread_recursive_mutex_init_function): Add
82         missing return statement.
83
84 2005-05-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
85
86         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Use
87         emit_move_insn for moves to TFmode stack slots.
88
89 2005-05-21  Richard Guenther  <rguenth@gcc.gnu.org>
90
91         * tree-stdarg.c (execute_optimize_stdarg): Handle references
92         to va_list of the form &va[0].
93
94 2005-05-20  Jan Hubicka  <jh@suse.cz>
95
96         * Makefile.in (insn-emit.o): Add basic-block.h dependency.
97         * genemit.c (main): Make insn-emit to include basic-block.h too.
98
99 2005-05-20  Jan Hubicka  <jh@suse.cz>
100
101         * cgraphunit.c (cgraph_expand_function): Force function being lowered.
102
103 2005-05-19  Richard Henderson  <rth@redhat.com>
104
105         * config/alpha/alpha.c (emit_unlikely_jump, emit_load_locked,
106         emit_store_conditional): Split out from ...
107         (alpha_split_atomic_op): ... here.
108         (alpha_split_compare_and_swap): New; extract from .md file.
109         (alpha_split_lock_test_and_set): Likewise.
110         * config/alpha/alpha-protos.h: Update.
111         * config/alpha/sync.md (sync_compare_and_swap<I48MODE>): Move
112         split code into alpha.c.
113         (sync_lock_test_and_set<I48MODE>): Likewise.
114
115 2005-05-19  Richard Henderson  <rth@redhat.com>
116
117         * unwind.h, unwind-pe.h: Revert gcc_unreachable change of 05-17.
118
119 2005-05-19  Richard Henderson  <rth@redhat.com>
120
121         * config/i386/sse.md (mulv4si3): Use all register inputs.
122         (mulv2di3): Likewise.
123
124 2005-05-19  Richard Guenther  <rguenth@gcc.gnu.org>
125
126         * tree-ssa-loop-ivopts.c (determine_base_object): Use
127         build_fold_addr_expr to generate trees of correct type.
128         Use fold_buildN if possible.
129
130 2005-05-19  Jan Hubicka  <jh@suse.cz>
131
132         * basic-block.h (REG_BR_PROB_BASE): Define.
133         * cgraph.c (cgraph_create_edge): Initialize loop_nest and count.
134         (dump_cgraph_node): Dump count.
135         (cgraph_clone_edge): Rescale counts.
136         (cgraph_clone_node): Likewise.
137         * cgraph.h: Include basic-block.h
138         (cgraph_node): Add count.
139         (cgraph_edge): Add count and loop_nest.
140         (cgraph_node, cgraph_edge, cgraph_clone_edge, cgraph_clone_node):
141         Update prototypes.
142         * cgraphunit.c: Kill now redundant inlining comment.
143         (cgraph_create_edges): Make static, maintain current basic block;
144         fix pasto.
145         (record_call_1): Fill in new fields.
146         * ipa-inline.c (cgraph_clone_inlined_nodes): Update call of
147         cgraph_clone_node.
148         (cgraph_decide_recursive_inlining): Likewise.
149         * rtl.h (REG_BR_PROB_BASE): Kill.
150         * tree-inline.c (copy_body_r): Update call of cgraph_clone_edge.
151         (expand_call_inline): Update call of cgraph_create_edge.
152         * tree-optimize.c (tree_rest_of_compilation): Likewise.
153
154 2005-05-19  Nick Clifton  <nickc@redhat.com>
155
156         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use the
157         new rs6000_explicit_options structure.
158
159 2005-05-19  Richard Henderson  <rth@redhat.com>
160
161         PR target/21390
162         * config/alpha/alpha.c (alpha_emit_conditional_branch): Move 
163         TFmode code swapping ...
164         (alpha_emit_xfloating_compare): ... here.
165         (alpha_emit_setcc): Update to match.
166         (alpha_lookup_xfloating_lib_func): Assert TARGET_HAS_XFLOATING_LIBS.
167
168 2005-05-19  Richard Henderson  <rth@redhat.com>
169
170         PR target/21657
171         * config/ia64/ia64.c (ia64_expand_tls_address): Remove extra
172         memory indirection in local-dynamic case.
173
174 2005-05-18  Jie Zhang  <jie.zhang@analog.com>
175             Bernd Schmidt  <bernd.schmidt@analog.com>
176
177         * config/bfin/bfin.c (branch_dest): Add comment why it's
178         necessary.
179         * config/bfin/bfin.md (attr "length" default): Change the offset of
180         forward conditional branch of length 4 from 4096 to 4092.
181
182 2005-05-19  Jan Beulich  <jbeulich@novell.com>
183
184         * unwind-compat.c: Include tconfig.h and tsystem.h.
185         * unwind-dw2-fde-compat.c: Likewise.
186
187 2005-05-18  Richard Henderson  <rth@redhat.com>
188
189         PR 21541
190         * ifcvt.c (noce_process_if_block): Avoid conversion when the
191         memory destination is readonly.
192
193 2005-05-18  Richard Henderson  <rth@redhat.com>
194
195         PR 21541
196         * tree-ssa-operands.c (opf_non_specific): New.
197         (get_asm_expr_operands): Set it.
198         (add_call_clobber_ops, add_call_read_ops): Likewise.
199         (add_stmt_operand): Test it instead of opf_kill_def when
200         considering unmodifiable variables.
201
202         * tree-ssa-operands.c (get_expr_operands): Fix exact test.
203
204 2005-05-19  Kazu Hirata  <kazu@cs.umass.edu>
205
206         * cfgexpand.c, tree-cfg.c, tree-inline.c, tree-optimize.c,
207         tree-ssa-forwprop.c: Fix comment typos.
208         * doc/invoke.texi: Fix a typo.
209
210 2005-05-18  Richard Henderson  <rth@redhat.com>
211
212         * config.gcc (powerpc-*-linux*): Include linux64.opt when
213         including linux64.h.
214
215 2005-05-18  Richard Henderson  <rth@redhat.com>
216
217         * tree-cfg.c (pass_remove_useless): Revert last change.
218         * tree-optimize.c (init_tree_optimization_passes): Initialize
219         all_lowering_passes with PROP_gimple_any.
220
221 2005-05-18  Devang Patel  <dpatel@apple.com>
222
223         * config/rs6000/rs6000.md (insvsi_internal1): Subtract shift from
224         the mask end.
225         
226 2005-05-18  Richard Henderson  <rth@redhat.com>
227
228         * tree-ssa-forwprop.c (cfg_changed): New.
229         (tidy_after_forward_propagate_addr): New.
230         (forward_propagate_addr_expr): Use it, and fold_stmt_inplace.
231         (forward_propagate_addr_into_variable_array_index): Likewise.
232         (tree_ssa_forward_propagate_single_use_vars): Cleanup cfg if
233         edges were removed.
234
235 2005-05-18  Geoffrey Keating  <geoffk@apple.com>
236
237         * dummy-checksum.c: New.
238         * genchecksum.c: New.
239         * c.opt (print_pch_checksum): New flag.
240         * c-pch.c (struct c_pch_validity): Make much shorter.
241         (no_checksum): New.
242         (host_machine): Remove.
243         (target_machine): Remove.
244         (get_ident): Change PCH version number.
245         (pch_init): When -fverbose-asm, print out the compiler fingerprint.
246         Don't put triplets or version string in PCH validity data.
247         Do put the compiler checksum in the validity data.
248         (c_common_valid_pch): Don't check triplets or version string.  Do
249         check checksum.
250         (c_common_print_pch_checksum): New.
251         * c-opts.c (c_common_handle_option): Add OPT_print_pch_checksum.
252         Print fingerprint with -v.
253         * c-common.h (c_common_print_pch_checksum): New.
254         (executable_checksum): New.
255         * Makefile.in (STAGEMOVESTUFF): Add cc1*-dummy, *-checksum.c.
256         (cc1-dummy): New rule.
257         (cc1-checksum.c): New rule.
258         (cc1-checksum.o): New rule.
259         (cc1): Add checksum support.
260         (build/genchecksum): New.
261         (build/genchecksum.o): New.
262         (dummy-checksum.o): New.
263         (genobjnames): Add genchecksum.o.
264         (mostlyclean): Remove *-checksum.c.
265         (gnucompare): Add libgcc to list of directories checked.
266         Make comparison problems in libgcc/ and with checksum files only
267         be warnings.
268         * doc/invoke.texi (Precompiled Headers): Remove caution.
269         Document that it must be the exact same binary.  Add a few
270         known-safe flags to the list.
271
272         * rs6000/predicates.md (fix_trunc_dest_operand): New.
273         * rs6000/rs6000.md (fix_truncdfsi2): Use fix_trunc_dest_operand.
274         Check that a memory operand is valid before trying to use it.
275         
276         * tree-cfg.c (pass_remove_useless): This pass works on trees.
277
278 2005-05-18  Richard Guenther  <rguenth@gcc.gnu.org>
279
280         * tree.c (build1_stat): Don't try to handle two-operand
281         tree codes.
282
283 2005-05-18  Richard Sandiford  <rsandifo@redhat.com>
284
285         * config.gcc (sh*-*-*): Define SUPPORT_* macros to 1.
286         * config/sh/sh.h: Update mask names throughout.
287         (target_flags, ISIZE_BIT, DALIGN_BIT, SH1_BIT, SH2_BIT, SH3_BIT)
288         (SH_E_BIT, HARD_SH4_BIT, FPU_SINGLE_BIT, SH4_BIT, SH4A_BIT, FMOVD_BIT)
289         (SH5_BIT, SPACE_BIT, BIGTABLE_BIT, RELAX_BIT, USERMODE_BIT)
290         (HITACHI_BIT, NOMACSAVE_BIT, PREFERGOT_BIT, PADSTRUCT_BIT)
291         (LITTLE_ENDIAN_BIT, IEEE_BIT, SAVE_ALL_TR_BIT, HARD_SH2A_BIT)
292         (HARD_SH2A_DOUBLE_BIT, INDEXED_ADDRESS_BIT, PT_FIXED_BIT)
293         (INVALID_SYMBOLS_BIT, ADJUST_UNROLL_BIT, TARGET_DUMPISIZE)
294         (TARGET_ALIGN_DOUBLE, TARGET_SH1, TARGET_SH2, TARGET_SH3)
295         (TARGET_HARD_SH4, TARGET_FPU_SINGLE, TARGET_SH5, TARGET_FMOVD)
296         (TARGET_IEEE, TARGET_SMALLCODE, TARGET_BIGTABLE, TARGET_RELAX)
297         (TARGET_HITACHI, TARGET_NOMACSAVE, TARGET_PADSTRUCT)
298         (TARGET_LITTLE_ENDIAN, TARGET_USERMODE, TARGET_PREFERGOT)
299         (TARGET_SAVE_ALL_TARGET_REGS, TARGET_ALLOW_INDEXED_ADDRESS)
300         (TARGET_PT_FIXED, TARGET_INVALID_SYMBOLS, TARGET_ADJUST_UNROLL)
301         (TARGET_SWITCH_SH1, TARGET_SWITCH_SH2, TARGET_SWITCH_SH2E)
302         (TARGET_SWITCH_SH2A, TARGET_SWITCH_SH2A_SINGLE_ONLY)
303         (TARGET_SWITCH_SH2A_SINGLE, TARGET_SWITCH_SH2A_NOFPU)
304         (TARGET_SWITCH_SH3, TARGET_SWITCH_SH3E, TARGET_SWITCH_SH4_SINGLE_ONLY)
305         (TARGET_SWITCH_SH4_SINGLE, TARGET_SWITCH_SH4_NOFPU, TARGET_SWITCH_SH4)
306         (TARGET_SWITCH_SH4A, TARGET_SWITCH_SH4A_SINGLE_ONLY)
307         (TARGET_SWITCH_SH4A_SINGLE, TARGET_SWITCH_SH4A_NOFPU)
308         (TARGET_SWITCH_SH4AL, TARGET_SWITCH_SH5_64MEDIA)
309         (TARGET_SWITCH_SH5_64MEDIA_NOFPU, TARGET_SWITCHES_SH5_32MEDIA)
310         (TARGET_SWITCHES_SH5_32MEDIA_NOFPU, TARGET_SWITCH_SH5_32_ANY_EXTRA)
311         (TARGET_SWITCH_SH5_MEDIA_ANY_EXTRA, TARGET_SWITCHES)
312         (SUBTARGET_SWITCHES): Delete.
313         (TARGET_SH2E, TARGET_SH2A, TARGET_SH2A_SINGLE, TARGET_SH2A_DOUBLE)
314         (TARGET_SH3E, TARGET_CACHE32, TARGET_SUPERSCALAR, TARGET_HARVARD)
315         (TARGET_FPU_DOUBLE, TARGET_SH4A_ARCH, TARGET_SHMEDIA32)
316         (TARGET_SHMEDIA64): Redefine using other TARGET_* macros.
317         (TARGET_SH4): Undefine options.h definition and check MASK_SH1 as well.
318         (SUPPORT_SH1, SUPPORT_SH2E, SUPPORT_SH4, SUPPORT_SH4_SINGLE)
319         (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Make numeric.
320         (SUPPORT_SH2): Define to 1 if SUPPORT_SH1.
321         (SUPPORT_SH3): Likewise SUPPORT_SH2.
322         (SUPPORT_SH4_NOFPU): Likewise SUPPORT_SH3.
323         (SUPPORT_SH4A_NOFPU, SUPPORT_SH4AL, SUPPORT_SH2A_NOFPU): Likewise
324         SUPPORT_SH4_NOFPU.
325         (SUPPORT_SH3E): Likewise SUPPORT_SH2E.
326         (SUPPORT_SH4_SINGLE_ONLY, SUPPORT_SH4A_SINGLE_ONLY)
327         (SUPPORT_SH2A_SINGLE_ONLY): Likewise SUPPORT_SH3E.
328         (SUPPORT_SH4A): Likewise SUPPORT_SH4.
329         (SUPPORT_SH4A_SINGLE): Likewise SUPPORT_SH4_SINGLE.
330         (SUPPORT_SH5_32MEDIA): Likewise SUPPORT_SH5_COMPACT.
331         (SUPPORT_SH5_32MEDIA_NOFPU): Likewise SUPPORT_SH5_COMPACT_NOFPU.
332         (SUPPORT_ANY_SH5_32MEDIA, SUPPORT_ANY_SH5_64MEDIA)
333         (SUPPORT_ANY_SH5): New macros.
334         (TARGET_NONE): Replace with...
335         (MASK_ARCH): ...this new macro.
336         * config/sh/elf.h: Update mask names
337         * config/sh/linux.h: Likewise.
338         * config/sh/little.h: Likewise.
339         * config/sh/netbsd-elf.h: Likewise.
340         * config/sh/symbian-pre.h: Likewise.
341         * config/sh/sh.c (sh_handle_option): New function.
342         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
343         (calc_live_regs): Use MASK_FPU_SINGLE instead of FPU_SINGLE_BIT.
344         (sh_target_switches, target_switches): Delete.
345         (sh_pch_valid_p): Check for specific differences in the target_flags
346         settings.
347         (sh_init_cumulative_args): Use MASK_HITACHI instead of HITACHI_BIT.
348         * config/sh/sh.opt: New file.
349
350 2005-05-18  Richard Henderson  <rth@redhat.com>
351
352         PR target/21632
353         * config/ia64/ia64.c (ia64_extra_constraint) <'T'>: Use
354         small_addr_symbolic_operand.
355
356 2005-05-18  Jeff Law  <law@redhat.com>
357
358         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Do not
359         propagate an ADDR_EXPR if the definition and use sites are
360         in different EH regions.
361
362 2005-05-18  Ian Lance Taylor  <ian@airs.com>
363
364         * read-rtl.c (mode_attr_index): Use obstack_grow0, not
365         obstack_grow.
366
367 2005-05-18  Daniel Berlin  <dberlin@dberlin.org>
368
369         * cfgrtl.c (purge_dead_edges): Don't remove fake edges.
370
371 2005-05-18  Daniel Berlin  <dberlin@dberlin.org>
372         
373         Fix PR tree-optimization/21407
374
375         * tree-ssa-operands.c (note_addressable): Change
376         COMPONENT_REF handling in response to aliasing
377         discussion.
378
379 2005-05-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
380
381         * config/sparc/sol2.h (TARGET_DEFAULT): Add back MASK_APP_REGS.
382         * config/sparc/sol2-64.h (TARGET_DEFAULT): Likewise.
383         * config/sparc/sp-elf.h (TARGET_DEFAULT): Delete.
384         * doc/invoke.texi (SPARC options): Document that -mapp-regs is
385         the default on Solaris too.
386
387 2005-05-17  Daniel Berlin  <dberlin@dberlin.org>
388
389         * tree-ssa-pre.c (find_or_generate_expression): CALL_EXPR
390         is okay too.
391
392 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
393
394         * timevar.def (TV_SCEV_CONST): New timevar.
395         * tree-optimize.c (init_tree_optimization_passes): Add
396         pass_scev_cprop.
397         * tree-pass.h (pass_scev_cprop): Declare.
398         * tree-scalar-evolution.c (scev_const_prop): New function.
399         * tree-scalar-evolution.h (scev_const_prop): Declare.
400         * tree-ssa-loop.c (gate_scev_const_prop, pass_scev_cprop):
401         New.
402         * tree-cfg.c (replace_uses_by): Export.
403         * tree-flow.h (replace_uses_by): Declare.
404
405 2005-05-17  Ziemowit Laski  <zlaski@apple.com>
406             Mike Stump  <mrs@apple.com>
407
408         Yet more Objective-C++...
409
410         * c-common.h (objc_finish_try_stmt): Add.
411         (objc_build_synchronized): Add.
412         (objc_generate_write_barrier): Add.
413         * stub-objc.c (objc_build_synchronized): Add return value.
414         (objc_finish_try_stmt): Likewise.
415         (objc_generate_write_barrier): Add.
416
417         * c-common.h (objc_rewrite_function_call): Add.
418         * c-typeck.c (build_function_call): Allow objc to rewrite
419         FUNCTION_DECLs.
420         (build_modify_expr): Allow objc to generate write barriers.
421         * c.opt (Wassign-intercept): Add.
422         (Wstrict-selector-match): Add.
423         (fobjc-call-cxx-cdtors): Add.
424         (fobjc-direct-dispatch): Add.
425         (fobjc-gc): Add.
426         * dbxout.c (get_lang_number): Add Objective-C++ support.
427         * doc/invoke.texi (-fobjc-call-cxx-cdtors): Likewise.
428         (-Wstrict-selector-match): Likewise.
429         (-fobjc-direct-dispatch): Likewise.
430         (-Wassign-intercept): Likewise.
431         (Overall Options): Likewise.
432         * gengtype.c (get_output_file_with_visibility): Likewise.
433         * stub-objc.c (objc_rewrite_function_call): Add.
434         * config/darwin.h (ASM_OUTPUT_LABELREF): Improved quoting support.
435
436         * c-common.c (flag_objc_exceptions): Remove.
437         (flag_objc_sjlj_exceptions): Remove.
438         * c-decl.c (objc_mark_locals_volatile): Don't change decls
439         that are already ok.
440         * c-opts.c (c_common_handle_option, case
441         OPT_fobjc_exceptions): Remove.
442         (case OPT_fobjc_sjlj_exceptions): Remove
443         * c.opt (fobjc-call-cxx-cdtors): Have opt create the flag.
444         (fobjc-exceptions): Likewise.
445         (fobjc-sjlj-exceptions): Likewise.
446         * config/rs6000/darwin.h (OFFS_MSGSEND_FAST): Add.
447         (OFFS_ASSIGNIVAR_FAST): Add.
448         
449 2005-05-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
450
451         * config/sparc/sparc.md (movhi): Do not test constness
452         of operand #1 twice.
453         (movsi): Likewise.
454         (movdi): Unconditionally accept zero as second operand
455         when the first is memory.
456         (movdi_insn_sp32): Handle above case.
457         (DImode splitter): Use predicates.
458         (DImode splitter): Use const_zero_operand predicate.
459         (movsf_insn): Swap 2 alternatives.
460
461 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
462
463         * tree-ssa-loop-ivopts.c (find_bivs, find_givs_in_stmt_scev): Apply
464         expand_simple_operations to bases of the ivs.
465         (tree_int_cst_sign_bit): Export.
466         * tree-flow.h (expand_simple_operations): Declare.
467         * tree-ssa-loop-niter.c (number_of_iterations_cond): Use
468         tree_int_cst_sign_bit.
469         (expand_simple_operations): Export.
470         * tree.h (tree_int_cst_sign_bit): Declare.
471
472 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
473
474         * tree-cfg.c (tree_can_merge_blocks_p): Allow phi nodes in the
475         merged block.
476         (replace_uses_by): New function.
477         (tree_merge_blocks): Eliminate the phi nodes in the merged block.
478         * tree-flow.h (fold_stmt_inplace): Declare.
479         * tree-ssa-ccp.c (fold_stmt_inplace): New function.
480         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Update dominance
481         info after cfg cleanup.
482
483 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
484
485         * cfgloop.h (just_once_each_iteration_p): Declaration changed.
486         * cfgloopanal.c (just_once_each_iteration_p): Make the loop argument
487         const.
488
489 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
490
491         * ggc-page.c (ggc_alloc_stat): Record amount of memory allocated.
492         * ggc-zone.c (ggc_alloc_zone_1): Ditto.
493         * timevar.c (timevar_ggc_mem_total): New variable.
494         (GGC_MEM_BOUND): New constant.
495         (get_time): Record ggc memory status.
496         (timevar_accumulate): Accumulate amount of ggc memory.
497         (timevar_print): Print consumption of ggc memory.
498         * timevar.def (TV_FIND_REFERENCED_VARS, TV_TREE_REDPHI,
499         TV_TREE_LOOP_BOUNDS, TV_TREE_LOOP_IVCANON, TV_TREE_VECTORIZATION,
500         TV_TREE_LINEAR_TRANSFORM): Shorten strings to fit in 22 characters.
501         * timevar.h (struct timevar_time_def): Add ggc_mem field.
502         (timevar_ggc_mem_total): Declare.
503
504 2005-05-17  Kazu Hirata  <kazu@cs.umass.edu>
505
506         * tree-into-ssa.c (update_ssa): Clean up by shortening the
507         live range of DFS.
508
509 2005-05-17  Hans-Peter Nilsson  <hp@axis.com>
510
511         * config/cris/cris.md (ncond, ocode, rcond): Remove separate
512         define_code_attr.
513         ("b<ncond:code>", "b<ocond:code>", "b<rcond:code>")
514         ("*b<ncond:code>_reversed", "*b<ocond:code>_reversed")
515         ("*b<rcond:code>_reversed", "s<ncond:code>", "s<rcond:code>")
516         ("s<ocond:code>"): Rename from respectively "b<ncond>",
517         "b<ocond>", "b<rcond>", ("*b<ncond>_reversed",
518         "*b<ocond>_reversed", "*b<rcond>_reversed", "s<ncond>",
519         "s<rcond>" and "s<ocond>".
520         ("b<ocond:code>", "*b<ocond:code>_reversed")
521         ("*b<rcond:code>_reversed"): Remove extraneous backslashes in
522         output statement section.
523
524 2005-05-17  Roger Sayle  <roger@eyesopen.com>
525
526         * c-typeck.c (common_type): Also handle BOOLEAN_TYPEs.
527
528 2005-05-17  Steven Bosscher  <stevenb@suse.de>
529             Stuart Hastings <stuart@apple.com>
530             Jan Hubicka  <jh@suse.cz>
531             Dale Johannesen  <dalej@apple.com>
532
533         * cgraph.h (cgraph_node): Add 'lowered' state.
534         (cgraph_lower_function): Declare.
535         * cgraphunit.c (cgraph_finalize_function): Initialize lowered flag.
536         (cgraph_lower_function): New function.
537         (cgraph_create_edges): Deal with lowered function bodies.
538         (verify_cgraph_node): Likewise.
539         (cgraph_analyze_function): Do lowering job.
540         (cgraph_build_static_cdtor): Likewise.
541         * function.h (struct function): Add saved_eh and saved_cfg.
542         * integrate.c (copy_decl_for_inlining): Kill LABEL_DECL_UID field.
543         * tree-cfg.c (fold_cond_expr_cond): Export.
544         * tree-flow.h (fold_cond_expr_cond): Declare.
545         * tree-inline.c: Include basic-block, ggc, tree-flow, except.h and
546         pointer-set.
547         (struct_inline_data): Kill fnd, first_inlined_fn, ret_label,
548         in_target_cleanup_p, tree_pruner, tsi; add callee, caller and
549         callee_cfun, block, eh_region, eh_region_offset.
550         (inlining_p): New predicate.
551         (remap_decl): Update for new inline_data; declare newly created inline
552         vars in low gimple way.
553         (copy_body_r): Update for new datastructure, simplify some of handling
554         when we are in gimple; remap LABEL_DECLs for EH; copy TREE_BLOCK;
555         deal with RESX_EXPRs.
556         (copy_bb): New.
557         (copy_edges_for_bb): Likewise.
558         (remap_decl_1): New.
559         (copy_cfg_body): New.
560         (copy_generic_body): Rewrite to work on low gimple.
561         (copy_body): Turn into simple wrapper around copy_cfg_body.
562         (setup_one_parameter): Insert new statements into given basic block.
563         (initialize_initialized_parameters): Likewise, reorganize way things are
564         gimplified.
565         (declare_return_variable): Update for new inline data datastructure.
566         (inline_forbidden_p): Work on low gimple.
567         (estimate_num_insns): Likewise.
568         (expand_call_inline): Work on CFG.
569         (push_cfun, pop_cfun): New functions.
570         (cfun_stack): New stack.
571         (add_lexical_block): New function.
572         (gimple_expand_calls_inline): Work on basic block.
573         (optimize_inline_calls): Likewise.
574         (clone_body, save_body, unsave_ewpr_now): Update for new
575         datastructures.
576         (declare_inline_vars): Work on block instead of bind_expr.
577         (inlining_p): New predicate.
578         * tree-inline.h (push_cfun, pop_cfun): Declare.
579         * tree-optimize.c: Include except.h
580         (all_lowering_passes): New variable.
581         (execute_fixup_cfg, pass_fixup_cfg): New pass.
582         (init_tree_optimization_passes): Move some to all_lowering_passes.
583         (tree_lowering_passes): New function.
584         (tree_rest_of_compilation): Register cfg hooks; save/unsave eh.
585         * tree-pass.h (tree_lowering_passes): Declare
586
587 2005-05-17  Nathan Sidwell  <nathan@codesourcery.com>
588
589         * unwind-dw2-fde-darwin.c: Include tsystem.h.
590
591 2005-05-17  Jeff Law  <law@redhat.com>
592
593         * Makefile.in (tree-ssa-forwprop.o): Depend on langhooks.h.
594         * tree-ssa-forwprop.c: Include langhooks.h.
595         (forward_propagate_addr_expr_into_variable_array_index): New.
596         (forward_propagate_addr_expr): New.
597         (tree_ssa_forward_propagate_single_use_vars): Loop over all
598         the statements in the block instead of just the last statement.
599         Call forward_propagate_addr_expr as needed.
600         (pass_forwprop): Update the SSA graph after forward propagation is
601         complete.
602
603 2005-05-17  Nathan Sidwell  <nathan@codesourcery.com>
604
605         * unwind-dw2-fde-glibc.c (base_from_cb_data,
606         _Unwind_IteratePhdrCallback): Use gcc_assert and gcc_unreachable as
607         appropriate.
608         * unwind-dw2-fde.c (__deregister_frame_info_bases,
609         base_from_object, fde_split, end_fde_sort): Likewise.
610         * unwind-dw2.c (_Unwind_GetGR, _Unwind_SetGR, execute_stack_op, 
611         execute_cfa_program, _Unwind_SetSpColumn, uw_update_context_1,
612         uw_init_context_1): Likewise.
613         * unwind.inc (_Unwind_RaiseException_Phase2, _Unwind_Resume,
614         _Unwind_Resume_or_Rethrow): Likewise.
615         * unwind-pe.h (__gxx_abort): Do not define.
616         (size_of_encoded_value, base_of_encoded_value,
617         read_encoded_value_with_base): Use gcc_unreachable.
618         * unwind.h (_Unwind_GetTextRelBase): Likewise.
619
620 2005-05-17  Daniel Jacobowitz  <dan@codesourcery.com>
621
622         * config/arm/lib1funcs.asm (cfi_pop, cfi_push, cfi_start)
623         (cfi_end): New macros.
624         (RETLDM): Use cfi_pop.  Expect an eight byte stack frame.
625         (ARM_LDIV0, THUMB_LDIV0, DIV_FUNC_END): Use CFI macros.  Create
626         an eight byte stack frame.
627         (__NR_tkill): Define.
628         (__div0): Use gettid tkill on GNU/Linux.
629         (_arm_return): Add CFI.
630         (Lchange_\register, .Lchange_lr): Create an eight byte stack frame.
631
632 2005-05-17  Daniel Jacobowitz  <dan@codesourcery.com>
633
634         * configure.ac: Remove spaces around assignment to
635         gcc_cv_ld_sysroot.
636         * configure: Regenerated.
637
638 2005-05-17  David Edelsohn  <edelsohn@gnu.org>
639
640         * config/rs6000/aix.h (TARGET_ALTIVEC_VRSAVE): Delete.
641         * config/rs6000/rs6000.c (rs6000_explicit_options): Add
642         aix_struct_ret.
643         (rs6000_override_options): Do not protect TARGET_ALTIVEC_VRSAVE.
644         Modify aix_struct_return variable, not target_flags.
645         (rs6000_handle_option): Do not protect TARGET_ALTIVEC_VRSAVE.
646         (rs6000_return_in_memory): Test aix_struct_return.
647         * config/rs6000/rs6000.opt (maix-struct-return): Convert to
648         independent variable.  Report mxl-compat.
649
650 2005-05-17  Bernd Schmidt  <bernd.schmidt@analog.com>
651
652         * config/bfin/bfin.md (eh_return): Add missing DONE.
653
654 2005-05-17  Ian Lance Taylor  <ian@airs.com>
655
656         * read-rtl.c (struct macro_traverse_data): Add unknown_mode_attr
657         field.
658         (mode_attr_index): Remove check for defined attribute.  Remove
659         infile parameter.  Change all callers.
660         (apply_mode_maps): Add unknown parameter.  Change caller.  Always
661         return after finding attribute.
662         (apply_macro_to_rtx): Add unknown_mode_attr parameter.  Change
663         callers.
664         (apply_macro_traverse): Set mtd->unknown_mode_attr.
665         (read_rtx): Use mtd.unknown_mode_attr to check for an undefined
666         attribute used for a mode.
667
668 2005-05-17  Paolo Bonzini  <bonzini@gnu.org>
669
670         * tree-ssa-math-opts.c: New file.
671
672 2005-05-17  Paolo Bonzini  <bonzini@gnu.org>
673
674         * Makefile.in: Add tree-ssa-math-opts.c.
675         * expr.c (expand_expr_real_1) <case RDIV_EXPR>: Never emit as a*(1/b).
676         * fold-const.c (distribute_real_division): New.
677         (fold_binary) <case PLUS_EXPR, case MINUS_EXPR>: Use it.
678         * tree-pass.h (pass_cse_reciprocals): New.
679         * tree-optimize.c (init_tree_optimization_passes): Run it.
680         * doc/passes.texi: Document the new pass.
681
682 2005-05-17  Richard Guenther  <rguenth@gcc.gnu.org>
683
684         PR middle-end/21595
685         * builtins.c (fold_builtin_constant_p): Handle
686         &"string cst"[0] as constant.
687
688 2005-05-17  Richard Henderson  <rth@redhat.com>
689
690         * config/i386/sse.md (mulv16qi3, mulv2di3): New.
691
692 2005-05-17  Jakub Jelinek  <jakub@redhat.com>
693
694         PR middle-end/21492
695         * cfgcleanup.c (try_crossjump_to_edge): update_forwarder_flag for
696         src2 if src2 has been split.
697
698         PR tree-optimization/21610
699         * c-typeck.c (decl_constant_value_for_broken_optimization): If not
700         returning DECL, call unshare_expr.
701
702 2005-05-17  Hans-Peter Nilsson  <hp@axis.com>
703
704         * config/cris/cris.md: Unquote preparation and output statements.
705         (BWD, WD, BW): New, mode-macros.
706         (S, s, m, mm, nbitsm1): New, mode-attrs.
707         (szext, shift, shiftrt, ncond, ocond, rcond): New, code-macros.
708         (u, su, shlr, slr, ncond, ocond, rcond, rCC, oCC, roCC): New,
709         code-attrs.
710         ("tst<mode>"): Replace "tstqi", "tsthi" and "tstsi".
711         ("*cmp_ext<mode>"): Replace "*cmp_extsi" and "*cmp_exthi".
712         ("*cmp_swapext<mode>"): Replace "*cmp_swapextqi" and
713         "*cmp_swapexthi".
714         ("cmp<mode>"): Replace "cmphi" and "cmpqi".
715         ("movdi"): Move misplaced head comment regarding necessity of
716         movdi from movsi to here.
717         ("*mov_side<mode>_biap"): Replace "*mov_sideqi_biap" and
718         "*mov_sidehi_biap".
719         ("*mov_side<mode>"): Replace "*mov_sideqi" and "*mov_sidehi".
720         ("*mov_side<mode>_biap_mem", "*mov_sidehi_biap_mem"): Replace
721         "*mov_sideqi_biap_mem".
722         ("*mov_side<mode>_mem"): Replace "*mov_sideqi_mem" and
723         "*mov_sidehi_mem".
724         ("*clear_side<mode>_biap"): Replace "*clear_sidesi_biap",
725         "*clear_sidehi_biap" and "*clear_sideqi_biap".
726         ("*clear_side<mode>"): Replace "*clear_sidesi", "*clear_sidehi"
727         and "*clear_sideqi".
728         ("*ext_side<mode>si_biap"): Replace "*ext_sideqisi_biap" and
729         "*ext_sidehisi_biap".
730         ("*ext_side<mode>si"): Replace "*ext_sideqisi" and
731         "*ext_sidehisi".
732         ("reload_in<mode>"): Replace "reload_inhi" and "reload_inqi".
733         ("reload_out<mode>"): Replace "reload_outhi" and "reload_outqi".
734         ("extend<mode>di2"): Replace "extendhidi2" and "extendqidi2".
735         ("extend<mode>si2"): Replace "extendhisi2" and "extendqisi2".
736         ("zero_extend<mode>si2"): Replace "zero_extendhisi2" and
737         "zero_extendqisi2".
738         ("*op_side<mode>_biap"): Replace "*op_sideqi_biap",
739         "*op_sidehi_biap" and "*op_sidesi_biap".
740         ("*op_side<mode>"): Replace "*op_sideqi", "*op_sidehi" and
741         "*op_sidesi".
742         ("*op_swap_side<mode>_biap"): Replace "*op_swap_sideqi_biap",
743         "*op_swap_sidehi_biap" and "*op_swap_sidesi_biap".
744         ("*op_swap_side<mode>"): Replace "*op_swap_sideqi",
745         "*op_swap_sidehi" and "*op_swap_sidesi".
746         ("sub<mode>3"): Replace "subhi3" and "subqi3", correcting a typo
747         in the N alternative of "subqi3".
748         ("*extop<mode>si_side_biap"): Replace "*extopqisi_side_biap" and
749         "*extophisi_side_biap".
750         ("*extop<mode>si_side"): Replace "*extopqisi_side" and
751         "*extophisi_side".
752         ("*extop<mode>si_swap_side_biap"): Replace
753         "*extopqisi_swap_side_biap" and "*extophisi_swap_side_biap".
754         ("*extop<mode>si_swap_side"): Replace "*extopqisi_swap_side" and
755         "*extophisi_swap_side".
756         ("*extop<mode>si"): Replace "*extopqisi" and "*extophisi".
757         ("*extop<mode>si_swap"): Replace "*extopqisi_swap" and
758         "*extophisi_swap".
759         ("<u>mul<s><mode>3"): Replace "umulhisi3", "umulqihi3",
760         "mulqihi3", "mulhisi3" and "mulhisi3".
761         ("<u>mulsidi3"): Replace "mulsidi3" and "umulsidi3".
762         ("<su>mulsi3_highpart"): Replace "smulsi3_highpart" and
763         "umulsi3_highpart".
764         ("xor<mode>3"): Replace "xorhi3" and "xorqi3".
765         ("neg<mode>2"): Replace "negsi2", "neghi2" and "negqi2".
766         ("one_cmpl<mode>2"): Replace "one_cmplhi2" and "one_cmplqi2".
767         ("<shlr>si3"): Replace "ashrsi3", "lshrsi3" and "ashlsi3".
768         ("ashr<mode>3"): Replace "ashrhi3" and "ashrqi3".
769         ("*expanded_<shlr><mode>"): Replace "*expanded_ashrhi",
770         "*expanded_ashrqi", "*expanded_lshrhi" and "*expanded_lshrqi".
771         ("*<shlr><mode>_lowpart"): Replace "*ashrhi_lowpart",
772         "*ashrqi_lowpart", "*lshrhi_lowpart" and "*lshrqi_lowpart".
773         ("lshr<mode>3"): Replace "lshrhi3" and "lshrqi3".
774         ("ashl<mode>3"): Replace "ashlhi3" and "ashlqi3".
775         ("*ashl<mode>_lowpart"): Replace "*ashlqi_lowpart" and
776         "*ashlhi_lowpart".
777         ("abs<mode>2"): Replace "abshi2" and "absqi2".
778         ("b<ncond>"): Replace "beq", "bne", "bgtu", "bltu", "bgeu" and
779         "bleu".
780         ("b<ocond>"): Replace "bgt" and "ble".
781         ("b<rcond>"): Replace "blt" and "bge".
782         ("*b<ncond>_reversed"): Replace "*beq_reversed", "*bne_reversed",
783         "*bgtu_reversed", "*bltu_reversed", "*bgeu_reversed" and
784         "*bleu_reversed".
785         ("*b<ocond>_reversed"): Replace "*bgt_reversed" and
786         "*ble_reversed".
787         ("*b<rcond>_reversed"): Replace "*blt_reversed" and
788         "*blt_reversed".
789         ("s<ncond>"): Replace "sgeu", "sltu", "seq", "sgtu", "sleu" and
790         "sne".
791         ("s<rcond>"): Replace "sge" and "slt".
792         ("s<ocond>"): Replace "sgt" and "sle".
793         ("clear.[bwd] [rx=rx+rz.S2]"): Replace split clear.d
794         [rx=rx+rz.S2], clear.w [rx=rx+rz.S2] and clear.b [rx=rx+rz.S2].
795         ("clear.[bwd] [rx=rx+i]"): Replace splits clear.d [rx=rx+i],
796         clear.w [rx=rx+i] and clear.b [rx=rx+i].
797
798 2005-05-17  Jakub Jelinek  <jakub@redhat.com>
799
800         * varasm.c (struct constant_descriptor_tree): Add hash field.
801         (const_desc_hash): Just return hash field.
802         (const_desc_eq): If hash values are different, return 0 immediately.
803         (output_constant_def): Compute hash field of temporary key, use
804         htab_find_slot_with_hash instead of htab_find_slot.  Set hash in
805         newly built constant descriptor.
806         (lookup_constant_def): Compute hash field of temporary key, use
807         htab_find_with_hash instead of htab_find.
808
809 2005-05-16  Richard Henderson  <rth@redhat.com>
810
811         * config/i386/sse.md (mulv4si3): New.
812
813 2005-05-17  Hans-Peter Nilsson  <hp@axis.com>
814
815         * config/cris/cris.h (EXTRA_CONSTRAINT_T): Remove FIXME and
816         tests for noncanonical versions of reg+constant and
817         reg+reg*{1,2,4}.
818
819 2005-05-16  Richard Henderson  <rth@redhat.com>
820             Steven Bosscher <stevenb@suse.de>
821
822         PR tree-opt/21399
823         * tree-eh.c (maybe_clean_or_replace_eh_stmt): Rename from 
824         maybe_clean_eh_stmt; take old stmt parameter.  Update EH
825         region data structure to match replacement.
826         * tree-flow.h: Update to match.
827         * tree-ssa-ccp.c (execute_fold_all_builtins): Likewise.
828         * tree-ssa-dom.c (optimize_stmt): Likewise.
829         * tree-ssa-pre.c (eliminate): Likewise.
830         * tree-ssa-propagate.c (substitute_and_fold): Likewise.
831
832 2005-05-16  Caroline Tice  <ctice@apple.com>
833
834         * bb-reorder.c (verify_hot_cold_block_grouping):  Replace
835         internal_error with gcc_assert.
836         * dwarf2out.c (dwarf2out_switch_text_section):  Likewise.
837         * function.h (struct function): Remove space between "*" and
838         struct field names.
839         * varasm.c (initialize_cold_section_name):   Add gcc_assert;
840         modify to use alloca.
841         (unlikely_text_section): Add check for flag_function_sections.
842         (assemble_start_function):  Move call to resolve_section, so it
843         comes before first call to unlikely_text_section.
844         (assemble_end_function):  Add test and call to function_section
845         if appropriate.
846         
847 2005-05-16  Roger Sayle  <roger@eyesopen.com>
848
849         * c-common.c (c_common_truthvalue_conversion): Use fold_build2
850         instead of build_binary_op when performing code transformations
851         to avoid error messages about constructs not it the user's code.
852
853 2005-05-16  Kazu Hirata  <kazu@cs.umass.edu>
854
855         * tree-ssa-pre.c: Fix a comment typo.
856
857 2005-05-16  Richard Henderson  <rth@redhat.com>
858
859         PR target/21556
860         * config/ia64/ia64.md (load_dtpmod, load_ltoff_dtpmod, load_dtprel,
861         load_dtprel64, load_dtprel22, load_dtprel_gd, load_ltoff_dtprel,
862         add_dtprel, add_dtprel14, add_dtprel22, load_tprel, load_tprel64,
863         load_tprel22, load_tprel_ie, load_ltoff_tprel, add_tprel, add_tprel14,
864         add_tprel22): Remove mode from symbolic operand.
865
866 2005-05-16  Richard Sandiford  <rsandifo@redhat.com>
867
868         * optc-gen.awk: Include intl.h after the externally-provided files.
869
870 2005-05-16  Kazu Hirata  <kazu@cs.umass.edu>
871
872         * tree-ssa-copy.c (copy_prop_visit_assignment): Clean up by
873         folding a COND_EXPR_COND in a nondestructive manner.
874
875 2005-05-16  Fariborz Jahanian <fjahanian@apple.com>
876
877         * config/rs6000/altivec.md (altivec_vmrghb, altivec_vmrghh, 
878         altivec_vmrghw, altivec_vmrglb, altivec_vmrglh, altivec_vmrglw):
879         New values for vec_select definitions and bitmask for element
880         selection.
881          
882 2005-05-16  Kazu Hirata  <kazu@cs.umass.edu>
883
884         * dwarf2out.c (used_rtx_varray): Rename to used_rtx_array.
885         Change the type to VEC(rtx,gc)*.
886         (mem_loc_descriptor, add_const_value_attributes,
887         dwarf2out_init): Adjust uses of used_rtx_varray.
888
889         * tree-data-ref.c (compute_all_dependences): Change the type
890         of dependence_relations to VEC(ddr_p,heap)**.
891         (compute_data_dependences_for_loop): Change the type of
892         allrelations to VEC(ddr_p,heap)*.
893
894 2005-05-16  Richard Sandiford  <rsandifo@redhat.com>
895
896         * Makefile.in (options.c): Tell optc-gen.awk to include config.h,
897         system.h, coretypes.h and tm.h.
898         (options.o): Update dependencies accordingly.
899         * optc-gen.awk: Allow header_name to be a list of filenames.
900         Handle the "Condition" flag.
901         * opts.h (CL_DISABLED): New flag.
902         * opts.c (handle_option): Print an error for CL_DISABLED options.
903         * doc/options.texi: Document the "Condition" option flag.
904
905 2005-05-16  Paolo Bonzini  <bonzini@gnu.org>
906
907         * tree-inline.c (estimate_num_insns_1): Handle VEC_COND_EXPR.
908
909 2005-05-15  Roger Sayle  <roger@eyesopen.com>
910
911         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Only
912         check for TREE_OVERFLOW on INTEGER_CST trees.
913         * tree-chrec.c (chrec_convert): Only clear TREE_OVERFLOW on
914         CONSTANT_CLASS_P tree nodes.
915
916 2005-05-15  H.J. Lu  <hongjiu.lu@intel.com>
917
918         PR target/21551
919         * config/ia64/ia64.c (ia64_expand_move): Don't add addend twice.
920
921 2005-05-15  Daniel Berlin  <dberlin@dberlin.org>
922             
923         Fix PR tree-optimization/21576
924         
925         * tree-ssa-pre.c (expression_node_pool): New pool.
926         (comparison_node_pool): Ditto.
927         (list_node_pool): Ditto.
928         (pool_copy_list): New function.
929         (phi_translate): Handle CALL_EXPR.
930         (valid_in_set): Ditto.
931         (create_expression_by_pieces): Ditto.
932         (insert_into_preds_of_block): Ditto.
933         (insert_aux): Ditto.
934         (compute_avail): Ditto.
935         (create_value_expr_from): Handle TREE_LIST and CALL_EXPR.
936         (can_value_number_call): New function.
937         (find_leader): Update comment.
938         (init_pre): Create new pools.
939         (fini_pre): Free new pools.
940         (pass_pre): Add TODO_update_ssa for the future when we are going
941         to need vops.
942         * tree-vn.c (expressions_equal_p): Handle TREE_LIST.
943         (set_value_handle): Ditto.
944         (get_value_handle): Ditto.
945
946 2005-05-15  Richard Earnshaw  <richard.earnshaw@arm.com>
947
948         * arm.c (thumb_unexpanded_epilogue): Delete unused variable 'mode'.
949
950 2005-05-15  Andreas Jaeger  <aj@suse.de>
951
952         * gcc.c (pfatal_pexecute): Remove unused local function.
953
954 2005-05-15  Richard Sandiford  <rsandifo@redhat.com>
955
956         * optc-gen.awk: Remove excess indentation.
957         * opth-gen.awk: Likewise.
958
959 2005-05-14  Kaz Kojima  <kkojima@gcc.gnu.org>
960
961         * config/sh/sh.c (sh_output_mi_thunk): Check cfun->cfg instead
962         of basic_block_info.  Call init_flow and find_basic_blocks
963         before dbr_schedule if needed.
964
965 2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
966
967         * tree-optimize.c (init_tree_optimization_passes): Move
968         pass_cd_dce in place of the last pass_dce.
969
970         PR tree-optimization/21563
971         * tree-vrp.c (compare_value): Return boolean_false_node when
972         SSA_NAME in "if (SSA_NAME == CST)" is strictly smaller than or
973         strictly larger than CST.
974
975 2005-05-14  Nathan Sidwell  <nathan@codesourcery.com>
976             Jan-Benedict Glaw  <jbglaw@lug-owl.de>
977
978         * config/vax/vax.c: (print_operand_address) Use gcc_unreachable() and
979         gcc_assert().
980         (rev_cond_name) Likewise.
981         (vax_float_literal) Likewise.
982         * config/vax/vax.md: Likewise.
983
984 2005-05-14  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
985
986         * config/vax/vax.md: define_constant VAXens AP, FP, SP and PC
987         registers and use them (specifically the stack pointer).
988         * config/vax/vax.h: Use above defines right here.
989
990         * config/vax/vax.c: (override_options) Remove 'register' keyword.
991         (split_quadword_operands) Likewise. (rev_cond_name) Likewise.
992         (vax_float_literal) Likewise. (vax_rtx_costs) Remove trailing
993         whitespace.
994         * config/vax/vax.h: Remove 'register' keyword. Misc. whitespace fixes,
995         mostly removal of trailing spaces...
996         * config/vax/vax-modes.def: Remove trailing whitespace.
997
998         * config/vax/elf.h: Update whitespace.
999
1000 2005-05-14  Richard Guenther  <rguenth@gcc.gnu.org>
1001
1002         Revert
1003         2005-05-11  Richard Guenther  <rguenth@gcc.gnu.org>
1004         * fold-const.c (fold_indirect_ref_1): Avoid removing
1005         NOP_EXPRs with type qualifiers like const.
1006
1007 2005-05-14  Jan Hubicka  <jh@suse.cz>
1008
1009         Patch by Richard Henderson:
1010         * tree-eh.c (tree_can_throw_internal, tree_can_throw_external):
1011         Handle RESX expressions properly.
1012
1013         * tree-eh.c (record_stmt_eh_region): Use add_stmt_to_eh_region.
1014         (add_stmt_to_eh_region_fn): Nest into CALL_EXPR.
1015         (remove_stmt_from_eh_region_fn): Likewise.
1016
1017         * tree-cfg.c (execute_warn_function_return): Break out noreturn
1018         warning too..
1019         (execute_warn_function_noreturn): ... here.
1020         (pass_warn_function_noreturn): New pass.
1021         * tree-pass.h (pass_warn_function_noreturn): Declare
1022         * tree-optimize.c (init_tree_optimization_passes): Move return
1023         warnings early and add noreturn warnings at place of previous
1024         return warnings.
1025
1026 2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
1027
1028         * tree-ssa-live.c (tpa_init, tpa_delete, tpa_compact,
1029         root_var_init, type_var_init): Use VEC instead of VARRAY.
1030         * tree-ssa-live.h (tree_partition_associator_d): Change the
1031         type of trees to VEC(tree,heap)*.
1032         (tpa_tree): Use VEC instead of VARRAY.
1033
1034 2005-05-14  Richard Guenther  <rguenth@gcc.gnu.org>
1035
1036         * fold-const.c (div_if_zero_remainder): New function.
1037         (try_move_mult_to_index): Use it.
1038
1039 2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
1040
1041         * tree-eh.c (leh_tf_state): Change the type of dest_array to
1042         VEC(tree,heap)*.
1043         (maybe_record_in_goto_queue, lower_try_finally_onedest,
1044         lower_try_finally_copy, lower_try_finally_switch,
1045         lower_try_finally): Use VEC instead of VARRAY.
1046
1047 2005-05-14  Hans-Peter Nilsson  <hp@axis.com>
1048
1049         * config/cris/cris.h (Node: Register Classes): Remove obsoleted
1050         comment regarding defined register classes.
1051         (LEGITIMIZE_RELOAD_ADDRESS): Do not define.
1052
1053 2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
1054
1055         * tree-optimize.c (init_tree_optimization_passes): Move
1056         pass_merge_phi before the first pass_dominator.
1057
1058 2005-05-13  Richard Earnshaw  <richard.earnshaw@arm.com>
1059
1060         * arm.h (INITIALIZE_TRAMPOLINE): Make the call to __clear_cache
1061         unconditional.
1062
1063 2005-05-13  Josh Conner  <jconner@apple.com>
1064
1065         * config/arm/arm.c (arm_size_return_regs): New.
1066         (thumb_unexpanded_epilogue): replace in-line calculation
1067         of return registers with call to arm_size_return_regs.
1068         (use_return_insn): Include test of which registers are
1069         being used to hold return values, to accommodate
1070         vector return values.
1071
1072 2005-05-11  Aldy Hernandez  <aldyh@redhat.com>
1073
1074         * config/rs6000/sysv4.opt (mlittle): Handle.
1075
1076         * config/rs6000/rs6000.c (rs6000_handle_option): Set
1077         target_flags_explicit when appropriate.
1078
1079 2005-05-13  J"orn Rennecke <joern.rennecke@st.com>
1080
1081         PR middle-end/20714:
1082         * optabs.c (no_conflict_data): New struct.
1083         (no_conflict_move_test): New function.
1084         (emit_no_conflict_block): Use it.
1085
1086 2005-05-13  Adam Nemet  <anemet@lnxw.com>
1087
1088         * doc/invoke.texi (Debugging Options): Option
1089         -fdump-translation-unit only works with C++ now.
1090
1091 2005-05-13  Hans-Peter Nilsson  <hp@axis.com>
1092
1093         Replace calls to abort in CRIS port.
1094         * config/cris/cris.h (CRIS_ASSERT): New macro.
1095         * config/cris/cris.md ("*movsi_internal"): Use CRIS_ASSERT and
1096         internal_error instead of abort.
1097         ("movsi"): Ditto.  Unquote preparation statement section.
1098         ("call", "call_value"): Ditto, but use gcc_assert where
1099         appropriate.  Tweak comments.
1100         * config/cris/cris.c (ASSERT_PLT_UNSPEC): Define in terms of
1101         CRIS_ASSERT.
1102         (cris_op_str): Call internal_error, not abort.
1103         (cris_print_operand): Tweak "abort" reference to "die" in comment.
1104         (cris_initial_elimination_offset): Call gcc_unreachable, not abort.
1105         (cris_notice_update_cc): Call internal_error, not abort.
1106         (cris_expand_return, cris_expand_prologue, cris_gen_movem_load)
1107         (cris_emit_movem_store, cris_asm_output_symbol_ref)
1108         (cris_output_addr_const_extra): Use CRIS_ASSERT, don't call abort.
1109         (cris_symbol, cris_got_symbol): Use CRIS_ASSERT instead of
1110         ENABLE_CHECKING-guarded abort call.
1111         (cris_split_movdx): Use CRIS_ASSERT instead of abort with test.
1112         Use internal_error at end of test-chain.
1113
1114 2005-05-13  J"orn Rennecke <joern.rennecke@st.com>
1115
1116         PR rtl-optimization/20769:
1117         * bt-load.c (compute_defs_uses_and_gen): Check for the blockage
1118         pattern emitted by expand_nl_goto_receiver.
1119
1120         PR middle-end/20793:
1121         * integrate.c (allocate_initial_values): Update register liveness
1122         information.
1123
1124 2005-05-13  Josh Conner  <jconner@apple.com>
1125
1126         * arm.c (arm_return_in_memory): Add handling for vector return types.
1127
1128 2005-05-13  David Ung  <davidu@mips.com>
1129
1130         * config/mips/mips.h (processor_type): Add new PROCESSOR_4KP
1131         name.
1132         * config/mips/mips.c: Add 4km alias.
1133         * config/mips/mips.md: Add 4kp to cpu attrib and include 4k.md.
1134         * config/mips/4k.md: New file, add 4Kc/4Kp DFA pipeline
1135         description.
1136
1137 2005-05-13  Jan Hubicka  <jh@suse.cz>
1138
1139         * c-decl.c (finish_function): Suppress "control reaches end of
1140         non-void function" when "no return statement in function
1141         returning non-void" is issued.
1142
1143         * tree-inline.c (copy_body_r): Simplify substituted ADDR_EXPRs.
1144         * tree-optimize.c (pass_gimple): Kill.
1145         (init_tree_optimization_passes): Kill pass_gimple.
1146         * tree-cfg.c (build_tree_cfg): Do verify_stmts to check that we are gimple.
1147         * tree-dump.c (dump_files): Rename .generic to .gimple.*
1148
1149 2005-05-13  J"orn Rennecke <joern.rennecke@st.com>
1150
1151         PR rtl-optimization/20756:
1152         * basic-block.h (PROP_DEAD_INSN): Define.
1153         * flow.c (propagate_one_insn): Set during mark_set_regs call
1154         for a dead insn.
1155         (mark_set_1): Emit a clobber when we are about to delete a dead insn
1156         that kills a live register.
1157
1158 2005-05-13  Adrian Straetling  <straetling@de.ibm.com>
1159
1160         * config/s390/s390.md: ("DBL"): New mode attribute.
1161         ("*movmem_long_64", "*movmem_long_31"): Merge to "*movmem_long".
1162         ("*clrmem_long_64", "*clrmem_long_31"): Merge to "*clrmem_long".
1163         ("*cmpmem_long_64", "*cmpmem_long_31"): Merge to "*cmpmem_long".
1164
1165 2005-05-13  Richard Guenther  <rguenth@gcc.gnu.org>
1166
1167         * c-format.c (check_format_arg): Handle string literals of
1168         the form &"string"[offset].
1169
1170         * g++.dg/warn/format4.C: New testcase.
1171
1172 2005-05-13  Kazu Hirata  <kazu@cs.umass.edu>
1173
1174         * config/mips/3000.md, config/mips/4000.md,
1175         config/mips/4100.md, config/mips/4300.md, config/mips/4600.md,
1176         config/mips/5000.md, config/mips/7000.md, config/mips/9000.md,
1177         config/mips/generic.md, config/pdp11/pdp11.md,
1178         config/sh/crt1.asm, config/sh/lib1funcs.asm,
1179         config/sh/sh-modes.def, config/sh/sh-protos.h,
1180         config/sh/shmedia.md, config/sh/ushmedia.h: Update copyright.
1181
1182 2005-05-13  Richard Henderson  <rth@redhat.com>
1183
1184         * function.c (instantiate_virtual_regs_in_insn): Do not simplify
1185         addition to move unless dest is a register.  Do not skip
1186         instantiation in dest on addition simplification.
1187
1188 2005-05-13  Hans-Peter Nilsson  <hp@axis.com>
1189
1190         * config/cris/cris.c (cris_print_operand) <case 'H'; case
1191         CONST_INT>: Use operand_subword and HOST_WIDE_INT_PRINT_DEC for
1192         output; don't have special case for HOST_BITS_PER_WIDE_INT == 32.
1193
1194 2005-05-13  Jan Hubicka  <jh@suse.cz>
1195
1196         * basic-block.h (FOR_ALL_BB_FN): New macro.
1197         (init_flow): Initialize cfg structure.
1198         * function.c (allocate_struct_function): Do not initialize cfg structure.
1199         * tree-cfg.c (init_empty_tree_cfg): Break out from ...
1200         (build_tree_cfg): ... here.
1201         * tree-flow.h (init_empty_tree_cfg): Declare.
1202
1203 2005-05-12  Steven Bosscher <stevenb@suse.de>
1204
1205         Fix PR tree-optimization/21520
1206         * tree-ssa-pre.c (phi_translate): Use fully_constant_expression
1207         to attempt to fold constants.
1208
1209 2005-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
1210
1211         * config/sh/sh.c: Declare the prototype of sh_adjust_unroll_max
1212         only when TARGET_ADJUST_UNROLL_MAX is defined.
1213         (general_movsrc_operand): Use the C style comment.
1214         (ua_offset): Use prototype.
1215
1216 2005-05-12  Zdenek Dvorak  <dvorakz@suse.cz>
1217
1218         * tree-ssa-loop-im.c (struct mem_ref): Add field "next".
1219         (struct hmr_data, hoist_memory_reference, memref_del,
1220         struct fmrv_data): Removed.
1221         (hoist_memory_references, free_mem_ref, free_mem_refs): New functions.
1222         (gather_mem_refs, gather_mem_refs_stmt): Add new references to the
1223         list.
1224         (find_more_ref_vops): Traverse the list of memory references.
1225         (determine_lsm_loop): Work with the list of memory references instead
1226         of traversing the hashtable.
1227
1228 2005-05-12  Steven Bosscher  <stevenb@suse.de>
1229             Stuart Hastings <stuart@apple.com>
1230             Jan Hubicka  <jh@suse.cz>
1231
1232         * except.c  (duplicate_eh_region_1, duplicate_eh_region_2,
1233         duplicate_eh_regions): New functions, based on old
1234         implementation removed with RTL inliner.
1235         (reachable_next_level): Modify behaviour pre-inline.
1236         * except.h (duplicate_eh_regions_map, duplicate_eh_regions):
1237         Declare.
1238         * function.h (struct function): Add after_inlining flag.
1239         * tree-optimize.c (tree_rest_of_compilation): Set it.
1240         * tree-eh.c (add_stmt_to_eh_region_fn): Initialize hashtable
1241         when needed.
1242         * tree-cfg.c (label_to_block_fn): Deal with cases where
1243         label was never insterted into code.
1244
1245 2005-05-12  Zack Weinberg  <zack@codesourcery.com>
1246
1247         * doc/cpp.texi: Document that #sccs is a synonym for #ident.
1248
1249 2005-05-12  Daniel Berlin  <dberlin@dberlin.org>
1250
1251         Fix PR tree-optimization/21532
1252         * tree-ssa-pre.c (create_expression_by_pieces): stmt
1253         needs to go onto the inserted_exprs list.
1254
1255 2005-05-12  Ian Lance Taylor  <ian@airs.com>
1256
1257         * c-common.h (statement_code_p): Don't declare.
1258         (STATEMENT_CODE_P): Don't define.
1259         (INIT_STATEMENT_CODES): Don't define.
1260         * c-common.c (statement_code_p): Don't define.
1261
1262 2005-05-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
1263
1264         * config/sparc/sparc.h: Remove dead code.
1265         * config/sparc/sparc.c (sparc_compute_frame_size): Use
1266         FIRST_PARM_OFFSET for the size of the register window area.
1267         (emit_save_regs): Rename into emit_save_or_restore_regs.
1268         Add 'action' parameter.  Use 4095 as upper bound for the offset.
1269         Pass 'action' to save_or_restore_regs.
1270         (emit_restore_regs): Delete.
1271         (sparc_expand_prologue): Call emit_save_or_restore_regs.
1272         (sparc_expand_epilogue): Likewise.
1273         * config/sparc/sparc.md (mode macro P): Move.
1274         (movdi_insn_sp32_v9, movdi_insn_sp32): Swap.
1275         (mov<V32:mode> expander): Move to the top of the V32 section.
1276         (movdf_insn_sp32_v9_no_fpu, movdf_insn_sp32_v9): Swap.
1277         (movtf_insn_sp64_hq, movtf_insn_sp64): Swap.
1278         (sibcall_epilogue): Move.
1279
1280 2005-05-12  Richard Earnshaw  <richard.earnshaw@arm.com>
1281
1282         PR target/21501
1283         * arm.c (arm_gen_constant): Sign-extend intermediate values when
1284         synthesizing a constant of the difference of two immediates.
1285
1286 2005-05-12  Richard Earnshaw  <richard.earnshaw@arm.com>
1287
1288         * arm/vfp.md (negsf2_vfp): Add alternative using integer registers.
1289         (negdf2_vfp): Likewise.  Convert to define_insn_and_split and split
1290         the alternatives using integer registers into the appropriate
1291         primitives.
1292
1293 2005-05-11 Kenneth Zadeck <zadeck@naturalbridge.com>
1294
1295         * bitmap.c (bitmap_elmt_to_freelist, bitmap_element_allocate,
1296         bitmap_elt_clear_from, bitmap_clear): Changed freelist structure.
1297         * bitmap.h: Fixed comments.
1298
1299 2005-05-11  Richard Henderson  <rth@redhat.com>
1300
1301         PR target/21412
1302         * config/ia64/ia64.c (TARGET_CANNOT_FORCE_CONST_MEM): New.
1303         (ia64_cannot_force_const_mem): New.
1304         (tls_symbolic_operand_type): New.
1305         (ia64_legitimate_constant_p): New.
1306         (ia64_expand_load_address): Return true on success.  Improve
1307         checks for when we should not split.
1308         (ia64_expand_tls_address): New addend operand.  Distribute it
1309         as appropriate to the tls_kind.  Delay referencing gp.
1310         (ia64_expand_move): Split symbolic addend as necessary.  Handle
1311         tls symbols with addends.
1312         * config/ia64/ia64-protos.h: Update.
1313         * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): False for r0,
1314         p0, f0, f1, and r13.
1315         (LEGITIMATE_CONSTANT_P): Move to ia64_legitimate_constant_p.
1316         * config/ia64/ia64.md (UNSPEC_DTPMOD): New.
1317         (symbolic_operand splitter): Pass everything through
1318         ia64_expand_load_address and FAIL or DONE as appropriate.
1319         (load_fptr): Only accept after reload.
1320         (load_fptr_internal1, gprel64_offset, load_gprel64, load_symptr_high,
1321         load_symptr_low, load_ltoff_dtpmod,
1322         (load_dtpmod): New.
1323         (load_dtprel): Only accept tls symbols.
1324         (load_dtprel64, load_dtprel22): Likewise.
1325         (load_tprel, load_tprel64, load_tprel22): Likewise.
1326         (load_dtprel_gd, load_ltoff_dtprel, load_tprel_ie): New.
1327         (add_dtprel): Only accept tls symbols.  Canonicalize PLUS.
1328         (add_dtprel14, add_dtprel22): Likewise.
1329         (add_tprel, add_tprel14, add_tprel22): Likewise.
1330         * config/ia64/predicates.md (small_addr_symbolic_operand): New.
1331         (any_offset_symbol_operand, aligned_offset_symbol_operand): New.
1332         (got_symbolic_operand): Check CONST offsets.
1333         (tls_symbolic_operand, ld_tls_symbolic_operand): New.
1334         (ie_tls_symbolic_operand, le_tls_symbolic_operand): New.
1335         (move_operand): Don't handle tls here.  Check CONST offsets.
1336
1337 2005-05-11  Richard Sandiford  <rsandifo@redhat.com>
1338
1339         * config/mips/7000.md (rm7_impy_si_mult): Just match imul and imadd.
1340         Remove hilo_operand check.
1341         (rm7_impy_si_mul): Just match imul3.  Remove hilo_operand check.
1342         * config/mips/predicates.md (hilo_operand): Delete.
1343
1344 2005-05-11  Richard Sandiford  <rsandifo@redhat.com>
1345
1346         * config/mips/sr71k.md, config/mips/7000.md: Reformat.
1347
1348 2005-05-11  Kazu Hirata  <kazu@cs.umass.edu>
1349
1350         PR tree-optimizer/18472
1351         * tree-if-conv.c (tree_if_convert_stmt,
1352         if_convertible_modify_expr_p): Don't handle GOTO_EXPR.
1353
1354 2005-05-11  Jan Hubicka  <jh@suse.cz>
1355
1356         * Makefile.in (tree-eh.o: Kill gt-tree-eh.h dependency.
1357         (GTFILES): add except.h.
1358         * except.c (eh_status): Add throw_stmt_table.
1359         (set_eh_throw_stmt_table, get_eh_throw_stmt_table): New functions.
1360         * except.h (add_stmt_to_eh_region_fn, remove_stmt_from_eh_region_fn,
1361         lookup_stmt_eh_region_fn): Declare.
1362         (throw_stmt_node): New structure.
1363         (set_eh_throw_stmt_table, get_eh_throw_stmt_table): New.
1364         * gengtype.c (open_base_files): Add except.h to inlines.
1365         * tree-eh.c (throw_stmt_node): Kill.
1366         (record_stmt_eh_region): Update.
1367         (add_stmt_to_eh_region_fn): Break out from ...
1368         (add_stmt_to_eh_region): ... here.
1369         (remove_stmt_from_eh_region_fn): Break out from ...
1370         (remove_stmt_from_eh_region): ... here.
1371         (lookup_stmt_eh_region_fn): Break out from ...
1372         (lookup_stmt_eh_region): ... here.
1373         (honor_protect_cleanup_actions): Use build_resx.
1374         (lower_try_finally_onedest): Likewise.
1375         (lower_try_finally_copy): Likewise.
1376         (lower_try_finally_switch): Likewise.
1377         (lower_eh_constructs): Update eh table construction.
1378         * tree.c (build_resx): New.
1379         * tree.h (build_resx): Declare.
1380
1381 2005-05-11  H.J. Lu  <hongjiu.lu@intel.com>
1382
1383         * libgcov.c (gcov_exit): Set prefix_length to 0 if no relocation
1384         is needed.
1385
1386 2005-05-11  Kazu Hirata  <kazu@cs.umass.edu>
1387
1388         * fold-const.c, libgcov.c: Fix comment typos.
1389
1390         * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Remove
1391         redundant code.
1392
1393 2005-05-11  Daniel Jacobowitz  <dan@codesourcery.com>
1394
1395         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
1396         * config/arm/arm.h (SUBTARGET_FRAME_POINTER_REQUIRED): Provide
1397         default definition.
1398         (FRAME_POINTER_REQUIRED): Use SUBTARGET_FRAME_POINTER_REQUIRED.
1399
1400 2005-05-11  Nathan Sidwell  <nathan@codesourcery.com>
1401
1402         PR bootstrap/21481
1403         * crtstuff.c: Include auto-host.h again, for now.
1404
1405 2005-05-11  Richard Sandiford  <rsandifo@redhat.com>
1406
1407         * config/mips/24k.md: Remove trailing whitespace.
1408
1409 2005-05-11  David Ung  <davidu@mips.com>
1410
1411         * config/mips/mips.md (type): Add imul3.
1412         (length, hazard, may_clobber_hilo): Check for imul3.
1413         (mulsi3_mult3, muldi3_mult3, *muls, <su>mulsi3_highpart_mulhi_internal)
1414         (*<su>mulsi3_highpart_neg_mulhi_internal): Set attr to imul3.
1415         * config/mips/24k.md (r24k_int_mul3): Enable this reservation
1416         for a 3 operand mul and its bypasses.
1417         * config/mips/3000.md (r3k_imul): Add imul3 to reservations.
1418         * config/mips/4000.md (r4k_imul): Likewise.
1419         * config/mips/4100.md (r4100_imul_si, r4100_imul_di):  Likewise.
1420         * config/mips/4130.md (vr4130_class, vr4130_mulsi)
1421         (vr4130_muldi): Likewise.
1422         * config/mips/4300.md (r4300_imul_si, r4300_imul_di): Likewise.
1423         * config/mips/4600.md (r4600_imul, r4650_imul): Likewise.
1424         * config/mips/5000.md (r5k_imul_si, r5k_imul_di): Likewise.
1425         * config/mips/5400.md (ir_vr54_imul_si, ir_vr54_imul_di)
1426         (ir_vr54_imadd_si): Likewise.
1427         * config/mips/5500.md (ir_vr55_imul_si, ir_vr55_imul_di):  Likewise.
1428         * config/mips/7000.md (rm7_impy_si_mult, rm7_impy_si_mul)
1429         (rm7_impy_di): Likewise.
1430         * config/mips/9000.md (rm9k_mulsi, rm9k_muldi):  Likewise.
1431         * config/mips/generic.md (generic_imul): Likewise.
1432         * config/mips/sb1.md (ir_sb1_mulsi, ir_sb1_muldi): Likewise.
1433         * config/mips/sr71k.md (ir_sr70_imul_si, ir_sr70_imul_di):  Likewise.
1434
1435 2005-05-11  J"orn Rennecke <joern.rennecke@st.com>
1436
1437         PR middle-end/20371:
1438         * tree.h (record_layout_info_s): New member prev_packed.
1439         * stor-layout.c (update_alignment_for_field): Fix comment about
1440         KNOWN_ALIGN.  For MS bitfields, if we start a new run, make sure
1441         we start it properly aligned.
1442         (place_field): At the beginning of a record, pass 0 as KNOWN_ALIGN
1443         to update_alignment_for_field, and recompute it afterwards using
1444         the alignment of the record.
1445         When a packed bitfield precedes an MS bitfield, don't add padding
1446         at the end of the packed bitfield on behalf of the base type of
1447         the packed bit field.
1448         Don't adjust rli->bitpos at the end
1449         of an MS bitfield run if we already adjusted bitpos/offset for an
1450         alignment as large or larger than the bitfield type size.
1451         Take possible record alignment > BIGGEST_ALIGNMENT into account
1452         when calculating actual_align.
1453         Only put packed buit fields into rli->prev_field if they end up
1454         suitably aligned.
1455         Also set rli->remaining_in_alignment when we re-set rli->prev_field.
1456         Update rli->remaining_in_alignment when we have already started a
1457         run of bit fields and we process a packed bit field.
1458
1459 2005-05-11  Sebastian Pop  <pop@cri.ensmp.fr>
1460
1461         * tree-data-ref.c (find_data_references_in_loop): Give up when
1462         the body of the loop contains a CALL_EXPR or an ASM_EXPR: they
1463         may embed arbitrary side effects.
1464         Remove the assumption that GIMPLE form contains a single array
1465         access per statement.
1466         When the statement contains virtual operands, fail if it is not
1467         a MODIFY_EXPR or a CALL_EXPR.
1468         Return after the dont know node is inserted.
1469
1470 2005-05-11  Richard Earnshaw  <richard.earnshaw@arm.com>
1471
1472         * arm.md (negsf2, negdf2): Permit these expands when compiling for VFP.
1473
1474 2005-05-11  Richard Guenther  <rguenth@gcc.gnu.org>
1475
1476         PR middle-end/19807
1477         PR tree-optimization/19639
1478         * fold-const.c (try_move_mult_to_index): Handle INTEGER_CST
1479         and generic summands for char* as s * delta, too, folding &a[i]
1480         CODE x to &a[i CODE x/s].  Use tree_int_cst_equal
1481         for comparison of steps.  Convert types for index addition.
1482         (fold_binary): Adjust the callers to always dispatch to
1483         try_move_mult_to_index.
1484         * tree-ssa-propagate.c (set_rhs): Avoid setting rhs to
1485         expr with non-gimple ARRAY_REF offset.
1486
1487 2005-05-11  Richard Guenther  <rguenth@gcc.gnu.org>
1488
1489         * fold-const.c (fold_indirect_ref_1): Avoid removing
1490         NOP_EXPRs with type qualifiers like const.
1491
1492 2005-05-11  Richard Henderson  <rth@redhat.com>
1493
1494         PR c/21502
1495         * c-decl.c (finish_decl): Propagate the completed array type of
1496         a global variable into the binding.
1497
1498 2005-05-10  Matt Kraai  <kraai@ftbfs.org>
1499
1500         * Makefile.in (gtype-desc.o, build/genautomata.o)
1501         (build/varray.o): Depend on $(VARRAY_H).
1502
1503 2005-05-10  Diego Novillo  <dnovillo@redhat.com>
1504
1505         * tree-optimize.c (init_tree_optimization_passes): Re-organize
1506         optimization passes to do an initial batch of scalar cleanups.
1507
1508 2005-05-10  Ian Lance Taylor  <ian@airs.com>
1509
1510         * read-rtl.c (struct macro_traverse_data): Define.
1511         (map_attr_string): New static function, broken out of
1512         apply_macro_to_string.
1513         (mode_attr_index, apply_mode_maps): New static functions.
1514         (apply_macro_to_string): Call map_attr_string.
1515         (apply_macro_to_rtx): Add mode_maps and infile parameters.  Change
1516         all callers.
1517         (apply_macro_traverse): Expect data to point to a struct
1518         macro_traverse_data.
1519         (read_rtx): Add mode_maps local variable.  Use mode_traverse_data
1520         to pass data through htab_traverse.
1521         (read_rtx_1): Add mode_maps parameter.  Change all callers.
1522         Handle mode names which are attribute strings.
1523         * doc/md.texi (Substitutions): Rename from String Substitutions.
1524         Change references.  Document using attributes as modes.
1525
1526 2005-05-10  Zdenek Dvorak  <dvorakz@suse.cz>
1527
1528         * tree-cfg.c (tree_duplicate_sese_region): Update profile.
1529         * tree-optimize.c (init_tree_optimization_passes) Swap
1530         pass_ch and pass_profile.
1531         * tree-ssa-loop-ch.c (copy_loop_headers): Do not update profile
1532         here.  Remove rewrite_into_loop_closed_ssa call.
1533
1534 2005-05-10  Adrian Straetling  <straetling@de.ibm.com>
1535
1536         * config/s390/s390.c: (s390_const_double_ok_for_constraint_p): New
1537         function.
1538         (legitimate_reload_constant_p): Add check for const double zero.
1539         * config/s390/s390.md: Add comment for constraint letter 'G'.
1540         ("*movdf_64", "*movdf_31", "movsf"): Add constraint and proper
1541         attributes for new case.
1542         * config/s390/s390.h: (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Define it as
1543         s390_const_double_ok_for_constraint_p.
1544         * config/s390/s390-protos.h (s390_const_double_ok_for_constraint_p):
1545         Add prototype.
1546
1547 2005-05-10  Kazu Hirata  <kazu@cs.umass.edu>
1548
1549         PR tree-optimization/21170
1550         * tree-ssa-dom.c, tree-ssa-threadupdate.c: Replace
1551         rewrite_ssa_into_ssa in comments with update_ssa.
1552
1553 2005-05-10  Zdenek Dvorak  <dvorakz@suse.cz>
1554
1555         * tree-ssa-loop-im.c: Include hashtab.h.
1556         (struct mem_ref_loc): New.
1557         (struct mem_ref): Describe the set of references with the same
1558         shape.
1559         (max_stmt_uid, get_stmt_uid, record_mem_ref, free_mem_refs,
1560         maybe_queue_var, fem_single_reachable_address,
1561         for_each_memref, single_reachable_address,
1562         is_call_clobbered_ref, determine_lsm_reg): Removed.
1563         (record_mem_ref_loc, free_mem_ref_locs, determine_lsm_ref,
1564         hoist_memory_reference, memref_hash, memref_eq, memref_del,
1565         gather_mem_refs_stmt, gather_mem_refs, find_more_ref_vops):
1566         New functions.
1567         (rewrite_mem_refs, schedule_sm): Use mem_ref_loc list.
1568         (determine_lsm_loop): Rewritten.
1569         (determine_lsm): Do not set stmt uids.
1570
1571 2005-05-10  Adrian Straetling  <straetling@de.ibm.com>
1572
1573         * config/s390/s390.md: Add comment lines for 'f' and 't' constraint
1574         letters.
1575
1576 2005-05-10  Adrian Straetling  <straetling@de.ibm.com>
1577
1578         * config/s390/s390.md: ("anddi3","andsi3","andhi3","andqi3"): Merge.
1579         ("iordi3", "iorsi3", "iorhi3", "iorqi3"): Merge.
1580         ("xordi3", "xorsi3", "xorhi3", "xorqi3"): Merge.
1581
1582 2005-05-10  Jeff Law  <law@redhat.com>
1583
1584         * tree-ssa-dom.c (dom_opt_finalize_block): Do not call
1585         thread_across_edge for any abnormal edges.
1586
1587 2005-05-10  Richard Henderson  <rth@redhat.com>
1588
1589         * config/ia64/ia64.c (ia64_expand_atomic_op): New.
1590         * config/ia64/ia64-protos.h: Declare it.
1591         * config/ia64/sync.md (I124MODE, FETCHOP, fetchop_name): New.
1592         (sync_add<I48MODE>, sync_old_add<I48MODE>): Remove.
1593         (sync_<FETCHOP><IMODE>, sync_nand<IMODE>): New.
1594         (sync_old_<FETCHOP><IMODE>, sync_old_nand<IMODE>): New.
1595         (sync_new_<FETCHOP><IMODE>, sync_new_nand<IMODE>): New.
1596         (cmpxchg_rel_<I124MODE>): Split from cmpxchg_acq_<IMODE>.  Zero
1597         extend result; use release semantics.
1598         (cmpxchg_rel_di): Rename from cmpxchg_acq_<IMODE>; use release.
1599         (sync_val_compare_and_swap_<IMODE>): Update to match.
1600
1601 2005-05-10  Richard Henderson  <rth@redhat.com>
1602
1603         * optabs.c (expand_compare_and_swap_loop): Don't clobber old value
1604         before comparing it for success.
1605
1606 2005-05-10  Richard Henderson  <rth@redhat.com>
1607
1608         * config/ia64/sync.md (sync_add<I48MODE>): Fix arguments for
1609         no return value pattern.
1610
1611 2005-05-10  Grigory Zagorodnev  <grigory.zagorodnev@intel.com>
1612             H.J. Lu  <hongjiu.lu@intel.com>
1613
1614         * libgcov.c (create_file_directory): New function. Create
1615         directory for the given file name.
1616         (gcov_max_filename): New static var. Keeps size of the longest
1617         file name.
1618         (gcov_exit): Always try to create directory for output
1619         file. Relocate each filename basing on environment vars.
1620         (__gcov_init): Remember the longest file name.
1621         * tsystem.h: include filenames.h to get IS_DIR_SEPARATOR
1622         * doc/gcov.texi (Cross-profiling): New node documenting
1623         cross-profiling management.
1624         * doc/invoke.texi (-fprofile-arcs): Add xref to cross-profiling.
1625
1626 2005-05-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
1627
1628         * config/sparc/sparc.c (mem_min_alignment): Do not rely
1629         on MEM_ALIGN if TARGET_UNALIGNED_DOUBLES.
1630
1631 2005-05-10  Bob Wilson  <bob.wilson@acm.org>
1632
1633         * config/xtensa/lib1funcs.asm (__udivsi3, __divsi3): Rearrange special
1634         case code to avoid one move instruction.
1635         (__umodsi3, __modsi3): Merge duplicated code sequences.
1636
1637 2005-05-10  Kazu Hirata  <kazu@cs.umass.edu>
1638
1639         * config/mips/24k.md, config/sh/divtab.c, config/sh/sh.c,
1640         config/sh/sh.md, config/sh/superh.h: Fix comment typos.
1641         * doc/invoke.texi: Fix typos.
1642
1643         * tree-data-ref.c (analyze_array_indexes, analyze_array,
1644         init_data_ref, access_functions_are_affine_or_constant_p,
1645         free_data_refs): Use VEC instead of VARRAY.
1646         * tree-data-ref.h (data_reference): Change the type of
1647         access_fns to VEC(tree,gc)*.
1648         (DR_ACCESS_FN, DR_NUM_DIMENSIONS): Use VEC instead of VARRAY.
1649
1650 2005-05-10  Gabor Loki <loki@gcc.gnu.org>
1651
1652         PR c/17913
1653         * c-typeck.c (build_conditional_expr): Remove reducing cond_expr.
1654         * fold-const.c (fold): Expand the condition of reducing cond_expr.
1655         (contains_label_1, contains_label_p): New functions for checking
1656         labels in a sub-tree.
1657
1658 2005-05-10  Joseph S. Myers  <joseph@codesourcery.com>
1659
1660         PR c/21342
1661         * c-decl.c (pushdecl): When there is a declaration in the current
1662         scope and the declarations are external linkage, check for
1663         compatibility with the type in the external scope and update the
1664         type in the external scope with the composite type information.
1665         Do not form a composite type of the new type and the visible type
1666         if they are incompatible.
1667
1668 2005-05-10  Nathan Sidwell  <nathan@codesourcery.com>
1669
1670         * crtstuff.c: Revert part of 2005-05-08 Change.
1671         (IN_LIBGCC2): Define.
1672
1673 2005-05-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
1674
1675         * config/sparc/sparc.c (fp_sethi_p): Test !SPARC_SIMM13_P and
1676         remove redundant test.
1677         (fp_mov_p): Accept 0.
1678         (fp_high_losum_p): Remove redundant test.
1679         * config/sparc/predicates.md (const_high_operand): Explicitly test
1680         (not small_int_operand).
1681         (fp_const_high_losum_operand): New.
1682         * config/sparc/sparc.md (movsi_insn): Do not emit 'clr'.  Reorder.
1683         (movdi_insn_sp32_v9): Use canonical predicates.
1684         (movdi_insn_sp32): Test !TARGET_V9 instead of !TARGET_ARCH64.
1685         (movdi_insn_sp64_novis): Delete.
1686         (movdi_insn_sp64_vis): Rename into movdi_insn_sp64.
1687         (movsf_insn_novis): Delete.
1688         (movsf_insn_vis): Rename into movsf_insn.
1689         (movsf_no_f_insn): Rename into movsf_insn_no_fpu.
1690         (movsf_lo_sum): Use fp_const_high_losum_operand.
1691         (movsf_high): Likewise.
1692         (movsf_high_losum splitter): Likewise.
1693         (mov<V32:mode> expander): Use register_or_zero_operand.
1694         (mov<V64:mode> expander): Likewise.
1695         (movdf_insn_sp32): Use register_or_zero_operand.
1696         (movdf_no_e_insn_sp32): Use register_or_zero_operand.
1697         Rename into movdf_insn_sp32_no_fpu.
1698         (movdf_no_e_insn_v9_sp32): Use register_or_zero_operand.
1699         Rename into movdf_insn_sp32_v9_no_fpu.
1700         (movdf_insn_v9only_novis): Delete.
1701         (movdf_insn_v9only_vis): Rename into movdf_insn_sp32_v9.
1702         (movdf_insn_sp64_novis): Delete.
1703         (movdf_insn_sp64_vis): Rename into movdf_insn_sp64.
1704         (movdf_no_e_insn_sp64): Use register_or_zero_operand.
1705         Rename into movdf_insn_sp64_no_fpu.
1706         (movtf expander): Use register_or_zero_operand.
1707         (movtf_insn_sp32): Delete.
1708         (movtf_insn_vis_sp32): Use register_or_zero_operand.
1709         Rename into movtf_insn_sp32.
1710         (movtf_no_e_insn_sp32): Use register_or_zero_operand.
1711         Rename into movtf_insn_sp32_no_fpu.
1712         (movtf_insn_hq_sp64): Delete.
1713         (movtf_insn_hq_vis_sp64): Use register_or_zero_operand.
1714         Rename into movtf_insn_sp64_hq.
1715         (movtf_insn_sp64): Delete.
1716         (movtf_insn_vis_sp64): Use register_or_zero_operand.
1717         Rename into movtf_insn_sp64.
1718         (movtf_no_e_insn_sp64): Use register_or_zero_operand.
1719         Rename into movtf_insn_sp64_no_fpu.
1720
1721 2005-05-10  Nathan Sidwell  <nathan@codesourcery.com>
1722
1723         * config/stormy16/stormy16.c (xstormy16_emit_cbranch): Use
1724         gcc_assert and gcc_unreachable as appropriate.
1725         (xstormy16_split_cbranch, xstormy16_output_cbranch_hi,
1726         xstormy16_output_cbranch_si, xstormy16_split_move,
1727         xstormy16_initial_elimination_offset,
1728         xstormy16_encode_section_info, xstormy16_print_operand_address,
1729         xstormy16_expand_call, xstormy16_expand_arith,
1730         xstormy16_output_shift, xstormy16_init_builtins): Likewise.
1731
1732 2005-05-10  Kazu Hirata  <kazu@cs.umass.edu>
1733
1734         * tree-outof-ssa.c (_elim_graph): Change the type of nodes and
1735         const_copies to VEC(tree,heap)*.
1736         (new_elim_graph, delete_elim_graph, elim_graph_size,
1737         elim_graph_add_node, eliminate_build, eliminate_phi): Use VEC
1738         instead of VARRAY.
1739
1740 2005-05-10  Joseph S. Myers  <joseph@codesourcery.com>
1741
1742         PR other/21052
1743         * doc/extend.texi (Type Attributes): Correct example syntax.
1744
1745 2005-05-09  Joseph S. Myers  <joseph@codesourcery.com>
1746
1747         PR c/21160
1748         * doc/invoke.texi (-Wuninitialized): Update documentation.
1749
1750 2005-05-09  Richard Earnshaw  <richard.earnshaw@arm.com>
1751
1752         * arm.c (const_ok_for_arm): Use a faster algorithm.
1753
1754 2005-05-09  David Edelsohn  <edelsohn@gnu.org>
1755
1756         PR target/21477
1757         * config/rs6000/rs6000.md (add_op2): New.
1758         (add<mode>3): Use it.
1759
1760 2005-05-09  Richard Earnshaw  <richard.earnshaw@arm.com>
1761
1762         * arm.c (arm_gen_constant): Add new heuristic for generating
1763         constant integers that can be expressed as the difference of two
1764         valid immediates.
1765
1766 2005-05-09  Roger Sayle  <roger@eyesopen.com>
1767
1768         * c-tree.h (parser_build_unary_op): New prototype.
1769         * c-typeck.c (parser_build_unary_op): New function to construct
1770         a unary operation in the C parser.
1771         * c-parser.c (c_parser_unary_expression):  Use the new function
1772         parser_build_unary_op when appropriate.
1773
1774 2005-05-09  Mark Mitchell  <mark@codesourcery.com>
1775
1776         PR 18655
1777         * dwarf2out.c (output_call_frame_info): Use DWARF2_FRAME_REG_OUT
1778         before outputting DWARF_FRAME_RETURN_COLUMN.
1779
1780 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1781
1782         * config/s390/s390.c: (s390_branch_condition_mask,
1783         s390_branch_condition_mnemonic, s390_extra_constraint_str,
1784         s390_const_ok_for_constraint_p, s390_expand_plus_operand,
1785         legitimize_pic_address, s390_emit_tls_call_insn,
1786         legitimize_tls_address, legitimize_tls_address,
1787         s390_expand_addcc, print_shift_count_operand, print_operand,
1788         addr_generation_dependency_p, annotate_constant_pool_refs,
1789         s390_split_branches, find_constant_pool_ref,
1790         replace_constant_pool_ref, s390_add_constant, s390_find_constant,
1791         s390_find_execute, s390_mainpool_start, s390_chunkify_start,
1792         s390_output_pool_entry, s390_function_value,
1793         s390_call_saved_register_used, s390_emit_call): Replace
1794         conditional aborts by gcc_assert and unconditional by gcc_unreachable.
1795         (s390_select_ccmode, s390_match_ccmode_set, s390_extract_part,
1796         s390_cannot_force_const_mem, s390_output_dwarf_dtprel,
1797         get_some_local_dynamic_name, s390_function_arg_size,
1798         s390_function_arg_advance, s390_function_arg,
1799         s390_expand_builtin, s390_gen_rtx_const_DI): Replace abort in
1800         default case by gcc_unreachable.
1801         * config/s390/s390.md: ("*cjump_31", "*icjump_31", "*jump31"): Replace
1802         conditional abort by gcc_assert.
1803         ("doloop_si31"): Replace abort in last else by gcc_unreachable.
1804         ("main_pool", "pool"): Replace unconditional abort by gcc_unreachable.
1805
1806 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1807
1808         * config/s390/s390.c: (s390_decompose_address,
1809         tls_symbolic_operand, legitimate_pic_operand_p,
1810         legitimate_constant_p, legitimate_reload_constant_p,
1811         s390_expand_plus_operand, legitimate_address_p,
1812         legitimate_la_operand_p, ): Remove 'register' from signature.
1813         (symbolic_reference_mentioned_p,
1814         tls_symbolic_reference_mentioned_p): Remove 'register' from local
1815         variable declarations.
1816         (legitimize_address): Remove 'register' from
1817         signature and local variable declarations.
1818
1819 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1820
1821         * config/s390/s390-protos.h: (s390_match_ccmode,
1822         s390_match_ccmode_set, reg_used_in_mem_p,
1823         symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
1824         legitimate_la_operand_p, preferred_la_operand_p,
1825         s390_short_displacement, addr_generation_dependency_p,
1826         legitimate_reload_constant_p, legitimate_address_p): Change return type
1827         into 'bool'.
1828         (s390_tm_ccmode): Change type of parameter "mixed" into 'bool'.
1829         * config/s390/s390.c: (s390_match_ccmode,
1830         symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
1831         legitimate_reload_constant_p): Change return type into 'bool'.
1832         (preferred_la_operand_p,legitimate_la_operand_p, legitimate_address_p):
1833         Likewise.  Additionally adapted comment.
1834         (s390_extra_constraint_p): Change Comment to reflect 'int' return type.
1835         (s390_tm_ccmode): Change type of parameter "mixed" into 'bool'.
1836         (s390_decompose_address): Change the type of the internal flags
1837         "pointer", "base_ptr", "indx_ptr", and the return value into 'bool'.
1838         (struct s390_address): Change type of "pointer" into bool.
1839         * config/s390/s390.md: ("*tmdi_reg", "*tmsi_reg", "tm<mode>_full"):
1840         Adapt calls for 's390_tm_ccmode' to the new signature.
1841
1842 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1843
1844         * config/s390/s390.c: (s390_match_ccmode_set,
1845         s390_branch_condition_mnemonic, s390_short_displacement,
1846         s390_decompose_address, get_thread_pointer, legitimize_tls_address,
1847         print_shift_count_operand, get_some_local_dynamic_name,
1848         get_some_local_dynamic_name_1, reg_used_in_mem_p,
1849         addr_generation_dependency_p, s390_split_branches,
1850         annotate_constant_pool_refs, find_constant_pool_ref,
1851         replace_constant_pool_ref, find_ltrel_base, replace_ltrel_base,
1852         s390_optimize_prologue, find_unused_clobbered_reg, s390_frame_area,
1853         s390_register_info, s390_frame_info, s390_init_frame_layout,
1854         s390_update_frame_layout, save_fpr, restore_fpr, save_gprs,
1855         restore_gprs, s390_function_arg_size, s390_function_arg_float,
1856         s390_init_machine_status, s390_assemble_integer, s390_handle_option,
1857         s390_encode_section_info, s390_cannot_force_const_mem,
1858         s390_delegitimize_address, s390_return_in_memory, s390_init_builtins,
1859         s390_expand_builtin, s390_output_mi_thunk, s390_safe_attr_type,
1860         s390_adjust_priority, s390_issue_rate,
1861         s390_first_cycle_multipass_dfa_lookahead, s390_cannot_copy_insn_p,
1862         s390_rtx_costs, s390_address_cost, s390_reorg, s390_valid_pointer_mode,
1863         s390_build_builtin_va_list, s390_gimplify_va_arg,
1864         s390_function_ok_for_sibcall, s390_call_saved_register_used,
1865         s390_pass_by_reference, s390_fixed_condition_code_regs,
1866         s390_cc_modes_compatible s390_mainpool_start,, s390_mainpool_finish,
1867         s390_mainpool_cancel, s390_chunkify_start, s390_chunkify_finish,
1868         s390_chunkify_cancel, s390_start_pool, s390_end_pool,
1869         s390_add_pool_insn, s390_find_pool, s390_add_constant,
1870         s390_find_constant, s390_add_execute, s390_find_execute,
1871         s390_execute_label, s390_execute_target, s390_dump_pool,
1872         s390_dump_execute, s390_alloc_pool, s390_free_pool): Remove prototypes.
1873         Move target macro definitions to the end of the file.  Move several
1874         functions within the file to assure correct compiling.
1875
1876 2005-05-09  Steven Bosscher  <stevenb@suse.de>
1877
1878         * calls.c (purge_reg_equiv_notes): Remove, fold into...
1879         (fixup_tail_calls): ...here.  Only look at insns between the
1880         start of the function and the FUNCTION_BEG insn note.
1881
1882         * gcse.c (one_cprop_pass): Fix typos in dumps.
1883
1884         * tree-ssa-operands.h (FOR_EACH_PHI_ARG): Fix typos.
1885
1886 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1887
1888         * config/s390/s390.h: Move xxx_REGNUM definitions to s390.md.
1889         * config/s390/s390.md: ("SIBCALL_REGNUM", "BASE_REGNUM",
1890         "RETURN_REGNUM", "CC_REGNUM", "TP_REGNUM"): New constants.
1891         Replace every occurrence of '(reg:<MODE> 33)' by '(reg:<MODE>
1892         CC_REGNUM)'.
1893         ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): Replace
1894         '(reg:<MODE> 36)' by '(reg:<MODE> TP_REGNUM)'.
1895         ("*sibcall_br", "*sibcall_value_br"): Replace '(reg:DI 1)' by '(reg:DI
1896         REG_SC)'.
1897
1898 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1899
1900         * config/s390/s390.md: ("gf") New mode attribute.
1901         ("fixuns_truncdfdi2", "fixuns_truncdfsi2", "fixuns_truncsfdi2",
1902         "fixuns_truncsfsi2"): Merge.
1903         ("fix_truncdfdi2", "fix_truncsfdi2"): Merge.
1904         ("fix_truncdfdi2_ieee", "fix_truncdfsi2_ieee", "fix_truncsfdi2_ieee",
1905         "fix_truncsfsi2_ieee"): Merge.
1906
1907 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1908
1909         * config/s390/s390.md: ("FPR") New mode macro.
1910         ("de", "dee"): New mode attributes.
1911         ("cmpdf", "cmpsf"): Merge.
1912         ("*cmpdf_ccs_0", "*cmpsf_ccs_0"): Merge.
1913         ("*cmpdf_ccs_0_ibm", "*cmpdf_ccs_0_ibm"): Merge.
1914         ("*cmpdf_ccs", "*cmpsf_ccs"): Merge.
1915         ("*cmpdf_ccs_ibm", "*cmpsf_ccs_ibm"): Merge.
1916         ("floatdidf2", "floatdisf2"): Merge.
1917         ("adddf3", "addsf3"): Merge.
1918         ("*adddf3", "*addsf3"): Merge.
1919         ("*adddf3_cc", "*addsf3_cc"): Merge.
1920         ("*adddf3_cconly", "*addsf3_cconly"): Merge.
1921         ("*adddf3_ibm", "*addsf3_ibm"): Merge.
1922         ("subdf3", "subsf3"): Merge.
1923         ("*subdf3", "*subsf3"): Merge.
1924         ("*subdf3_cc", "*subsf3_cc"): Merge.
1925         ("*subdf3_cconly", "*subsf3_cconly"): Merge.
1926         ("*subdf3_ibm", "*subsf3_ibm"): Merge.
1927         ("muldf3", "mulsf3"): Merge.
1928         ("*muldf3", "*mulsf3" "): Merge.
1929         ("*muldf3_ibm", "*mulsf3_ibm"): Merge.
1930         ("*fmadddf", "*fmaddsf"): Merge.
1931         ("*fmsubdf", "*fmsubsf"): Merge.
1932         ("divdf3", "divsf3"): Merge.
1933         ("*divdf3", "*divsf3"): Merge.
1934         ("*divdf3_ibm", "*divsf3_ibm"): Merge.
1935         ("negdf2", "negsf2"): Merge.
1936         ("*negdf2_cc", "*negsf2_cc"): Merge.
1937         ("*negdf2_cconly", "*negsf2_cconly"): Merge.
1938         ("*negdf2", "*negsf2"): Merge.
1939         ("*negdf2_ibm", "*negsf2_ibm"): Merge.
1940         ("absdf2", "abssf2"): Merge.
1941         ("*absdf2_cc", "*abssf2_cc"): Merge.
1942         ("*absdf2_cconly", "*abssf2_cconly"): Merge.
1943         ("*absdf2", "*abssf2"): Merge.
1944         ("*absdf2_ibm", "*abssf2_ibm"): Merge.
1945         ("*negabsdf2_cc", "*negabssf2_cc"): Merge.
1946         ("*negabsdf2_cconly", "*negabssf2_cconly"): Merge.
1947         ("*negabsdf2", "*negabssf2"): Merge.
1948         ("sqrtdf2", "sqrtsf2"): Merge.
1949
1950 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1951
1952         * config/s390/s390.c: (s390_adjust_priority): Adapt to changed
1953         attribute names.
1954         * config/s390/2084.md: ("x_fsimpd", "x_fsimps", "x_fdivd", "x_fdivs",
1955         "x_floadd", "x_floads", "x_fstored", "x_fstores"): Rename to
1956         ("x_fsimpdf", "x_fsimpsf", "x_fdivdf", "x_fdivsf", "x_floaddf",
1957         "x_floadsf", "x_fstoredf", "x_fstoresf") and replace 'type'
1958         attribute names.
1959         * config/s390/s390.md: ("type"): Rename "fsimpd, fsimps, floadd, floads,
1960         fstored, fstores, fmuld, fmuls, fdivd, fdivs, fsqrtd, fsqrts" to
1961         "fsimpdf, fsimpsf, floaddf, floadsf, fstoredf, fstoresf, fmuldf,
1962         fmulsf, fdivdf, fdivsf, fsqrtdf, fsqrtsf".
1963         ("*cmpdf_ccs_0", "*cmpdf_css_0_ibm", "*cmpdf_ccs",
1964         "*cmpdf_ccs_ibm", "*cmpsf_ccs_0", "*cmpsf_css_0_ibm",
1965         "*cmpsf_ccs", "*cmpsf_ccs_ibm", "*movdi_64", "*movdi_31",
1966         "*movsi_zarch", "*movsi_esa", "*movdf_64", "*movdf_31", "movsf",
1967         "*muldf3", "*muldf3_ibm", "*fmadddf", "*fmsubdf", "*mulsf3",
1968         "mulsf3_ibm", "*fmaddsf", "fmsubsf", "*divdf3", "*divdf3_ibm",
1969         "*negdf2_cc", "*negdf2_cconly", "*negdf2", "*negdf2_ibm",
1970         "*negsf2_cc", "*negsf2_cconly", "*negsf2", "*absdf2_cc",
1971         "*absdf2_cconly", "*absdf2", "*absdf2_ibm", "*abssf2_cc",
1972         "*abssf2_cconly", "*abssf2", "*abssf2_ibm", "*negabsdf2_cc",
1973         "*negabsdf2_cconly", "*negabsdf2", "*negabssf2_cc",
1974         "*negabssf2_cconly", "*negabssf2", "sqrtdf2", "sqrtsf2"): Rename
1975         'type' value.
1976         ("*divsf3"): Additionally rename second pattern to
1977         "*divsf3_ibm".
1978         ("truncdfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm",
1979         "*adddf3", "*adddf3_cc", "*adddf3_cconly", "*adddf3_ibm",
1980         "*addsf3", "*addsf3_cc", "*addsf3_cconly", "*subdf3",
1981         "subdf3_cc", "*subdf3_cconly", "*subdf3_ibm", "*subsf3",
1982         "subsf3_cc", "*subsf3_cconly", "*subsf3_ibm"): Merge identical
1983         'type values' and rename 'type' value.
1984         ("*addsf3"): Additionally rename second pattern to
1985         "*addsf3_ibm".
1986
1987 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1988
1989         * config/s390/s390.md: ("SHIFT"): New mode macro.
1990         ("lr", "shift"): New mode attributes.
1991         ("ashldi3", "lshrdi3"): Merge.
1992         ("*ashldi3_31", "*lshrdi3"_31): Merge.
1993         ("*ashldi3_64", "*lshrdi3"_64): Merge.
1994         ("ashlsi3", "lshrsi3"): Merge.
1995
1996 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
1997
1998         * config/s390/s390.md: ("DSI", "SCOND"): New mode
1999         macros.
2000         ("E", "g"): New mode attributes.
2001         ("*adddi3_alc_cc", "*addsi3_alc_cc"): Merge.
2002         ("*adddi3_alc", "*addsi3_alc"): Merge.
2003         ("*subdi3_slb_cc", "*subsi3_slb_cc"): Merge.
2004         ("*subdi3_slb", "*subsi3_slb"): Merge.
2005         ("adddicc", "addsicc"): Merge.
2006         ("*sconddi", "*scondsi"): Merge.
2007         ("*sconddi_neg", "*scondsi_neg"): Merge.
2008         ("sltu", "sgtu", "sleu", "sgeu"): Merge.
2009         ("negdi2", "negsi2"): Extract expander pattern from
2010         "negsi2" and merge with "negdi2".
2011         ("*negdi2"): Merge with instruction pattern of "negsi2".
2012         ("*negdi2_cc", "*negsi2_cc"): Merge.
2013         ("*negdi2_cconly", "*negsi2_cconly"): Merge.
2014         ("rotldi3", "rotlsi3"): Merge.
2015
2016 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
2017
2018         * config/s390/s390.md: ("hc"): New mode attribute.
2019         ("extendhidi2", "extendqidi2"): Merge.
2020         ("*extendhidi2", "*extendqidi2"): Merge.
2021         ("extendhisi2", "extendqisi2"): Merge.
2022         ("zero_extendhidi2", "zero_extendqidi2"): Merge.
2023         ("*zero_extendhidi2", "*zero_extendqidi2"): Merge.
2024         Merged 2 define_split.
2025         ("*zero_extendhisi2", "*zero_extendqisi2"): Merge.
2026         ("*zero_extendhisi2_64", "*zero_extendqisi2_64"): Merge.
2027
2028 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
2029
2030         * config/s390/s390.md: ("COMPARE"): New mode macro.
2031         ("beq", "bne", "bgt", "bgtu", "blt", "bltu", "bge", "bgeu",
2032         "ble", "bleu", "bunordered", "bordered", "buneq", "bunlt",
2033         "bungt", "bunle", "bunge", "bltgt"): Merge.
2034
2035 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
2036
2037         * config/s390/s390.md: ("INT"): New mode macro.
2038         ("one_cmpldi2", "one_cmplsi2", "one_cmplhi2", "one_cmplqi2"):
2039         Merge.
2040
2041 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
2042
2043         * config/s390/s390.md: ("GPR", "P"): New mode macros.
2044         ("cmpdi", "cmpsi"): Merge.
2045         ("strlendi", "strlensi"): Merge.
2046         ("*strlendi", "*strlensi"): Merge.
2047         ("movmemdi", "movmemsi"): Merge.
2048         ("clrmemdi", "clrmemsi"): Merge.
2049
2050 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
2051
2052         * config/s390/s390.md: ("HQI"): New mode macro.
2053         ("icm_lo", "icm_hi", "max_uint"): New mode attributes.
2054         ("*tmhi_full", "*tmqi_full"): Merge.
2055         ("*tsthiCCT", "*tstqiCCT"): Merge.
2056         ("*tsthi", "*tstqi"): Merge.
2057         ("*tsthi_cconly", "tstqi_cconly"): Merge.
2058         ("*sethighhisi", "*sethighqisi"): Merge.
2059
2060 2005-05-09  Kazu Hirata  <kazu@cs.umass.edu>
2061
2062         * crtstuff.c, integrate.h, tree-scalar-evolution.h,
2063         config/alpha/unicosmk.h, config/arc/arc.md,
2064         config/arm/bpabi.h, config/arm/coff.h, config/arm/elf.h,
2065         config/arm/ieee754-df.S, config/arm/ieee754-sf.S,
2066         config/arm/netbsd.h, config/arm/pe.c, config/arm/pe.h,
2067         config/arm/semi.h, config/arm/uclinux-elf.h,
2068         config/arm/wince-pe.h, config/fr30/fr30.c,
2069         config/rs6000/altivec.h: Update copyright.
2070
2071 2005-05-09  Nathan Sidwell  <nathan@codesourcery.com>
2072
2073         * config/pdp11/pdp11.c (pdp11_output_function_prologue): Use
2074         gcc_assert and gcc_unreachable as appropriate.
2075         (pdp11_output_function_epilogue, output_move_double,
2076         output_move_quad, print_operand_address, output_jump,
2077         output_addr_const_pdp11): Likewise.
2078         * config/pdp11/pdp11.h (FUNCTION_PROFILER,
2079         ASM_OUTPUT_ALIGN): Likewise.
2080         * config/pdp11/pdp11.md: Likewise.
2081         (extendhisi2, subhi3, subqi3): Likewise.
2082
2083 2005-05-09  David Edelsohn  <edelsohn@gnu.org>
2084
2085         PR middle-end/21237
2086         * dojump.c (do_jump, MINUS_EXPR): Build NE_EXPR and fall through
2087         to NE_EXPR case.
2088
2089 2005-05-09  Kazu Hirata  <kazu@cs.umass.edu>
2090
2091         * config/ia64/ia64.c: Fix a comment typo.
2092
2093 2005-05-09  Richard Earnshaw  <rearnsha@arm.com>
2094
2095         PR target/21397
2096         * arm.c (ARM_OPT_SET_CPU, ARM_OPT_SET_ARCH, ARM_OPT_SET_TUNE): Define.
2097         (arm_override_options): Use them instead of manifest constants.  Don't
2098         allow -march to override the -mtune setting.
2099
2100 2005-05-09  Nathan Sidwell  <nathan@codesourcery.com>
2101
2102         * config/iq2000/iq2000.c (abort_with_insn): Use fancy_abort.
2103         (gen_int_relational): Use gcc_unreachable and gcc_assert as necessary.
2104         (function_arg_advance, function_arg, save_restore_insns,
2105         iq2000_expand_prologue, iq2000_output_conditional_branch,
2106         expand_one_builtin, print_operand):
2107         * config/iq2000/iq2000.md (tablejump): Likewise.
2108
2109 2005-05-09  David Ung  <davidu@mips.com>
2110
2111         * config/mips/mips.h (processor_type): Add names for the 24K.
2112         * config/mips/mips.c (mips_cpu_info_table): Add names for the 24K
2113         processor family.
2114         * config/mips/mips.md (cnv_mode): New attribute for recording the
2115         conversion types of float convert insns.
2116         (cpu): Add 24k and 24kx.
2117         (include): Include 24k.md file.
2118         (truncdfsf2, extendsfdf2, fix_truncdfsi2_insn, fix_truncdfsi2_macro)
2119         (fix_truncdfdi2, fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2)
2120         (floatdisf2): Setup cnv_mode.
2121         (fix_truncsfsi2_insn, fix_truncsfsi2_macro): Changed mode to SF and
2122         setup cnv_mode.
2123         * config/mips/24k.md: New file, contains 24k DFA pipeline
2124         description.
2125
2126 2005-05-09  Nathan Sidwell  <nathan@codesourcery.com>
2127
2128         * config/sh/sh.c (print_operand_address): Use gcc_assert and
2129         gcc_unreachable as appropriate.
2130         (print_operand, prepare_move_operands, prepare_scc_operands,
2131         output_movedouble, output_branch, shift_insns_rtx, gen_shifty_op,
2132         gen_shl_and, shl_sext_kind, gen_datalabel_ref, dump_table,
2133         fixup_mova, gen_far_branch, sh_reorg, split_branches,
2134         final_prescan_insn, output_stack_adjust, sh_expand_epilogue,
2135         sh_set_return_address, sh_setup_incoming_varargs,
2136         initial_elimination_offset, sh_pch_valid_p, get_free_reg,
2137         sh_expand_builtin, sh_output_mi_thunk, extract_sfunc_addr,
2138         check_use_sfunc_addr): Likewise.
2139         * config/sh/netbsd-elf.h (FUNCTION_PROFILER): Likewise.
2140         * config/sh/sh.h (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
2141         * config/sh/symbian.c (sh_symbian_mark_dllexport,
2142         sh_symbian_mark_dllimport): Likewise.
2143         * config/sh/sh.md: Likewise.
2144         (movdicc, call_pop, call_value_pop, casesi_worker_1,
2145         casesi_worker_2, casesi_shift_media, casesi_load_media,
2146         return_media): Likewise.
2147
2148 2005-05-08  Roger Sayle  <roger@eyesopen.com>
2149
2150         PR inline-asm/8788
2151         * stmt.c (expand_asm_operands): Avoid calling force_reg on BLKmode
2152         operands.
2153
2154 2005-05-08  Richard Henderson  <rth@redhat.com>
2155
2156         * config/alpha/alpha.c (adjust_address): Fix typo last change.
2157
2158 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
2159
2160         * config/m68hc11/m68hc11.h (REG_VALID_P): A regno must be >= 0
2161         and -1 can happen in reg_renumber when no hard register is assigned.
2162
2163 2005-05-08  Steven Bosscher  <stevenb@suse.de>
2164             Kazu Hirata  <kazu@cs.umass.edu>
2165
2166         PR tree-optimization/14841, tree-optimization/15838
2167         * tree-ssa-ccp.c (fold_const_aggregate_ref): New.
2168         (evaluate_stmt): Call it.
2169
2170 2005-05-08  Jakub Jelinek  <jakub@redhat.com>
2171
2172         * config/ia64/ia64.c (ia64_override_options): Don't set
2173         ia64_flag_var_tracking and clear flag_var_tracking here...
2174         (ia64_file_start): ... but here.
2175
2176 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
2177
2178         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use gcc_assert
2179         and gcc_unreachable as appropriate.
2180         (expand_prologue, expand_epilogue, m68hc11_gen_lowpart,
2181         m68hc11_gen_highpart, print_operand, print_operand_address,
2182         m68hc11_expand_compare, m68hc11_expand_compare_and_branch,
2183         m68hc11_gen_movhi): Likewise.
2184         * config/m68hc11/m68hc11.h (HARD_X_REGNUM): Reword comment.
2185         * config/m68hc11/m68hc11.md: Reword comment.
2186
2187 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
2188
2189         PR target/21281
2190         * config/m68hc11/predicates.md (splitable_operand): An immediate is
2191         allowed.
2192
2193 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
2194
2195         * config/m68hc11/predicates.md (reg_or_some_mem_operand): Do not allow
2196         the 68HC12 address indirect addressing mode as it is not supported by
2197         bset and bclr.
2198         * config/m68hc11/m68hc11-protos.h
2199         (m68hc11_valid_addressing_p): Declare.
2200         (m68hc11_add_mode): Declare.
2201         * config/m68hc11/m68hc11.c (m68hc11_valid_addressing_p): Rename from
2202         register_indirect_p and export it.
2203         (m68hc11_z_replacement): Use emit_insn_after when adding the save Z
2204         instruction so that it is part of the good BB.
2205         (m68hc11_gen_movhi): Fix invalid generation of indexed indirect
2206         addressing with movw.
2207         (m68hc11_gen_movqi): Use pula and pulb instead of lda and ldb for
2208         68HC12.
2209         * config/m68hc11/m68hc11.h (ADDR_STRICT, ADDR_INCDEC, ADDR_INDEXED,
2210         ADDR_OFFSET, ADDR_INDIRECT, ADDR__CONST): Moved from m68hc11.c.
2211         * config/m68hc11/m68hc11.md ("movhi_const0"): Use this pattern only
2212         for 68HC11.
2213         ("*movhi_68hc12"): Handle movhi_const0.
2214         ("*subhi3", "subqi3"): Use general_operand for operand 1.
2215         ("*subhi3_zext"): Likewise.
2216
2217 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
2218
2219         PR target/19051
2220         * config/m68hc11/m68hc11.md ("mulqi3"): Use general_operand for
2221         operand 1 and fix constraints.
2222         ("mulqihi3"): Use general_operand for operand 2.
2223
2224 2005-05-08  Julian Brown  <julian@codesourcery.com>
2225             H.J. Lu  <hongjiu.lu@intel.com>
2226             Paul Brook  <paul@codesourcery.com>
2227
2228         * configure.ac: Set ld_vers_major, ld_vers_minor and ld_vers_patch for
2229         GNU linker. Support linker version x.x.x.x.x. Require GNU linker
2230         20050308/2.16.0 or newer for comdat group.
2231         * configure: Regenerated.
2232         * config.in: Regenerated.
2233         * varasm.c (default_function_rodata_section): Put .rodata section in
2234         COMDAT group when necessary.
2235         (default_elf_asm_named_section): Rename HAVE_GAS_COMDAT_GROUP to
2236         HAVE_COMDAT_GROUP.
2237         (default_unique_section_1): Don't use .gnu.linkonce when COMDAT is
2238         available.
2239
2240 2005-05-08  Kazu Hirata  <kazu@cs.umass.edu>
2241
2242         * tree-dfa.c (referenced_vars, add_referenced_var): Use VEC
2243         instead of VARRAY.
2244         * tree-flow.h (num_referenced_var, referenced_var): Likewise.
2245         * tree-into-ssa.c (mark_def_site_blocks): Likewise.
2246         * tree-ssa.c (init_tree_ssa, delete_tree_ssa): Likewise.
2247         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
2248
2249 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
2250
2251         PR target/16925
2252         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Handle split of
2253         64-bit constants on 64-bit hosts.
2254         (m68hc11_split_logical): Simplify.
2255         (m68hc11_split_move): Likewise.
2256
2257 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
2258             Paolo Bonzini  <bonzini@gnu.org>
2259
2260         * Makefile.in (cs-tconfig.h): Pass USED_FOR_TARGET to mkconfig.sh
2261         * aclocal.m4 (GCC_TARGET_TEMPLATE, AH_TEMPLATE): New.
2262         * configure.ac (enable_checking): Fix typos in runtime_checking.
2263         (ENABLE_RUNTIME_CHECKING): Mark as target template.
2264         (xm_file): Prepend auto-host.h
2265         (HAVE_GAS_HIDDEN, HAVE_LD_EH_FRAME_HDR): Mark as target template.
2266         * mkconfig.sh: Do not automatically define USED_FOR_TARGET in
2267         tconfig.h.
2268         * crtstuff.c: Do not include auto-host.h.
2269         (IN_LIBGCC2): Do not define.
2270         * gcov-io.h: Include tconfig.h, not auto-host.h.
2271         * libgcc2.c: Do not include auto-host.h.
2272         (abort): Do not undefine.
2273         * libgcov.c: Remove unneeded comment about config.h.
2274         * unwind-dw2-fde-glibc.c: Do not inlude auto-host.h.
2275         * config.in, configure: Regenerated.
2276
2277 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
2278             Falk Hueffner  <falk@debian.org>
2279
2280         * config/alpha/alpha.c (tls_symbolic_operand_1): Use gcc_assert
2281         and gcc_unreachable as appropriate.
2282         (get_aligned_mem, get_unaligned_address,
2283         alpha_emit_set_long_const, alpha_emit_conditional_branch,
2284         alpha_emit_setcc, alpha_emit_conditional_move,
2285         alpha_lookup_xfloating_lib_func, alpha_compute_xfloating_mode_arg,
2286         alpha_emit_xfloating_libcall, alpha_split_tfmode_pair,
2287         alpha_expand_unaligned_load, alpha_expand_block_move,
2288         alpha_expand_zap_mask, get_trap_mode_suffix,
2289         get_round_mode_suffix, get_some_local_dynamic_name,
2290         print_operand_address, function_arg, alpha_return_in_memory,
2291         function_value, alpha_expand_builtin,
2292         alpha_initial_elimination_offset, alpha_expand_epilogue,
2293         summarize_insn, alpha_handle_trap_shadows, alphaev5_insn_pipe,
2294         alphaev5_next_group, alpha_align_insns,
2295         unicosmk_initial_elimination_offset, unicosmk_unique_section,
2296         unicosmk_ssib_name): Likewise.
2297         * config/alpha/alpha.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
2298         * config/alpha/unicosmk.h (TRAMPOLINE_TEMPLATE,
2299         ASM_OUTPUT_ADDR_DIFF_ELT, ASM_OUTPUT_ADDR_DIFF_VEC): Likewise.
2300         * config/alpha/vms.h (INITIAL_ELIMINATION_OFFSET,
2301         ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
2302         * config/alpha/alpha.md (*divmodsi_internal_er,
2303         *divmoddi_internal_er, ashldi3, *insxl, sibcall, call_osf,
2304         call_nt, call_umk, call_vms, call_value, sibcall_value,
2305         call_value_osf, call_value_nt, call_value_vms, call_value_umk,
2306         *call_vms_1, *movmemdi_1, *clrmemdi_1, *call_value_vms_1): Likewise.
2307         * config/alpha/predicates.md (input_operand): Likewise.
2308
2309 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
2310
2311         * config/frv/frv.c (frv_default_flags_for_cpu): Use gcc_assert and
2312         gcc_unreachable, as appropriate.
2313         (frv_function_prologue, frv_alloc_temp_reg,
2314         frv_initial_elimination_offset, frv_expand_block_move,
2315         frv_expand_block_clear, frv_print_operand_jump_hint,
2316         frv_legitimize_tls_address, unspec_got_name, frv_emit_move,
2317         frv_emit_movsi, frv_split_cond_move, frv_split_minmax,
2318         frv_ifcvt_modify_insn, frv_ifcvt_modify_final,
2319         frv_adjust_field_align, frv_insn_unit, frv_cond_flags,
2320         frv_sort_insn_group, frv_reorder_packet, frv_matching_accg_mode,
2321         frv_in_small_data_p, frv_asm_out_constructor,
2322         frv_asm_out_destructor, frv_output_dwarf_dtprel): Likewise.
2323         * config/frv/frv.md (reload_incc_fp, *cond_exec_si_binary1,
2324         *cond_exec_si_binary2, *cond_exec_si_divide, *cond_exec_si_unary1,
2325         *cond_exec_sf_conv, *cond_exec_sf_add, call, sibcall, call_value,
2326         sibcall_value, casesi): Likewise.
2327
2328         * config/mn10300/mn10300.c (print_operand): Use gcc_assert and
2329         gcc_unreachable as appropriate.
2330         (print_operand_address, mn10300_print_reg_list, expand_prologue,
2331         expand_epilogue, notice_update_cc, initial_offset,
2332         mn10300_address_cost_1): Likewise.
2333         * config/mn10300/mn10300.md: Likewise.
2334         (absdf2, abssf2, negdf2, negsf2): Likewise.
2335
2336 2005-05-08  Richard Sandiford  <rsandifo@redhat.com>
2337
2338         PR target/21416
2339         * config/mips/mips.c (mips_emit_compare): Don't reverse UNGE and UNGT
2340         comparisons.
2341         * config/mips/mips.md (swapped_fcond): New code macro and attribute.
2342         (sgt_<mode>, sge_<mode>): Generalize to all members of swapped_fcond,
2343         including sunge_<mode> and sungt_<mode>.
2344
2345 2005-05-08  Richard Sandiford  <rsandifo@redhat.com>
2346
2347         * integrate.h (get_hard_reg_initial_val): Change type of register
2348         parameter from int to unsigned int.
2349         (has_hard_reg_initial_val): Likewise.
2350         * integrate.c (get_hard_reg_initial_val): Likewise.
2351         (has_hard_reg_initial_val): Likewise.  Remove cast to unsigned int.
2352
2353 2005-05-08  Kazu Hirata  <kazu@cs.umass.edu>
2354
2355         * except.c (eh_status): Change the type of ttype_data to
2356         VEC(tree,gc)*.
2357         (add_ttypes_entry, assign_filter_values,
2358         output_function_exception_table): Use VEC instead of VARRAY.
2359
2360 2005-05-07  David Edelsohn  <edelsohn@gnu.org>
2361
2362         * config/rs6000/rs6000.md (popcount<mode>2): Fix non-C90 constant.
2363
2364 2005-05-07  Paul Brook  <paul@codesourcery.com>
2365
2366         * Makefile.in: Fix dependencies.
2367         (GCOV_IO_H, VARRAY_H): Set.
2368
2369 2005-05-07  Anthony Green  <green@redhat.com>
2370
2371         PR bootstrap/21403
2372         * configure.ac (STMP_FIXPROTO): Fix [ ] consumption problem in
2373         x$STMP_FIXPROTO test.
2374         * configure: Rebuilt.
2375
2376 2005-05-07  Joseph S. Myers  <joseph@codesourcery.com>
2377
2378         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Do not define
2379         inappropriate feature test macros if flag_iso.
2380
2381 2005-05-07  Joseph S. Myers  <joseph@codesourcery.com>
2382
2383         * config/ia64/hpux.h (NO_IMPLICIT_EXTERN_C): Define.
2384
2385 2005-05-07  Hans-Peter Nilsson  <hp@axis.com>
2386
2387         PR target/21441
2388         * config/cris/cris.md ("*movdi_insn", "*mov_sidesisf_biap")
2389         ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
2390         Handle moved operand being in special register.
2391         ("smulsi3_highpart", "umulsi3_highpart"): Change .error into
2392         presumed working insn.
2393         (mover2side): Add FIXME.
2394
2395 2005-05-07  Richard Sandiford  <rsandifo@redhat.com>
2396
2397         * integrate.c (get_func_hard_reg_initial_val): Delete.
2398         (has_func_hard_reg_initial_val): Delete.
2399         (get_hard_reg_initial_val): Inline the old implementation of
2400         get_func_hard_reg_initial_val.  Use has_hard_reg_initial_val
2401         instead of has_func_hard_reg_initial_val to test for an existing
2402         pseudo.  Only create an rtx if a new initial value entry is needed.
2403         (has_hard_reg_initial_val): Scan the initial value list directly.
2404         Don't create an rtx.
2405
2406 2005-05-07  David Edelsohn  <edelsohn@gnu.org>
2407
2408         * config.gcc ({powerpc,rs6000}-ibm-aix*): Remove rs6000/aix.opt
2409         from extra_options.
2410         * config.in (HAVE_AS_POPCNTB): New.
2411         * configure.ac (HAVE_AS_MFCRF): Add .machine "pwr5" to AIX test.
2412         (HAVE_AS_POPCNTB): New.
2413         * configure: Regenerated.
2414         * config/rs6000/aix.h (TARGET_XL_COMPAT): Delete.
2415         * config/rs6000/rs6000.c (rs6000_override_options, power5): Add
2416         MASK_POPCNTB.  Uncomment rs6000_sched_restricted_insns_priority
2417         and rs6000_sched_costly_dep.
2418         * config/rs6000/rs6000.h (TARGET_POPCNTB): New.
2419         (TARGET_XL_COMPAT): Delete.
2420         * config/rs6000/rs6000.md (UNSPEC_POPCNTB): New.
2421         (popcount<mode>2): New.
2422         (popcntb<mode>2): New.
2423         * config/rs6000/rs6000.opt (mpopcntb): New.
2424
2425         * opt-functions.awk (var_set): Emit OPTION_MASK_ for InverseMask
2426         if variable name exists.
2427
2428 2005-05-07  Matt Kraai  <kraai@ftbfs.org>
2429
2430         * Makefile.in (c-gimplify.o): Depend on $(RTL_H) instead of rtl.h.
2431
2432 2005-05-07  Richard Henderson  <rth@redhat.com>
2433
2434         PR target/21412
2435         * config/rs6000/rs6000.c (rs6000_emit_move): Look for tls addresses
2436         with constant offsets.
2437
2438 2005-05-07  Nathan Sidwell  <nathan@codesourcery.com>
2439
2440         * config/v850/v850.c (print_operand): Use gcc_assert and
2441         gcc_unreachable, as appropriate.
2442         (print_operand_address, v850_handle_data_area_attribute,
2443         v850_encode_data_area, construct_restore_jr, construct_save_jarl,
2444         v850_insert_attributes, construct_prepare_instruction): Likewise.
2445         * config/v850/v850.h (INITIAL_ELIMINATION_OFFSET): Likewise.
2446         * config/v850/v850.md (movsicc, *sasf_1): Likewise.
2447
2448 2005-05-07  Kazu Hirata  <kazu@cs.umass.edu>
2449
2450         * tree-ssa-loop-ivcanon.c, config/i386/i386.c,
2451         config/rs6000/rs6000.h: Fix comment typos.
2452
2453 2005-05-07  Richard Sandiford  <rsandifo@redhat.com>
2454
2455         * doc/invoke.texi: Remove documentation for MIPS' -mint64 option.
2456         * config/mips/mips.c (TARGET_SCALAR_MODE_SUPPORTED_P): Delete.
2457         (mips_scalar_mode_supported_p): Delete.
2458
2459 2005-05-06  Eric Christopher  <echristo@redhat.com>
2460
2461         * config/mips/mips.opt: Remove -mint64 option.
2462         * config/mips/mips.c (override_options): Remove -mint64
2463         handling.
2464         * config/mips/mips.h (INT_TYPE_SIZE): Define to 32.
2465         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Remove
2466         64-bit integer handling.
2467         * doc/invoke.texi (Option Summary): Remove -mint64 for
2468         mips.
2469
2470 2005-05-06  Zdenek Dvorak  <dvorakz@suse.cz>
2471
2472         PR tree-optimization/19401
2473         * tree-flow.h (tree_unroll_loops_completely): Declaration changed.
2474         * tree-ssa-loop-ivcanon.c (enum unroll_level): New.
2475         (estimated_unrolled_size): New function.
2476         (try_unroll_loop_completely, canonicalize_loop_induction_variables,
2477         tree_unroll_loops_completely): Always unroll loops if the code size
2478         does not increase.
2479         * tree-ssa-loop.c (tree_complete_unroll): Indicate whether all
2480         loops should be unrolled completely.
2481         (gate_tree_complete_unroll): Run complete unrolling unconditionally.
2482
2483 2005-05-06  Zdenek Dvorak  <dvorakz@suse.cz>
2484
2485         PR rtl-optimization/21254
2486         * loop-iv.c (iv_number_of_iterations): Simplify infiniteness
2487         assumptions for loops that otherwise do not roll.
2488         (find_simple_exit): Prefer # of iterations that is guaranteed
2489         not to be infinite.
2490         * loop-unroll.c (decide_peel_once_rolling,
2491         decide_peel_completely): Check whether the loop is infinite.
2492
2493 2005-05-06  Pat Haugen  <pthaugen@us.ibm.com>
2494
2495         * config/rs6000/sysv4.opt: Fix typo.
2496
2497 2005-05-06  Denis Vlasenko  <vda@port.imtp.ilyichevsk.odessa.ua>
2498             Jakub Jelinek  <jakub@redhat.com>
2499
2500         PR target/21329
2501         * config/i386/i386.c (ix86_expand_movmem): Don't use rep; movsb
2502         for -Os if (movsl;)*(movsw;)?(movsb;)? sequence is shorter.
2503         Don't use rep; movs{l,q} if the repetition count is really small,
2504         instead use a sequence of movs{l,q} instructions.
2505
2506 2005-05-06  Jeff Law  <law@redhat.com>
2507
2508         PR tree-optimization/21380
2509         * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
2510         thread through a block with no preds.
2511
2512 2005-05-06  Kazu Hirata  <kazu@cs.umass.edu>
2513
2514         * tree-ssa-operands.c (clobbered_v_may_defs, clobbered_vuses,
2515         ro_call_vuse, fini_ssa_operands, add_call_clobber_ops,
2516         add_call_read_ops): Use VEC instead of VARRAY.
2517
2518 2005-05-06  Nathan Sidwell  <nathan@codesourcery.com>
2519
2520         * config/mcore/mcore.c (mcore_print_operand_address): Use
2521         gcc_assert and gcc_unreachable as appropriate.
2522         (mcore_print_operand, mcore_gen_compare_reg, mcore_output_call,
2523         mcore_output_andn, output_inline_const, mcore_output_move,
2524         mcore_output_movedouble, mcore_expand_block_move,
2525         layout_mcore_frame, mcore_initial_elimination_offset,
2526         mcore_expand_prolog, mcore_mark_dllexport,
2527         mcore_mark_dllimport): Likewise.
2528         * config/mcore/mcore.h (switch_to_section): Likewise.
2529         * config/mcore/mcore.md: Likewise.
2530
2531 2005-05-06  Aldy Hernandez  <aldyh@redhat.com>
2532
2533         * config/rs6000/linux64.h: Remove MASK_PROFILE_KERNEL, and
2534         TARGET_PROFILE_KERNEL.
2535
2536         * config/rs6000/rs6000.c (output_profile_hook): Add comment to
2537         TARGET_PROFILE_KERNEL use.
2538
2539 2005-05-06  Nathan Sidwell  <nathan@codesourcery.com>
2540
2541         * config/m32r/m32r.c (m32r_encode_section_info): Use gcc_assert
2542         and gcc_unreachable, as appropriate.
2543         (gen_compare, gen_split_move_double, m32r_setup_incoming_varargs,
2544         m32r_expand_prologue, m32r_output_function_epilogue,
2545         m32r_legitimize_pic_address, m32r_print_operand_address,
2546         emit_cond_move, m32r_function_symbol,
2547         m32r_output_block_move): Likewise.
2548         * config/m32r/m32r.h (INITIAL_ELIMINATION_OFFSET): Likewise.
2549         * config/m32r/m32r.md ( *movsi_insn, *zero_branch_insn,
2550         *rev_zero_branch_insn): Likewise.
2551
2552 2005-05-06  Jakub Jelinek  <jakub@redhat.com>
2553
2554         PR c++/20961
2555         * varasm.c (merge_weak): Remove NEWDECL from WEAK_DECLS chain
2556         if both NEWDECL and OLDDECL are already weak.
2557
2558 2005-05-06  Richard Sandiford  <rsandifo@redhat.com>
2559
2560         * config/rs6000/sysv4.h (EXTRA_SUBTARGET_SWITCHES): Delete.
2561
2562 2005-05-05  J"orn Rennecke  <joern.rennecke@st.com>
2563             Kaz Kojima  <kkojima@gcc.gnu.org>
2564
2565         * config/sh/sh.c (sh_builtin_saveregs): Use copy_to_mode_reg
2566         and plus_constant.
2567
2568 2005-05-05  Aldy Hernandez  <aldyh@redhat.com>
2569             David Edelsohn  <edelsohn@gnu.org>
2570
2571         * config.gcc: Add .opt magic for the rs6000 ports.
2572
2573         * doc/invoke.texi: Document -mabi= option properly.  Document
2574         -misel and -mno-sel.  Document -mspe and -mno-spe.  Document
2575         -mvrsave and -mno-vrsave.  Document deprecation of -mspe= and
2576         -misel=.
2577
2578         * config/rs6000/aix.h: Remove XL_COMPAT stuff.  Remove
2579         SUBTARGET_SWITCHES and SUBSUBTARGET_SWITCHES.  Define
2580         TARGET_XL_COMPAT.
2581
2582         * config/rs6000/aix.opt: New.
2583         * config/rs6000/aix41.opt: New.
2584         * config/rs6000/aix64.opt: New.
2585         * config/rs6000/darwin.opt: New.
2586         * config/rs6000/linux64.opt: New.
2587         * config/rs6000/rs6000.opt: New.
2588         * config/rs6000/sysv4.opt: New.
2589
2590         * config/rs6000/sysv4.h: Delete definitions of MASK_* and
2591         associated TARGET_*.  Remove SUBTARGET_OPTIONS,
2592         SUBTARGET_SWITCHES.
2593         Define TARGET_USES_SYSV4_OPT.
2594         * config/rs6000/aix41.h: Remove SUBSUBTARGET_SWITCHES.
2595         * config/rs6000/aix43.h: Remove SUBSUBTARGET_SWITCHES.  Define
2596         TARGET_USES_AIX64_OPT.
2597         * config/rs6000/aix51.h: Same.
2598         * config/rs6000/aix52.h: Same.
2599         * config/rs6000/darwin.h: Remove SUBTARGET_SWITCHES,
2600         MASK_MACHO_DYNAMIC_NO_PIC, TARGET_MACHO_DYNAMIC_NO_PIC.
2601         Use TARGET_ALTIVEC_VRSAVE instead of rs6000_altivec_vrsave.
2602         Define TARGET_DYNAMIC_NO_PIC as TARGET_MACHO_DYNAMIC_NO_PIC.
2603         * config/rs6000/linux64.h: Use
2604         rs6000_explicit_options.  Remove EXTRA_SUBTARGET_SWITCHES.
2605
2606         * config/rs6000/rs6000.c: Remove definitions of
2607         rs6000_sched_restricted_insns_priority,
2608         rs6000_long_double_size_string, rs6000_altivec_vrsave,
2609         rs6000_altivec_vrsave_string, rs6000_isel, rs6000_spe,
2610         rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
2611         rs6000_abi_string, rs6000_warn_altivec_long, rs6000_longcall,
2612         rs6000_alignment_string.  Define rs6000_explicit_options.
2613         (rs6000_parse_abi_options): Remove.
2614         (rs6000_parse_alignment_option): Remove.
2615         (rs6000_parse_float_gprs_option): Remove.
2616         (rs6000_handle_option): New.  Define TARGET_HANDLE_OPTION.  Define
2617         TARGET_DEFAULT_TARGET_FLAGS.
2618         (rs6000_override_options): Revamp to use new .opt machinery.
2619
2620         * config/rs6000/rs6000.h: Remove old MASK_* and TARGET_* in favor
2621         of new .opt machinery.  Remove target_flags.  Redefine
2622         TARGET_MFCRF and TARGET_POWERPC64.  Remove TARGET_SWITCHES,
2623         SUBTARGET_SWITCHES, TARGET_OPTIONS, SUBTARGET_OPTIONS,
2624         rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
2625         rs6000_altivec_vrsave_string, rs6000_altivec_vrsave,
2626         rs6000_longcall_switch, rs6000_default_long_calls,
2627         rs6000_sched_costly_dep_str, rs6000_sched_costly_dep,
2628         rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch, and
2629         TARGET_ALTIVEC_VRSAVE.
2630
2631 2005-05-05  Ralf Corsepius  <ralf.corsepius@rtems.org>
2632
2633         * config.gcc (hppa1.1-*-rtems*): Remove.
2634         * config/pa/rtems.h: Remove.
2635
2636 2005-05-05  Ralf Corsepius  <ralf.corsepius@rtems.org>
2637
2638         * config/rs6000/t-rtems (MULTILIB_NEW_EXCEPTIONS_ONLY):
2639         Exclude roe/603e multilib variants.
2640
2641 2005-05-04  Denis Chertykov  <denisc@overta.ru>
2642
2643         PR target/21284
2644         * config/avr/avr.c (avr_output_addr_vec_elt): Use special section
2645         for output.
2646
2647 2005-05-05  Richard Sandiford  <rsandifo@redhat.com>
2648
2649         * config.gcc (arm*-wince-pe*, arm-*-pe*, strongarm-*-pe): Add
2650         arm/pe.opt to $extra_options.
2651         * config/arm/arm.h (target_flags, target_fpu_name, target_fpe_name)
2652         (target_float_abi_name, target_float_switch, target_abi_name)
2653         (ARM_FLAG_APCS_FRAME, ARM_FLAG_POKE, ARM_FLAG_FPE, ARM_FLAG_APCS_STACK)
2654         (ARM_FLAG_APCS_FLOAT, ARM_FLAG_APCS_REENT, ARM_FLAG_BIG_END)
2655         (ARM_FLAG_INTERWORK, ARM_FLAG_LITTLE_WORDS, ARM_FLAG_NO_SCHED_PRO)
2656         (ARM_FLAG_ABORT_NORETURN, ARM_FLAG_SINGLE_PIC_BASE)
2657         (ARM_FLAG_LONG_CALLS, ARM_FLAG_THUMB, THUMB_FLAG_BACKTRACE)
2658         (THUMB_FLAG_LEAF_BACKTRACE, THUMB_FLAG_CALLEE_SUPER_INTERWORKING)
2659         (THUMB_FLAG_CALLER_SUPER_INTERWORKING, CIRRUS_FIX_INVALID_INSNS)
2660         (TARGET_APCS_FRAME, TARGET_POKE_FUNCTION_NAME, TARGET_FPE)
2661         (TARGET_APCS_STACK, TARGET_APCS_FLOAT, TARGET_APCS_REENT)
2662         (TARGET_BIG_END, TARGET_INTERWORK, TARGET_LITTLE_WORDS)
2663         (TARGET_NO_SCHED_PRO, TARGET_ABORT_NORETURN, TARGET_SINGLE_PIC_BASE)
2664         (TARGET_LONG_CALLS, TARGET_THUMB, TARGET_CALLER_INTERWORKING)
2665         (TARGET_CIRRUS_FIX_INVALID_INSNS, SUBTARGET_SWITCHES, TARGET_SWITCHES)
2666         (TARGET_OPTIONS, arm_cpu_select, arm_select,  structure_size_string)
2667         (arm_pic_register_string): Delete.
2668         (TARGET_BACKTRACE): Redefine using TARGET_TPCS_LEAF_FRAME and
2669         TARGET_TPCS_FRAME.
2670         (TARGET_DEFAULT, CONDITIONAL_REGISTER_USAGE): Update mask names.
2671         * config/arm/coff.h (TARGET_DEFAULT): Likewise.
2672         * config/arm/elf.h (TARGET_DEFAULT): Likewise.
2673         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Likewise.
2674         * config/arm/netbsd.h (TARGET_DEFAULT): Likewise.
2675         * config/arm/semi.h (TARGET_DEFAULT): Likewise.
2676         * config/arm/uclinux-elf.h (TARGET_DEFAULT): Likewise.
2677         * config/arm/wince-pe.h (TARGET_DEFAULT): Likewise.
2678         * config/arm/pe.h (TARGET_DEFAULT): Likewise.
2679         (TARGET_FLAG_NOP_FUN, TARGET_NOP_FUN_DLLIMPORT): Delete.
2680         (SUBTARGET_SWITCHES): Delete.
2681         * config/arm/arm.c (target_float_switch): Delete.
2682         (arm_cpu_select): Moved from config/arm/arm.h.
2683         (target_fpu_name, target_fpe_name, target_float_abi_name)
2684         (target_abi_name, structure_size_string, arm_pic_register_string)
2685         (arm_select): Make static.
2686         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2687         (arm_handle_option): New function.
2688         (arm_override_options): Update target_flags checks for new mask names.
2689         Remove target_float_switch code.
2690         (arm_expand_prologue, thumb_expand_prologue): Check
2691         !TARGET_SCHED_PROLOG instead of TARGET_NO_SCHED_PRO.
2692         * config/arm/arm.opt, config/arm/pe.opt: New files.
2693
2694 2005-05-05  Nathan Sidwell  <nathan@codesourcery.com>
2695
2696         * config/arc/arc.c (get_arc_condition_code): Use gcc_assert &
2697         gcc_unreachable as appropriate.
2698         (arc_double_limm_p, arc_setup_incoming_varargs,
2699         arc_compute_function_type, arc_output_function_prologue,
2700         arc_output_function_epilogue, arc_eligible_for_epilogue_delay,
2701         output_shift, arc_print_operand, arc_print_operand_address,
2702         arc_final_prescan_insn): Likewise.
2703         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
2704
2705 2005-05-04  Geoffrey Keating  <geoffk@apple.com>
2706
2707         * config/rs6000/rs6000.md (P): Use TARGET_*BIT rather than
2708         comparing Pmode.
2709         (SDI): New.
2710         (cmp): Delete.
2711         (wd): New.
2712         (add<mode>3, add<mode>3_internal1, add<mode>3_internal2,
2713         add<mode>3_internal3, one_cmpl<mode>2, sub<mode>3, neg<mode>2,
2714         clz<mode>2, ctz<mode>2, ffs<mode>2): New.
2715         (addsi3, addsi3_internal1, addsi3_internal2, addsi3_internal3,
2716         (one_cmplsi2, subsi3, negsi2, clzsi2, ctzsi2, ffssi2): Remove.
2717         (adddi3, adddi3_internal1, adddi3_internal2, adddi3_internal3,
2718         (one_cmpldi2, subdi3, negdi2, clzdi2, ctzdi2, ffsdi2): Remove.
2719         (sync_compare_and_swap<mode>): Use <wd> rather than <cmp>.
2720
2721 2005-05-05  Paul Brook  <paul@codesourcery.com>
2722
2723         * Makefile.in: Replace dependencies on basic-block.h, c-pragma.h,
2724         cfgloop.h, diagnostic.h, insn-attr.h, langhooks-def.h, params.h,
2725         regs.h, system.h, tree-dump.h, tree-gimple.h, tree-scalar-evolution.h
2726         and tree-data-ref.h with *_H variables.
2727
2728 2005-05-05  Kelley Cook  <kcook@gcc.gnu.org>
2729
2730         * config/m32r/xm-m32r.h, config/m32r/xm-linux.h: Delete files.
2731
2732 2005-05-05  Kelley Cook  <kcook@gcc.gnu.org>
2733
2734         * system.h: Poison BYTEORDER and HOST_WORDS_BIG_ENDIAN.
2735
2736 2005-05-04  Gerald Pfeifer  <gerald@pfeifer.com>
2737
2738         * doc/contrib.texi (Contributors): Add Mostafa Hagog and Ayal Zaks.
2739
2740 2005-05-04 Fariborz Jahanian <fjahanian@apple.com>
2741
2742         * config/rs6000/rs6000.c (rs6000_emit_prologue): Emit
2743         setting of vrsave register for current function after
2744         call to save_world is emitted.
2745
2746 2005-05-05  Hans-Peter Nilsson  <hp@bitrange.com>
2747
2748         * config/mmix/predicates.md: New file.
2749         * config/mmix/mmix.c (mmix_symbolic_or_address_operand)
2750         (mmix_reg_or_constant_operand, mmix_reg_cc_operand)
2751         (mmix_foldable_comparison_operator, mmix_comparison_operator)
2752         (mmix_reg_or_0_operand, mmix_reg_or_8bit_operand): Remove.
2753         * config/mmix/mmix.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
2754         Don't define.
2755         * config/mmix/mmix.md: Include predicates.md.
2756         ("call", "call_value"): Force address to register if it isn't a
2757         mmix_symbolic_or_address_operand.
2758
2759 2005-05-04  Andrew MacLeod  <amacleod@redhat.com>
2760
2761         * tree-flow-inline.h (op_iter_init_use, op_iter_init_def): Assert that
2762         the flags are of appropriate types.
2763         (num_ssa_operands): Generalize using the generic interface.
2764         * tree-ssa-dce.c (remove_dead_stmt): Don't ask for kills on a DEF
2765         iterator.
2766
2767 2005-05-04  Richard Sandiford  <rsandifo@redhat.com>
2768
2769         * protoize.c (version_flag, quiet_flag, nochange_flag, nosave_flag)
2770         (keep_flag, local_flag, global_flag, cplusplus_flag): Make extern.
2771
2772 2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
2773
2774         * tree-outof-ssa.c (edge_leader, stmt_list,
2775         analyze_edges_for_bb): Use VEC instead of VARRAY.
2776         (init_analayze_edges_for_bb, fini_analayze_edges_for_bb): New.
2777         (perform_edge_inserts): Call init_analayze_edges_for_bb and
2778         fini_analayze_edges_for_bb.
2779
2780 2005-05-04  James E Wilson  <wilson@specifixinc.com>
2781
2782         PR driver/21112
2783         * gcc.c (process_command): In the second argv scan loop, ignore
2784         Xassembler and Xpreprocessor, along with their argument.
2785
2786 2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
2787
2788         * tree-flow-inline.h, tree-ssa-operands.c,
2789         tree-ssa-operands.h, tree-ssa-opfinalize.h:
2790         Likewise. tree-vn.c: Fix comment typos.
2791         * doc/passes.texi, doc/tree-ssa.texi: Fix typos.
2792
2793 2005-05-04  Paolo Bonzini  <bonzini@gnu.org>
2794
2795         * doc/tm.texi (Target Hooks): Document
2796         TARGET_RESOLVE_OVERLOADED_BUILTIN.
2797
2798 2005-05-04  Paul Brook  <paul@codesourcery.com>
2799
2800         * Makefile.in: Change dependencies on target.h to $(TARGET_H).
2801
2802 2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
2803
2804         * dwarf2out.c (incomplete_types, retry_incomplete_types,
2805         gen_struct_or_union_type_die, dwarf2out_init): Use VEC instead
2806         of VARRAY.
2807
2808         * loop-unroll.c (var_to_expand, analyze_insn_to_expand_var,
2809         get_expansion, expand_var_during_unrolling,
2810         insert_var_expansion_initialization,
2811         combine_var_copies_in_loop_exit, release_var_copies): Use VEC
2812         instead of VARRAY.
2813
2814         * tree-ssa-loop-ivopts.c (rewrite_address_base): Don't call
2815         update_stmt.
2816
2817 2004-05-03  Andrew Pinski  <pinskia@physics.uc.edu>
2818
2819         PR middle-end/15618
2820         * fold-const.c (fold_widened_comparison): Treat BOOLEAN_TYPE
2821         the same as INTEGER_TYPE.
2822         (fold_binary): Fold "bool_var != 0" to bool_var.
2823         Fold "bool_var == 1" to bool_var.
2824
2825 2004-05-03  Richard Henderson  <rth@redhat.com>
2826
2827         PR middle-end/21318
2828         * function.c (instantiate_virtual_regs_in_insn): Use the mode
2829         from recog_data instead of insn_data.
2830
2831 2005-05-03  DJ Delorie  <dj@redhat.com>
2832
2833         * common.opt (fdiagnostics-show-option): No variable is needed.
2834         * diagnostic.h (diagnostic_context): Add show_option_requested flag.
2835         * diagnostic.c (diagnostic_initialize): Initialize show_option_requested.
2836         (diagnostic_report_diagnostic): Test for enabled diagnostics here.
2837         Save and restore original message format.  Use flag in context
2838         instead of global.
2839         (warning): Don't test for enabled warnings here.
2840         * opts.c (common_handle_option): Handle -fdiagnostics-show-option
2841         here.
2842
2843 2005-05-04  Kelley Cook  <kcook@gcc.gnu.org>
2844
2845         * config/m32r/xm-m32r.h: Don't define HOST_WORDS_BIG_ENDIAN.
2846         * config/m32r/xm-linux.h: Don't undefine HOST_WORDS_BIG_ENDIAN.
2847         * mips-tfile.c: Use WORDS_BIG_ENDIAN instead of HOST_WORDS_BIG_ENDIAN.
2848         * aclocal.m4: Don't include accross.m4.
2849         * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
2850         Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
2851         * configure, config.in: Regenerate.
2852
2853 2005-05-04  Jakub Jelinek  <jakub@redhat.com>
2854
2855         PR middle-end/21265
2856         * expr.h (enum block_op_methods): Add BLOCK_OP_TAILCALL.
2857         (clear_storage): Add argument.
2858         * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall):
2859         Add tailcall argument, set CALL_EXPR_TAILCALL of the CALL_EXPR to
2860         tailcall.
2861         (emit_block_move): Handle BLOCK_OP_TAILCALL method.
2862         (clear_storage): Add method argument, handle BLOCK_OP_TAILCALL.
2863         (store_expr, store_constructor): Adjust callers.
2864         * builtins.c (expand_builtin_memcpy): Pass BLOCK_OP_TAILCALL
2865         to emit_block_move if CALL_EXPR_TAILCALL (exp).
2866         (expand_builtin_memmove): Add ORIG_EXP argument, copy
2867         CALL_EXPR_TAILCALL from ORIG_EXP to the new CALL_EXPR.
2868         (expand_builtin_bcopy): Replace ARGLIST and TYPE arguments
2869         with EXP.  Pass EXP to expand_builtin_memmove.
2870         (expand_builtin_memset): Add ORIG_EXP argument, pass
2871         BLOCK_OP_TAILCALL to clear_storage if CALL_EXPR_TAILCALL (orig_exp).
2872         (expand_builtin_bzero): Replace ARGLIST argument with EXP.
2873         Pass EXP to expand_builtin_memset.
2874         (expand_builtin_strcmp): Copy CALL_EXPR_TAILCALL from EXP to
2875         the new CALL_EXPR.
2876         (expand_builtin_strncmp): Likewise.
2877         (expand_builtin_printf): Replace ARGLIST argument with EXP.
2878         Copy CALL_EXPR_TAILCALL from EXP to the new CALL_EXPR.
2879         (expand_builtin_fprintf): Likewise.
2880         (expand_builtin): Adjust calls to
2881         expand_builtin_{memmove,bcopy,memset,bzero,{,f}printf}.
2882
2883         * config/i386/i386.c (ix86_expand_vector_set): Fix setting 3rd and 4th
2884         item in V4SF mode.
2885
2886         PR rtl-optimization/21239
2887         * combine.c (combine_simplify_rtx) <case VEC_SELECT>: Fix a typo.
2888
2889 2005-05-03  Kazu Hirata  <kazu@cs.umass.edu>
2890
2891         * tree-flow.h (tree_ann_common_d): Move aux to ...
2892         (stmt_ann_d): ... here.
2893         * tree-ssa-loop-im.c (LIM_DATA, determine_invariantness_stmt,
2894         move_computations_stmt, schedule_sm): Update references to
2895         aux.
2896         * tree-vectorizer.h (set_stmt_info, vinfo_for_stmt): Likewise.
2897
2898         * tree-cfg.c (remove_bb): Remove a redundant call to
2899         set_bb_for_stmt.
2900         * tree-if-conv.c (replace_phi_with_cond_modify_expr):
2901         Likewise.
2902
2903 2005-05-03  Richard Henderson  <rth@redhat.com>
2904
2905         * config/rs6000/rs6000.c: Remove conflict markers.
2906
2907         * cfg.c (dump_flow_info): Use max_reg_num, not max_regno.
2908
2909 2005-05-03  James E Wilson  <wilson@specifixinc.com>
2910
2911         * dwarf2out.c (lookup_filename): Call maybe_emit_file.
2912
2913 2005-05-03  DJ Delorie  <dj@redhat.com>
2914
2915         * c-decl.c (store_parm_decls_oldstyle): Let diagnostic machinery
2916         decide if the warning will be printed.
2917         * calls.c (expand_call): Likewise.
2918         * function.c (init-function_start): Likewise.
2919
2920         * common.opt (-fdiagnostics-show-option): New.
2921         * opts.c (option_enabled): Accept the option index instead of a
2922         pointer to the option descriptor.
2923         * opts.h (option_enabled): Likewise.
2924         * toplev.c (print_switch_values): Pass option index, not option
2925         descriptor.
2926         * diagnostic.h (diagnostic_info): Add option_index.
2927         * diagnostic.c: Include opts.h.
2928         (diagnostic_set_info): Initialize option_index.
2929         (diagnostic_report_diagnostic): Amend option name if appropriate.
2930         (warning): Check to see if the specified warning is enabled.
2931         Store option index.
2932         * doc/invoke.texi (-fdiagnostics-show-options): Document.
2933
2934 2005-05-03  Richard Henderson  <rth@redhat.com>
2935
2936         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Fix ALL_REGS and
2937         SPEC_OR_GEN_REGS definitions.
2938
2939 2005-05-03  Alexandre Oliva  <aoliva@redhat.com>
2940
2941         PR target/16888
2942         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Clear reg names
2943         for unavailable registers.
2944
2945 2005-05-03  Kazu Hirata  <kazu@cs.umass.edu>
2946
2947         * tree-cfg.c (tree_forwarder_block_p): Fix a typo.
2948
2949         * cfglayout.c (block_locators_blocks,
2950         insn_locators_initialize, insn_scope): Use VEC instead of
2951         VARRAY.
2952
2953         * tree-mudflap.c (deferred_static_decls, mudflap_enqueue_decl,
2954         mudflap_finish_file, mudflap_finish_file): Use VEC instead of
2955         VARRAY.
2956
2957 2005-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
2958
2959         * config/sparc/predicates.md (const_compl_high_operand): New.
2960         * config/sparc/sparc.c (sparc_emit_set_safe_HIGH64): Rename into
2961         gen_safe_HIGH64.
2962         (sparc_emit_set_const64_quick1): Adjust for above change.
2963         (sparc_emit_set_const64_quick2): Likewise.
2964         (sparc_emit_set_const64_longway): Likewise.
2965         (sparc_emit_set_const64): Likewise.
2966         * config/sparc/sparc.md (movhi_const64_special, movsi_const64_special,
2967         movdi_const64_special): Delete.
2968         (logical constant splitters): Use const_compl_high_operand.
2969
2970 2005-05-03  Richard Guenther  <rguenth@gcc.gnu.org>
2971
2972         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Use STRIP_TYPE_NOPS
2973         rather than STRIP_NOPS.
2974
2975 2005-05-03  Jakub Jelinek  <jakub@redhat.com>
2976
2977         PR rtl-optimization/21330
2978         * loop-unswitch.c (may_unswitch_on): Set *cinsn only when
2979         returning non-NULL.
2980         (unswitch_single_loop): Clear cinsn when retrying.
2981
2982         PR target/21297
2983         * config/i386/i386.c (legitimize_address): When canonicalizing
2984         ASHIFT into MULT, multiply by 1 << shift_count instead of
2985         1 << log2 (shift_count).
2986
2987 2005-05-03  Andrew MacLeod  <amacleod@redhat.com>
2988
2989         * lambda-code.c (gcc_loop_to_lambda_loop,
2990         lambda_loopnest_to_gcc_loopnest, phi_loop_edge_uses_def,
2991         stmt_is_bumper_for_loop, perfect_nest_p, replace_uses_of_x_with_y): Use
2992         generic operand interface.
2993         * tree-data-ref.c (find_data_references_in_loop): Use generic interface.
2994         * tree-dfa.c (collect_dfa_stats_r, mark_new_vars_to_rename): Use
2995         generic operand interface.
2996         * tree-flow-inline.h (delink_imm_use, link_imm_use_to_list,
2997         link_imm_use, link_imm_use_stmt, relink_imm_use, relink_imm_use_stmt,
2998         next_safe_imm_use, has_zero_uses, has_single_use, single_imm_use,
2999         num_imm_uses): Use ssa_use_operand_t.
3000         (get_def_ops, get_use_ops, get_v_may_def_ops, get_vuse_ops,
3001         get_v_must_def_ops): Delete.
3002         (get_def_from_ptr, get_phi_result_ptr): Get def directly now.
3003         (get_use_op_ptr, get_def_op_ptr, get_v_may_def_result_ptr,
3004         get_v_may_def_op_ptr, get_vuse_op_ptr, get_v_must_def_result_ptr,
3005         get_v_must_def_kill_ptr): Delete.
3006         (delink_stmt_imm_use): Move and use new operand interface.
3007         (op_iter_next_use, op_iter_next_def, op_iter_next_tree, op_iter_init,
3008         op_iter_next_tree): Use new operand implementation.
3009         (clear_and_done_ssa_iter): New.  Initialize a blank operand iterator.
3010         (op_iter_init_use, op_iter_init_def, op_iter_init_tree): Add iterator
3011         type check.
3012         (op_iter_next_mustdef, op_iter_next_maydef,
3013         op_iter_next_must_and_may_def): Delete. Replace with...
3014         (op_iter_next_maymustdef): New.  Combine must and may next operations.
3015         (op_iter_init_maydef, op_iter_init_mustdef,
3016         op_iter_init_must_and_may_def): Use new interface.
3017         (single_ssa_tree_operand ): New.  Process single operands only as trees.
3018         (single_ssa_use_operand): New.  Process single operands only as uses.
3019         (single_ssa_def_operand): New.  Process single operands only as defs.
3020         (zero_ssa_operands): New.  Return TRUE if there are zero operands of the
3021         specified types.
3022         (num_ssa_operands): New.  Count the number of specified operands.
3023         (compare_ssa_operands_equal): New.  Compare two statements' operands.
3024         (single_phi_def): New.  Return true if PHI has one def of the specified
3025         operand type.
3026         (op_iter_init_phiuse): New.  Initialize the iterator for PHI arguments.
3027         (op_iter_init_phidef): New.  Initialize the iterator for the PHI def.
3028         * tree-flow.h (struct immediate_use_iterator_d): Use ssa_use_operand_t.
3029         (struct stmt_ann_d): Operands field no longer require GTY().
3030         (vn_compute, vn_lookup_or_add, vn_add, vn_lookup): Change prototype.
3031         * tree-into-ssa.c (mark_def_sites): Use SSA_OP_VMUSTKILL.
3032         * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
3033         dump_replaceable_exprs, rewrite_trees): Use generic interface.
3034         * tree-phinodes.c (make_phi_node, release_phi_node, resize_phi_node):
3035         Use use_operand_p instead of ssa_imm_use_t *.
3036         * tree-pretty-print.c (dump_vops): check if operands are active before
3037         dumping virtual operands.
3038         * tree-sra.c (sra_walk_function): Use ZERO_SSA_OPERANDS.
3039         * tree-ssa-ccp.c (likely_value): Use ZERO_SSA_OPERANDS.
3040         (ccp_fold): Use new interface.
3041         (ccp_visit_stmt): Remove unused variables and code.
3042         (convert_to_gimple_builtin): Insert statements before calling
3043         mark_new_vars_to_rename.
3044         * tree-ssa-copy.c (stmt_may_generate_copy): Use ZERO_SSA_OPERANDS.
3045         (copy_prop_visit_cond_stmt): Use generic interface.
3046         * tree-ssa-dom.c (struct expr_hash_elt): Use stmt pointer, not the
3047         annotation in table.
3048         (thread_across_edge): Use generic interface.
3049         (initialize_hash_element): Initialzie with stmt, not annotation.
3050         (eliminate_redundant_computations): Use generic interface.
3051         (record_equivalences_from_stmt): Pass stmt, not annotation.
3052         (avail_expr_hash, real_avail_expr_hash, avail_expr_eq): Use generic
3053         interface.
3054         * tree-ssa-dse.c (dse_optimize_stmt): Use ZERO_SSA_OPERANDS.
3055         * tree-ssa-loop-ivopts.c (find_invariants_stmt,
3056         find_interesting_uses_stmt, protect_loop_closed_ssa_form_use): Use
3057         generic operand interface.
3058         * tree-ssa-loop-niter.c (chain_of_csts_start, get_val_for): Use generic
3059         interface.
3060         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Use Generic operand
3061         Interface.
3062         * tree-ssa-operands.c (struct opbuild_list_d): New.  Operand build type.
3063         (build_defs, build_uses, build_v_may_defs, build_vuses,
3064         build_v_must_defs): Change type to struct opbuild_list_d.
3065         (ops_active): New.  Operands active boolean.
3066         (operand_memory, operand_memory_index): New.  Operand memory managers.
3067         (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
3068         allocate_vuse_optype, allocate_v_must_def_optype): Delete.
3069         (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
3070         Change from functions to static variable list heads.
3071         (opbuild_initialize_virtual): New.  Initialize a virtual build list.
3072         (opbuild_initialize_real): New.  Initialize a virtual build list.
3073         (opbuild_free): New.  Free a build list.
3074         (opbuild_num_elems): New.  Number of items in a list.
3075         (opbuild_append_real): New.  Add a real (tree *) operand.
3076         (opbuild_append_virtual): New.  Add and sort a virtual (tree) operand.
3077         (opbuild_first): New.  Return first element index in a list.
3078         (opbuild_next): New.  Return next element in a list.
3079         (opbuild_elem_real): New.  Return real element.
3080         (opbuild_elem_virtual): New.  Return virtual element.
3081         (opbuild_elem_uid): New.  Return UID of virtual element.
3082         (opbuild_clear): New.  Reset an operand list.
3083         (opbuild_remove_elem): New.  Remove an element form a list.
3084         (ssa_operands_active): New.  Return true if operand cache is active.
3085         (init_ssa_operands, fini_ssa_operands): Initialize new implementation.
3086         (ssa_operand_alloc): New.  Allocate memory from an operand chunk.
3087         (correct_use_link): Use use_operand_p.
3088         (finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_defs,
3089         finalize_ssa_vuses, finalize_ssa_v_must_defs): New implmentation.
3090         (cleanup_v_may_defs): Use new implmentation.
3091         (finalize_ssa_stmt_operands, start_ssa_stmt_operands): New
3092         implementation.
3093         (append_def, append_use, append_v_may_def, append_vuse,
3094         append_v_must_def): Call opbuild_append routine instead of using varray.
3095         (build_ssa_operands): Simplify to simply use stmt, don't maintain a
3096         global parse_old_ops variable.
3097         (free_ssa_operands): New implementation.
3098         (update_stmt_operands): Move.  Change argument to build_ssa_operands.
3099         (copy_virtual_operands): Move. New generic implementation.
3100         (create_ssa_artficial_load_stmt): Move. New implementation.
3101         (swap_tree_operands): Update for new implementation.
3102         (get_expr_operands): Add stmt parameter to calls to swap_tree_operands.
3103         (add_call_clobber_ops, add_call_read_ops): Initialize opbuild list
3104         rather than a varray.
3105         (verify_imm_links): Use use_operand_p.
3106         (dump_immediate_uses_for): If the immediate use variable is a virtual
3107         variable, show the virtual ops in the stmt.
3108         * tree-ssa-operands.h (def_operand_p): No longer a structure.
3109         (NULL_DEF_OPERAND_P): Now a #define.
3110         (def_optype_d, use_optype_d, v_def_use_operand_type, v_may_def_optype_d,
3111         vuse_operand_type, vuse_optype_d, v_must_def_optype_d): Delete.
3112         (def_optype_d, use_optype_d, maydef_optype_d, vuse_optype_d,
3113         mustdef_optype_d): New.  Use Linked list representation.
3114         (SSA_OPERAND_MEMORY_SIZE): New.  Size of operand memory chunk.
3115         (struct ssa_operand_memory_d): New.  Allocated Chunk node.
3116         (struct stmt_operands_d): Change to new pointers that are not GTY.
3117         (STMT_USE_OPS, NUM_USES, SET_USE_OP, STMT_DEF_OPS, NUM_DEFS, SET_DEF_OP,
3118         STMT_V_MAY_DEF_OPS, NUM_V_MAY_DEFS, SET_V_MAY_DEF_RESULT,
3119         SET_V_MAY_DEF_OP, STMT_VUSE_OPS, NUM_VUSES, SET_VUSE_OP,
3120         STMT_V_MUST_DEF_OPS, NUM_V_MUST_DEFS, SET_V_MUST_DEF_RESULT,
3121         SET_V_MUST_DEF_KILL): Delete.
3122         (V_MAY_DEF_OPS, V_MAY_DEF_RESULT_PTR, V_MAY_DEF_RESULT,
3123         V_MAY_DEF_OP_PTR, V_MAY_DEF_OP): Rename to MAYDEF_*.
3124         (V_MUST_DEF_OPS, V_MUST_DEF_RESULT_PTR, V_MUST_DEF_RESULT,
3125         V_MUST_DEF_KILL_PTR, V_MUST_DEF_KILL): Rename to MUSTDEF_*.
3126         (enum ssa_op_iter_type): Operand iterator typechecking values.
3127         (struct ssa_operand_iterator_d): Use linked lists of operands.
3128         (SSA_OP_VMUSTDEFKILL): Rename to SSA_OP_VMUSTKILL.
3129         (FOR_EACH_SSA_MAYDEF_OPERAND, FOR_EACH_SSA_MUSTDEF_OPERAND,
3130         FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): Use op_iter_next_maymustdef.
3131         (FOR_EACH_PHI_ARG): New.  Iterate over PHI arguments.
3132         (FOR_EACH_PHI_OR_STMT_USE): New.  Iterate over PHI or stmt uses.
3133         (FOR_EACH_PHI_OR_STMT_DEF): New.  Iterate over PHI or stmt defs.
3134         (SINGLE_SSA_TREE_OPERAND, SINGLE_SSA_USE_OPERAND,
3135         SINGLE_SSA_DEF_OPERAND, ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): New.
3136         * tree-ssa-opfinalize.h: New.  Function templates for expansion.
3137         (FINALIZE_ALLOC): Expands into alloc_def, alloc_use, alloc_maydef,
3138         alloc_vuse, and alloc_mustdef.
3139         (FINALIZE_FUNC): Expands into finalize_ssa_def_ops,
3140         finalize_ssa_use_ops, finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
3141         and finalize_ssa_v_must_def_ops.
3142         * tree-ssa-pre.c (add_to_sets): Pass tree to vn_add.
3143         (create_value_expr_from): Use stmt not vuse_optype as a parameter. Pass
3144         stmt around.
3145         (compute_avail): Use generic iterator interface.
3146         * tree-ssa-propagate.c (first_vdef): Use generic operand interface.
3147         (stmt_makes_single_load, stmt_makes_single_store): Use
3148         ZERO_SSA_OPERANDS.
3149         * tree-ssa-sink.c (is_hidden_global_store): Use ZERO_SSA_OPERANDS.
3150         (statement_sink_location): Use generic interface.
3151         * tree-ssa.c (verify_ssa):  Use %p in fprintf.  Use generic interface.
3152         (delete_tree_ssa): Don't call release_defs.  Call release_ssa_name and
3153         reset the immediate use link nodes.
3154         (stmt_references_memory_p): Use ZERO_SSA_OPERANDS.
3155         * tree-ssanames.c (make_ssa_name): Use use_operand_p.
3156         * tree-tailcall.c (find_tail_calls): Use ZERO_SSA_OPERANDS.
3157         (eliminate_tail_call): Use generic operand interface.
3158         * tree-vect-analyze.c (vect_analyze_data_refs): Use ZERO_SSA_OPERANDS.
3159         (vect_mark_relevant, vect_mark_stmts_to_be_vectorized): Use generic
3160         interface.
3161         * tree-vect-transform.c (update_vuses_to_preheader): Use generic
3162         interface.
3163         * tree-vectorizer.c (rename_variables_in_bb): Use generic interface.
3164         * tree-vn.c (struct val_expr_pair_d): Cache statment pointer instead of
3165         vuse_optype.
3166         (vn_compute, val_expr_pair_hash, vn_add, vn_lookup, vn_lookup_or_add):
3167         Use statement pointer instead of vuse_optype.  Use generic interface.
3168         * tree-vrp.c (maybe_add_assert_expr): Use generic interface.
3169         (stmt_interesting_for_vrp, vrp_visit_stmt): Use ZERO_SSA_OPERANDS.
3170         * tree.h (struct ssa_imm_use_d): Renamed to ssa_use_operand_d.
3171         (tree_ssa_name, phi_arg_d): Use ssa_use_operand_d.
3172         * doc/tree-ssa.texi: Update documentation for operand interface.
3173
3174 2005-05-03  Nathan Sidwell  <nathan@codesourcery.com>
3175
3176         * config/darwin.c (machopic_define_symbol): Use gcc_assert or
3177         gcc_unreachable as appropriate.
3178         (machopic_function_base_name, machopic_indirect_data_reference,
3179         machopic_legitimize_pic_address, darwin_non_lazy_pcrel): Likewise.
3180         * config/host-darwin.c (darwin_gt_pch_use_address): Likewise
3181         * config/rs6000/altivec.md (*mov<mode>_internal,
3182         build_vector_mask_for_load): Likewise.
3183         * config/rs6000/darwin.md (movdf_low_si, movdf_low_di,
3184         *call_nonlocal_darwin64, *call_value_nonlocal_darwin64,
3185         *sibcall_symbolic_64, *sibcall_value_symbolic_64): Likewise.
3186         * config/rs6000/predicates.md (easy_fp_constant,
3187         logical_operand): Likewise.
3188         * config/rs6000/rs6000.c (spe_expand_predicate_builtin,
3189         compute_save_world_info, rs6000_emit_prologue,
3190         rs6000_output_mi_thunk): Reword comments to avoid 'abort'.
3191         * config/rs6000/host-darwin.c (segv_handler): Use fancy_abort
3192         directly.
3193
3194 2005-05-03  Uros Bizjak  <uros@kss-loka.si>
3195
3196         PR middle-end/21282
3197         * convert.c (convert_to_integer): Convert ceil and floor in
3198         c99 mode only.
3199
3200 2005-04-29  Geoffrey Keating  <geoffk@apple.com>
3201
3202         PR target/20813
3203         * config/rs6000/rs6000.md (floatsidf2_internal): Merge to create
3204         define_insn_and_split.  Split only when memory operand is
3205         offsettable.  Use adjust_address rather than plus_constant.
3206         (floatunssidf2_internal): Likewise.
3207         (fix_truncdfsi2_internal): Split only when memory operand is
3208         offsettable.  Use adjust_address rather than plus_constant.
3209         (fix_trunctfsi2_internal): Likewise.
3210         (floatsidf2_internal): Likewise.
3211
3212 2005-05-02  Diego Novillo  <dnovillo@redhat.com>
3213
3214         * tree-vrp.c (set_value_range_to_nonnull): Declare inline.
3215         (set_value_range_to_null): Likewise.
3216         (set_value_range_to_varying): New function.  Use it in all
3217         call sites that used to call set_value_range (vr, VR_VARYING, ...).
3218         (extract_range_from_assert): If the integral type has a
3219         super-type, and LIMIT is not within MIN and MAX values of that
3220         type, set the resulting range to VR_VARYING.
3221
3222 2005-05-02  Hans-Peter Nilsson  <hp@bitrange.com>
3223
3224         * config/mmix/mmix.opt: New file.
3225         * config/mmix/mmix.h: Move options-related comments to mmix.opt.
3226         (mmix_cc1_ignored_option): Don't declare.
3227         (TARGET_OPTIONS, TARGET_MASK_LIBFUNCS, TARGET_MASK_ABI_GNU)
3228         (TARGET_MASK_FCMP_EPSILON, TARGET_MASK_ZERO_EXTEND)
3229         (TARGET_MASK_KNUTH_DIVISION, TARGET_MASK_TOPLEVEL_SYMBOLS)
3230         (TARGET_MASK_BRANCH_PREDICT, TARGET_MASK_USE_RETURN_INSN)
3231         (TARGET_MASK_BASE_ADDRESSES, TARGET_LIBFUNC, TARGET_ABI_GNU,
3232         (TARGET_FCMP_EPSILON, TARGET_ZERO_EXTEND, TARGET_KNUTH_DIVISION)
3233         (TARGET_TOPLEVEL_SYMBOLS, TARGET_BRANCH_PREDICT)
3234         (TARGET_BASE_ADDRESSES, TARGET_USE_RETURN_INSN, TARGET_SWITCHES):
3235         Don't define.
3236         (TARGET_DEFAULT): Change TARGET_MASK_... to MASK_...
3237         * config/mmix/mmix.c (mmix_cc1_ignored_option): Remove.
3238         (TARGET_DEFAULT_TARGET_FLAGS): Override default.
3239
3240 2005-05-02  Joseph S. Myers  <joseph@codesourcery.com>
3241
3242         PR c/15698
3243         * c-tree.h (C_DECL_BUILTIN_PROTOTYPE): New.
3244         * c-decl.c (current_function_prototype_built_in,
3245         current_function_prototype_arg_types): New.
3246         (merge_decls): Keep source location of prototype followed by
3247         nonprototype declaration.  Update C_DECL_BUILTIN_PROTOTYPE.
3248         (builtin_function): Set C_DECL_BUILTIN_PROTOTYPE.
3249         (start_function): Always set current_function_prototype_locus,
3250         current_function_prototype_built_in and
3251         current_function_prototype_arg_types.  Check for external
3252         prototype whether or not visible for external function and set
3253         current_function_prototype_arg_types accordingly.
3254         (store_parm_decls_oldstyle): Use
3255         current_function_prototype_arg_types for checking old-style
3256         definition against prototype.  Give warnings only if
3257         current_function_prototype_built_in).
3258
3259 2005-05-02  Daniel Jacobowitz  <dan@codesourcery.com>
3260
3261         * ggc.h (ggc_alloc_zone_pass_stat): New macro.
3262         (ggc_alloc_zone_stat): Don't define.
3263         * ggc-zone.c (ggc_alloc_typed_stat, ggc_alloc_stat): Use
3264         ggc_alloc_zone_pass_stat.
3265         * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Likewise.
3266         * tree.c (make_node_stat, copy_node_stat, make_tree_binfo_stat)
3267         (make_tree_vec_stat, tree_cons_stat, build1_stat): Likewise.
3268
3269 2005-05-02  Daniel Jacobowitz  <dan@codesourcery.com>
3270
3271         * calls.c (expand_call): Handle current_function_pretend_args_size
3272         when checking for sibcalls.
3273
3274 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
3275
3276         PR tree-optimization/21294
3277         * tree-vrp.c (vrp_expr_computes_nonzero): New.
3278         (extract_range_from_expr): Call vrp_expr_computes_nonzero.
3279
3280 2005-05-02  Janis Johnson  <janis187@us.ibm.com>
3281
3282         PR 19985
3283         * gcov-io.h: Declare gcov external functions hidden.
3284
3285 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
3286
3287         * tree-ssa-uncprop.c (equiv_hash_elt, remove_equivalence,
3288         record_equiv, tree_ssa_uncprop, uncprop_into_successor_phis):
3289         Use VEC instead of VARRAY.
3290         (equiv_free): New.
3291
3292         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Factor
3293         out common code.
3294
3295 2005-05-02  Paolo Bonzini  <bonzini@gnu.org>
3296
3297         * c-common.c (resolve_overloaded_builtin): Forward to target
3298         hook for BUILT_IN_MD built-ins.
3299         * c-typeck.c (finish_call_expr): Call resolve_overloaded_builtin
3300         for all types of built-in.
3301         * target-def.h (TARGET_RESOLVE_OVERLOADED_BUILTIN): New.  Use it
3302         in the definition of the target hooks struct.
3303         * target.h (struct gcc_target): Add resolve_overloaded_builtin.
3304         * config/rs6000/altivec.h: Rewritten.
3305         * config/rs6000/rs6000-c.c (struct altivec_builtin_types,
3306         altivec_resolve_overloaded_builtin, altivec_build_resolved_builtin,
3307         rs6000_builtin_type, rs6000_builtin_type_compatible,
3308         altivec_overloaded_builtins, rs6000_builtin_type,
3309         rs6000_builtin_type_compatible): New.
3310         * config/rs6000/rs6000.c (rs6000_builtin_types, rs6000_builtin_decls):
3311         New.
3312         (def_builtin): Turn into a function.  Check for duplicates and store
3313         the builtin into rs6000_builtin_decls.
3314         (bdesc_3arg, bdesc_dst, bdesc_altivec_preds, bdesc_2arg,
3315         bdesc_1arg): Add overloaded builtins.
3316         (altivec_expand_builtin): Check for unresolved overloaded builtins,
3317         do not support ALTIVEC_COMPILETIME_ERROR.
3318         (rs6000_init_builtins): Add opaque 128-bit vector, and internal
3319         nodes to represent front-end types.
3320         (altivec_init_builtins, rs6000_common_init_builtins): Create builtins
3321         with opaque arguments and/or return values.
3322         * config/rs6000/rs6000.h (enum rs6000_builtins): Remove
3323         ALTIVEC_COMPILETIME_ERROR and add Altivec overloaded builtins.
3324         (rs6000_builtin_type_index): New.
3325         (is_ev64_opaque_type): Rename to...
3326         (rs6000_is_opaque_type): ... this.
3327         (rs6000_cpu_cpp_builtins): Install the resolve_overloaded_builtin
3328         target hook.
3329
3330 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
3331
3332         * function.c (reorder_blocks, reorder_blocks_1): Use VEC
3333         instead of VARRAY.
3334
3335 2005-05-02  Nathan Sidwell  <nathan@codesourcery.com>
3336             Bernd Schmidt  <bernd.schmidt@analog.com>
3337
3338         * config/bfin/bfin.c (emit_link_insn, effective_address_32bit_p,
3339         print_address_operand, print_operand, legitimize_pic_address,
3340         asm_conditional_branch, bfin_gen_compare, output_push_multiple,
3341         output_pop_multiple): Use gcc_assert or gcc_unreachable as
3342         appropriate.
3343         * config/bfin/bfin.md (movsf splitter, beq, bne): Likewise.
3344
3345 2005-05-02  Dorit Naishlos  <dorit@il.ibm.com>
3346
3347         * doc/passes.texi: Document vectorization pass.
3348
3349 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
3350
3351         * tree-scalar-evolution.c (get_exit_conditions_rec,
3352         select_loops_exit_conditions,
3353         number_of_iterations_for_all_loops,
3354         analyze_scalar_evolution_for_all_loop_phi_nodes,
3355         scev_analysis): Use VEC instead of VARRAY.
3356
3357 2005-05-02  Michael Matz  <matz@suse.de>
3358
3359         PR c++/19542
3360         * c-common.c (c_common_nodes_and_builtins): Create global null_node.
3361         (warn_strict_null_sentinel): Define.
3362         (check_function_sentinel): Check for null_node as valid sentinel too.
3363         * c-common.h (c_tree_index): Added CTI_NULL.
3364         (null_node) Define global_tree[CTI_NULL].
3365         (warn_strict_null_sentinel): Declare.
3366         * c-opts.c: (c_common_handle_option): Handle -Wstrict-null-sentinel.
3367         * c.opt: (Wstrict-null-sentinel): New C++ option.
3368         * doc/invoke.texi (C++ Options): Document -Wstrict-null-sentinel.
3369
3370 2005-05-01  Kazu Hirata  <kazu@cs.umass.edu>
3371
3372         * gimplify.c (gimplify_compound_lval): Use VEC instead of
3373         VARRAY.
3374
3375         * global.c (calculate_reg_pav): Use VEC instead of VARRAY.
3376
3377         * dwarf2out.c (decl_scope_table, push_decl_scope,
3378         pop_decl_scope, scope_die_for, dwarf2out_init): Use VEC
3379         instead of VARRAY.
3380
3381 2005-05-01  Mark Mitchell  <mark@codesourcery.com>
3382
3383         PR C++/14391
3384         * c-cppbuiltin.c (c_cpp_builtins): Do not define __GXX_WEAK__ to 1
3385         if !flag_weak.
3386         * doc/cpp.texi (__DEPRECATED): Document.
3387         (__EXCEPTIONS): Likewise.
3388         (__GXX_WEAK__): Likewise.
3389
3390         * function.c (INVOKE__main): Do not define.
3391         (expand_main_function): Check HAS_INIT_SECTION when determining
3392         whether or not to call __main.
3393
3394 2005-05-01  Kazu Hirata  <kazu@cs.umass.edu>
3395
3396         * tree-ssa-loop-ivopts.c: Fix a comment typo.
3397
3398 2005-01-05  Paul Brook  <paul@codesourcery.com>
3399
3400         * config/arm/arm.h (ARM_EMIT_TRAMPOLINE_CACHE_CLEAR): Define.
3401         (INITIALIZE_TRAMPOLINE): Use it.
3402         * config/arm/linux-gas.h (INITIALIZE_TRAMPOLINE): Remove.
3403         * config/arm/netbsd.h (INITIALIZE_TRAMPOLINE): Remove.
3404         * config/arm/netbsd-elf.h (INITIALIZE_TRAMPOLINE): Remove.
3405
3406 2005-05-01  Gerald Pfeifer  <gerald@pfeifer.com>
3407
3408         * doc/install.texi (Specific): Omit dots in the @anchors names
3409         for i?86-*-sco3.2v5*, i?86-*-solaris2.10, and sparc-sun-solaris2.7.
3410         Omit underscores for x86_64-*-* and the "all ELF targets" entry.
3411
3412 2005-05-01  Zdenek Dvorak  <dvorakz@suse.cz>
3413
3414         PR tree-optimization/18316
3415         PR tree-optimization/19126
3416         * tree.c (build_int_cst_type): Avoid shift by size of type.
3417         * tree-scalar-evolution.c (simple_iv): Add allow_nonconstant_step
3418         argument.
3419         * tree-scalar-evolution.h (simple_iv): Declaration changed.
3420         * tree-ssa-loop-ivopts.c (struct iv_cand): Add depends_on
3421         field.
3422         (dump_cand): Dump depends_on information.
3423         (determine_biv_step): Add argument to simple_iv call.
3424         (contains_abnormal_ssa_name_p): Handle case expr == NULL.
3425         (find_bivs, find_givs_in_stmt_scev): Do not require step to be a
3426         constant.
3427         (add_candidate_1): Record depends_on for candidates.
3428         (tree_int_cst_sign_bit, constant_multiple_of): New functions.
3429         (get_computation_at, get_computation_cost_at, may_eliminate_iv):
3430         Handle ivs with nonconstant step.
3431         (iv_ca_set_remove_invariants, iv_ca_set_add_invariants): New functions.
3432         (iv_ca_set_no_cp, iv_ca_set_cp): Handle cand->depends_on.
3433         (create_new_iv): Unshare the step before passing it to create_iv.
3434         (free_loop_data): Free cand->depends_on.
3435         (build_addr_strip_iref): New function.
3436         (find_interesting_uses_address): Use build_addr_strip_iref.
3437         (strip_offset_1): Split the recursive part from strip_offset.
3438         Strip constant offset component_refs and array_refs.
3439         (strip_offset): Split the recursive part to strip_offset_1.
3440         (add_address_candidates): Removed.
3441         (add_derived_ivs_candidates): Do not use add_address_candidates.
3442         (add_iv_value_candidates): Add candidates with stripped constant
3443         offset.  Consider all candidates with initial value 0 important.
3444         (struct affine_tree_combination): New.
3445         (aff_combination_const, aff_combination_elt, aff_combination_scale,
3446         aff_combination_add_elt, aff_combination_add,
3447         tree_to_aff_combination, add_elt_to_tree, aff_combination_to_tree,
3448         fold_affine_sum): New functions.
3449         (get_computation_at): Use fold_affine_sum.
3450         * tree-ssa-loop-manip.c (create_iv): Handle ivs with nonconstant step.
3451         * tree-ssa-loop-niter.c (number_of_iterations_exit): Add argument
3452         to simple_iv call.
3453
3454 2005-04-30  Michael Matz  <matz@suse.de>
3455
3456         * config/i386/i386.md (movmemsi): Also active when
3457         TARGET_INLINE_ALL_STRINGOPS.
3458
3459 2005-04-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
3460
3461         PR bootstrap/20633
3462         * config/freebsd-spec.h (FBSD_CPP_SPEC): Add %(cpp_arch).
3463
3464 2005-04-30  Paul Brook  <paul@codesourcery.com>
3465
3466         * config/arm/bpabi.h (RENAME_LIBRARY_SET): Always use .thumb_set in
3467         thumb mode.
3468         * config/arm/ieee754-df.S: Use __INTERWORKING_STUBS__.
3469         * config/arm/ieee754-sf.S: Ditto.
3470         * config/arm/lib1funcs.asm: Define and use __INTERWORKING_STUBS__.
3471         (FUNC_ALIAS): Use .thumb_set for thumb routines.
3472
3473 2005-04-30  Kazu Hirata  <kazu@cs.umass.edu>
3474
3475         * tree-ssanames.c: Fix a comment typo.
3476         * doc/options.texi: Fix a typo.
3477
3478 2005-04-30  Nathan Sidwell  <nathan@codesourcery.com>
3479
3480         * config/h8300/h8300.c (byte_reg): Use gcc_assert and
3481         gcc_unreachable as appropriate.
3482         (split_adds_subs, cond_string, print_operand,
3483         h8300_initial_elimination_offset, h8300_classify_operand,
3484         h8300_unary_length, h8300_short_immediate_length,
3485         h8300_bitfield_length, h8300_binary_length,
3486         h8300_insn_length_from_table, compute_mov_length, output_plussi,
3487         compute_plussi_length, compute_plussi_cc, output_logical_op,
3488         compute_logical_op_length, compute_logical_op_cc,
3489         output_h8sx_shift, get_shift_alg, h8300_shift_needs_scratch_p,
3490         output_a_shift, compute_a_shift_length, compute_a_shift_cc,
3491         output_a_rotate, compute_a_rotate_length, fix_bit_operand,
3492         h8300_regs_ok_for_stm): Likewise.
3493         * config/h8300/h8300.md (*movsi_h8300, *movsf_h8300,
3494         monitor_prologue): Likewise.
3495
3496 2005-04-30  Kazu Hirata  <kazu@cs.umass.edu>
3497
3498         * loop-invariant.c (invariants, create_new_invariant,
3499         get_inv_cost, best_gain_for_invariant,
3500         find_invariants_to_move, move_invariants,
3501         init_inv_motion_data, free_inv_motion_data): Use VEC instead
3502         of VARRAY.
3503
3504 2005-04-29  Richard Henderson  <rth@redhat.com>
3505
3506         * function.c (instantiate_decls): Remove valid_only argument.
3507         (instantiate_decls_1, instantiate_decl): Likewise.
3508         (instantiate_virtual_regs_1): Delete.
3509         (instantiate_virtual_regs_lossage): Delete.
3510         (instantiate_virtual_regs_in_rtx): New.
3511         (safe_insn_predicate): New.
3512         (instantiate_virtual_regs_in_insn): New.
3513         (instantiate_virtual_regs): Update to match all that.  Only run
3514         instantiate_decls once.
3515
3516 2005-04-29  Richard Henderson  <rth@redhat.com>
3517             Daniel Jacobowitz  <dan@codesourcery.com>
3518
3519         * gengtype.c (write_func_for_structure): Split out ...
3520         (output_type_enum): ... new function.  Fix thinko accessing
3521         TYPE_PARAM_STRUCT data.
3522
3523 2005-04-29  Tom Tromey  <tromey@redhat.com>
3524
3525         * tree.c (build_block): Removed unused 'tags' argument.
3526         * tree.h (build_block): Removed argument.
3527
3528 2005-04-29  Michael Matz  <matz@suse.de>
3529
3530         PR rtl-optimization/21144
3531         * postreload.c (reload_cse_move2add): Check for VOIDmode.
3532
3533 2005-04-29  Bob Wilson  <bob.wilson@acm.org>
3534
3535         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Define to disable
3536         flag_reorder_blocks.
3537
3538 2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
3539
3540         PR tree-optimization/21030
3541         * tree-vrp.c (adjust_range_with_scev): Do not create invalid
3542         ranges where VR->MAX is smaller than VR->MIN.
3543
3544 2005-04-29  Devang Patel  <dpatel@apple.com>
3545
3546         PR tree-optimization/21272
3547         PR tree-optimization/21266
3548         * tree-if-conv.c (find_phi_replacement_condition): Fix think-o.
3549
3550 2005-04-29  Kazu Hirata  <kazu@cs.umass.edu>
3551
3552         * tree-flow-inline.h: Fix a comment typo.
3553         * doc/tree-ssa.texi: Fix a typo.
3554
3555         * tree-flow-inline.h, tree-ssa-operands.c: Fix comment typos.
3556
3557 2005-04-29  Nathan Sidwell  <nathan@codesourcery.com>
3558
3559         * config/fr30/fr30.c (fr30_expand_prologue): Use gcc_assert and
3560         gcc_unreachable as appropriate.
3561         (fr30_expand_epilogue, fr30_setup_incoming_varargs,
3562         fr30_print_operand, fr30_move_double): Likewise.
3563         * config/fr30/fr30.md (*movsi_internal, *movsf_internal): Likewise.
3564
3565 2005-04-29  Mark Mitchell  <mark@codesourcery.com>
3566
3567         * config/arm/arm.h (ARM_EABI_CTORS_SECTION_OP): Do not define if a
3568         definition has already been provided.
3569         (ARM_EABI_DTORS_SECTION_OP): Likewise.
3570         * config/arm/symbian.h (ARM_EABI_CTORS_SECTION_OP): Define.
3571         (ARM_EABI_DTORS_SECTION_OP): Likewise.
3572
3573 2005-04-29  Jim Tison  <jtison@us.ibm.com>
3574
3575         * config/s390/s390.md ("prologue_tpf", "epilogue_tpf"): Alter
3576         trace hooks calls to improve performance.
3577
3578 2005-04-29  Julian Brown  <julian@codesourcery.com>
3579             Mark Mitchell  <mark@codesourcery.com>
3580             Paul Brook  <paul@codesourcery.com>
3581
3582         * crtstuff.c: Handle targets that use .init_array.
3583         * function.c (HAS_INIT_SECTION): Do not define. Instead, make sure
3584         that INVOKE__main is set correctly.
3585         (expand_main_function): Test INVOKE__main.
3586         * libgcc2.c: Do not define __main when using .init_array.
3587         * config/arm/arm.c (arm_elf_asm_constructor): New function.
3588         * config/arm/arm.h (CTORS_SECTION_ASM_OP): Define, with specialized
3589         libgcc version.
3590         (DTORS_SECTION_ASM_OP): Likewise.
3591         (CTOR_LIST_BEGIN): Define specially when in libgcc.
3592         (CTOR_LIST_END): Likewise.
3593         (DTOR_LIST_BEGIN): Likewise.
3594         (DTOR_LIST_END): Likewise.
3595         * config/arm/bpapi.h (INIT_SECTION_ASM_OP): Do not define it.
3596         (FINI_SECTION_ASM_OP): Likewise.
3597         (INIT_ARRAY_SECTION_ASM_OP): Define.
3598         (FINI_ARRAY_SECTION_ASM_OP): Likewise.
3599         * config/arm/elf.h (TARGET_ASM_CONSTRUCTOR): Define.
3600         (SUPPORTS_INIT_PRIORITY): Evaluate to false for EABI based targets.
3601         * doc/tm.texi (INIT_ARRAY_SECTION_ASM_OP): Document.
3602         (FINI_ARRAY_SECTION_ASM_OP): Likewise.
3603
3604 2005-04-29  Nathan Sidwell  <nathan@codesourcery.com>
3605
3606         * config/m68k/m68k.c (m68k_initial_elimination_offset): Use
3607         gcc_assert and gcc_unreachable as appropriate.
3608         (output_dbcc_and_branch, output_scc_di, legitimize_pic_address,
3609         const_int_cost, output_move_const_into_data_reg,
3610         output_move_qimode, output_move_double, find_addr_reg,
3611         print_operand, print_operand_address): Likewise.
3612         * config/m68k/m68k.md (adddi3, subdi3, negsf2, negdf2, abssf2,
3613         absdf2, sordered, sunordered, suneq, sunge, sungt, sunle, sunlt,
3614         sltgt, bordered, bunordered, buneq, bunge, bungt, bunle, bunlt,
3615         bltgt, *bordered_rev, *bunordered_rev, *buneq_rev, *bunge_rev,
3616         *bunle_rev, *bunlt_rev, *bltgt_rev, negxf2, absxf2,
3617         conditional_trap): Likewise.
3618         * config/m68k/m68kelf.h (ASM_OUTPUT_ALIGN): Remove unreachable code.
3619
3620 2005-04-29  Nathan Sidwell  <nathan@codesourcery.com>
3621
3622         * config/xtensa/xtensa.c (gen_int_relational): Use gcc_assert and
3623         gcc_unreachable as appropriate.
3624         (gen_conditional_move, xtensa_split_operand_pair,
3625         xtensa_split_operand_pair, xtensa_copy_incoming_a7,
3626         xtensa_copy_incoming_a7, xtensa_copy_incoming_a7,
3627         xtensa_copy_incoming_a7, xtensa_output_literal,
3628         xtensa_output_literal, xtensa_output_literal): Likewise.
3629         * config/xtensa/xtensa.h (INITIAL_ELIMINATION_OFFSET): Likewise.
3630         * config/xtensa/xtensa.md (*btrue, *bfalse, *ubtrue, *ubfalse,
3631         *bittrue, *bitfalse, *masktrue, *maskfalse, movsicc_internal0,
3632         movsicc_internal1, movsfcc_internal0,
3633         movsfcc_internal1): Likewise.
3634
3635 2005-04-28  James E Wilson  <wilson@specifixinc.com>
3636
3637         * config/i386/i386.h (HI_REGISTER_NAMES): Fix typos in comment.
3638         (ADDITIONAL_REGISTER_NAMES): Delete obsolete mmx register entries.
3639
3640 2005-04-28  DJ Delorie  <dj@redhat.com>
3641
3642         * opt-functions.awk (var_set): Emit proper initializer for
3643         non-target bitfields.
3644
3645 2005-04-28  Devang Patel  <dpatel@apple.com>
3646
3647         * dbxout.c (have_used_extensions): Remove.
3648         (dbxout_type_fileds, dbxout_type, dbxout_symbol): Remove use of
3649         have_used_extensions.
3650
3651 2005-04-28  James E Wilson  <wilson@specifixinc.com>
3652
3653         * doc/install.texi: Update -enable-languages info.  Correct path to
3654         html docs.
3655
3656 2005-04-28  DJ Delorie  <dj@redhat.com>
3657
3658         * optc-gen.awk (END): Make sure no variable is defined more
3659         than once.
3660         * opth-gen.awk (END): Allocate bits on a per-variable basis.
3661         Allow for bitfield variables other than target_flags.
3662         * doc/options.text (Mask): Document that you may specify a
3663         variable other than target_flags.
3664
3665 2005-04-28  Martin Koegler <mkoegler@auto.tuwien.ac.at>
3666
3667         PR rtl-optimization/18877
3668         * reload.c (decompose) <case REG, case SUBREG>: Handle pseudo reg
3669         number in val.start.
3670
3671 2005-04-28  David Edelsohn  <edelsohn@gnu.org>
3672
3673         PR target/20813
3674         * config/rs6000/aix43.h (SUBSUBTARGET_SWITCHES, aix64): Add
3675         MASK_PPC_GFXOPT.
3676         * config/rs6000/aix51.h (SUBSUBTARGET_SWITCHES, aix64): Same.
3677         * config/rs6000/aix52.h (SUBSUBTARGET_SWITCHES, aix64): Same.
3678         * config/rs6000/sysv4.h (SUBTARGET_SWITCHES, 64): Same.
3679
3680 2005-04-28  Richard Earnshaw  <richard.earnshaw@arm.com>
3681
3682         * arm.c (legitimize_pic_address): Fix sense of assertion test for
3683         creating pseudos when the base offset is too large.
3684
3685 2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
3686
3687         * global.c (earlyclobber_regclass): Change the type to
3688         VEC(int,heap).
3689         (check_earlyclobber): Update uses of earlyclobber_regclass.
3690         (mark_reg_use_for_earlyclobber): Likewise.
3691         (calculate_local_reg_bb_info): Allocate and free
3692         earlyclobber_regclass using the VEC API.
3693
3694 2005-04-28  Nathan Sidwell  <nathan@codesourcery.com>
3695
3696         * tree-ssa-alias.c (push_fields_onto_fieldstack): Remove bogus
3697         assert.
3698
3699 2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
3700
3701         * modulo-sched.c, tree-stdarg.c: Use targetm.foo instead of
3702         (*targetm.foo).
3703
3704         * config.gcc: Obsolete c4x-* and tic4x-*.
3705
3706         * tree.h (edge_def): Remove.
3707
3708         * bt-load.c, cfgexpand.c, dwarf2out.c, emit-rtl.c, expr.c,
3709         function.c, global.c, lcm.c, loop-invariant.c, optabs.c,
3710         reorg.c, resource.c, tree-ssa-loop-ivopts.c, value-prof.c: Use
3711         JUMP_P, LABEL_P, REG_P, MEM_P, NONJUMP_INSN_P, and INSN_P
3712         where appropriate.
3713
3714         * attribs.c, c-pragma.c, caller-save.c, cfghooks.h,
3715         coverage.c, cselib.h, domwalk.c, domwalk.h, errors.c,
3716         errors.h, gcov-dump.c, gcov-io.c, gcov-io.h, gen-protos.c,
3717         genattrtab.h, genextract.c, gthr-win32.h, insn-notes.def,
3718         integrate.c, lambda-mat.c, lambda.h, libgcov.c, local-alloc.c,
3719         machmode.def, mips-tfile.c, params.c, pretty-print.c,
3720         print-rtl.c, protoize.c, regmove.c, sched-vis.c, tree-chrec.h,
3721         tree-data-ref.h, vec.h, config/darwin-c.c, config/sol2-c.c,
3722         config/sol2.c, config/arm/arm-cores.def, config/arm/cirrus.md,
3723         config/arm/symbian.h, config/c4x/c4x.c, config/c4x/c4x.h,
3724         config/i386/cygming.h, config/i386/djgpp.h,
3725         config/i386/lynx.h, config/i386/netware.c,
3726         config/i386/winnt.c, config/ia64/ia64-c.c,
3727         config/iq2000/iq2000.c, config/m32r/little.h,
3728         config/m68k/m68k-protos.h, config/m68k/m68k.h,
3729         config/m68k/m68k.md, config/mcore/mcore.c,
3730         config/mcore/mcore.h, config/mmix/mmix.c, config/mmix/mmix.md,
3731         config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
3732         config/mn10300/mn10300.h, config/ns32k/netbsd.h,
3733         config/ns32k/ns32k.c, config/ns32k/ns32k.h,
3734         config/pa/pa-hpux11.h, config/pdp11/pdp11.c,
3735         config/pdp11/pdp11.h, config/rs6000/darwin.h,
3736         config/rs6000/default64.h, config/rs6000/rs6000-c.c,
3737         config/s390/2064.md, config/s390/2084.md,
3738         config/s390/s390-modes.def, config/s390/s390-protos.h,
3739         config/s390/tpf.h, config/sh/sh.h, config/sh/symbian.c,
3740         config/stormy16/stormy16.c, config/vax/vax-protos.h,
3741         config/vax/vax.c, config/vax/vax.h,
3742         config/xtensa/lib1funcs.asm, config/xtensa/xtensa.md: Update
3743         copyright.
3744
3745 2005-04-28  Joseph S. Myers  <joseph@codesourcery.com>
3746
3747         * c-typeck.c (build_compound_expr): Correct logic in last change.
3748
3749 2005-04-27  James E. Wilson  <wilson@specifixinc.com>
3750
3751         * config/ia64/ia64.c (update_set_flags): Delete ppred and pcond
3752         parameters.  Replace conditional move code with assert checking for
3753         ar.lc.  Delete obsolete comments.
3754         (set_src_needs_barrier): Delete cond parameter, and code using it.
3755         (rtx_needs_barrier): Delete initialization of cond.  Fix typo in
3756         assert checking for PR_REGS.  Fix calls to update_set_flags and
3757         set_src_needs_barrier.
3758         (group_barrier_needed): Renamed from group_barrier_needed_p.  Fix all
3759         callers.  Rewrite explanatory comment before the function.
3760         (safe_group_barrier_needed): Renamed from safe_group_barrier_needed_p.
3761         Fix all callers.
3762
3763 2005-04-27  Mike Stump  <mrs@apple.com>
3764
3765         * doc/cpp.texi: gcc now implements universal character names.
3766
3767 2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
3768
3769         PR c/21159
3770         * c-typeck.c (build_compound_expr): Don't warn for left-hand side
3771         being a compound expression whose right-hand side is cast to void.
3772
3773 2005-04-27  Caroline Tice  <ctice@apple.com>
3774
3775         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
3776         Remove targetm.have_named_sections test.
3777         (fix_edges_for_rarely_executed_code): Likewise.
3778         (insert_section_boundary_note): Likewise.
3779         (reorder_basic_blocks): Check partitioning flag before calling
3780         verify_hot_cold_block_grouping.
3781         * dbxout.c (dbxout_function_end): Get hot/cold section labels from
3782         the function struct rather than global variables.
3783         * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
3784         (COLD_END_LABEL): Likewise
3785         (cold_text_section_label): New static global variable.
3786         (cold_end_label): Likewise.
3787         (dwarf2out_switch_text_section): Get hot/cold section labels from
3788         the function struct rather than global variables; test to make sure
3789         cfun is defined.
3790         (output_aranges): Use cold_text_section_label and cold_end_label;
3791         check partitioning flag before putting out delta.
3792         (output_ranges): Remove incorrect code attempting to use
3793         hot/cold labels.
3794         (output_line_info): Get cold section label from function struct; test
3795         to make sure cfun is defined.
3796         (add_location_or_const_value_attribute): Likewise.
3797         (dwarf2out_var_location): Likewise.
3798         (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
3799         write out cold_text_section_label if partition flag is set.
3800         (dwarf2out_finish): Write out cold_end_label if partition flag is set;
3801         * function.h (struct function): Add new fields to point to hot/cold
3802         section labels: hot_section_label, cold_section_label,
3803         hot_section_end_label and cold_section_end_label; also add new field
3804         for cold text section name, unlikely_text_section_name.
3805         * opts.c (decode_options): Turn off partitioning flag if
3806         !targetm.have_named_sections.
3807         * output.h (hot_section_label): Remove.
3808         (hot_section_end_label): Remove.
3809         (cold_section_end_label): Remove.
3810         (unlikely_section_label): Remove.
3811         (unlikely_text_section_name): Remove.
3812         * passes.c (rest_of_handle_final):  Remove extra blank line.
3813         * varasm.c (unlikely_section_label): Remove.
3814         (hot_section_label): Remove.
3815         (hot_section_end_label): Remove.
3816         (cold_section_end_label): Remove.
3817         (unlikely_text_section_name):  Remove.
3818         (initialize_cold_section_name): Modify to call
3819         targetm.strip_name_encoding; to store cold section name in current
3820         function struct, if it exists; and to only use the decl_section_name
3821         if flag_named_sections is true.
3822         (unlikely_text_section): Modify to get section name out of current
3823         function struct, if there is one; otherwise build it from
3824         UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
3825         (in_unlikely_text_section): Likewise.
3826         (named_section): Modify to get/put cold section name in current function
3827         struct, if there is one.
3828         (function_section):  Change 'bool unlikely' to 'int reloc'; check
3829         targetm.have_named_sections before calling named_section.
3830         (current_function_section): Likewise.
3831         (assemble_start_function): Modify to get/put unlikely_text_section_name
3832         in current function struct; modify to get hot/cold section labels
3833         from function struct; initialize labels using
3834         ASM_GENERATE_INTERNAL_LABEL;
3835         test partitioning flag before writing out hot section label.
3836         (assemble_end_function): Test partitioning flag before writing out
3837         hot/cold section labels.
3838         (default_section_type_flags_1):  Get cold text section name from
3839         function struct if there is one; Set flags correctly for
3840         cold text section if there is not a current function struct.
3841
3842 2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
3843
3844         * tree-ssa-propagate.c (set_rhs): Revert last change.
3845
3846 2005-04-27  Steve Ellcey  <sje@cup.hp.com>
3847
3848         * explow.c (convert_memory_address): Add gcc_assert.
3849
3850 2005-04-27  Mark Mitchell  <mark@codesourcery.com>
3851
3852         * configure.ac: Check for ld --sysroot support.
3853         * gcc.c: Document %R specifier for specs.
3854         (SYSROOT_SPEC): New macro.
3855         (sysroot_spec): New variable.
3856         (static_specs): Add sysroot_spec.
3857         (main): Pass the sysroot spec to the linker if appropriate.
3858         * configure: Regenerated.
3859         * config.in: Likewise.
3860
3861 2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
3862
3863         * fold-const.c (fold_binary): Use build_fold_addr_expr
3864         for address calculation and INDIRECT_REF handling.
3865
3866 2005-04-27  Andrew Haley  <aph@redhat.com>
3867
3868         * postreload-gcse.c (hash_scan_set): Remove bogus assertion.
3869
3870 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
3871
3872         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Reserve arm frame
3873         pointer when thumb backtracing is on.
3874
3875         * config/fp-bit.c (abort): Revert change.
3876
3877 2005-04-27  Ian Lance Taylor  <ian@airs.com>
3878
3879         * c-semantics.c (add_stmt): Don't test STATEMENT_CODE_P.
3880
3881 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
3882
3883         * tree-ssa-dce.c: Fix a comment typo.
3884
3885 2005-04-27  David S. Miller  <davem@davemloft.net>
3886
3887         * explow.c (allocate_dynamic_stack_space SETJMP_VIA_SAVE_AREA):
3888         Kill setjmpless_size.  current_function_calls_setjmp is completely
3889         computed when we are called, so just use the optimized size value
3890         instead of using REG_SAVE_AREA notes.
3891         (optimize_save_area_alloca): Delete....
3892         * rtl.h (optimize_save_area_alloca): Likewise...
3893         * passes.c (rest_of_compilation): and don't call it any more.
3894         * reg-notes.def (SAVE_AREA): Delete.
3895
3896 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
3897
3898         * config/fp-bit.c (abort): Add noreturn attribute.
3899
3900         * config/avr/avr.c (avr_naked_function_p): Use gcc_assert and
3901         gcc_unreachable as appropriate.
3902         (ptrreg_to_str, cond_string, avr_normalize_condition): Likewise.
3903         * config/avr/avr.h (ASM_OUTPUT_REG_PUSH,
3904         ASM_OUTPUT_REG_POP): Likewise.
3905
3906 2005-04-27  Paolo Bonzini  <bonzini@gnu.org>
3907
3908         * tree-complex.c (expand_vector_operations_1): Do not build
3909         VIEW_CONVERT_EXPR's for the lhs.
3910
3911 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
3912
3913         * config/pa/pa.h (PRINT_OPERAND_ADDRESS): Use gcc_assert, remove
3914         unnecessary noncanonical RTL handling.
3915         * config/pa/pa64-linux.h (INITIAL_ELIMINATION_OFFSET): Use
3916         gcc_assert and gcc_unreachable.
3917
3918         * config/arm/arm.h (ARM_PRINT_OPERAND_ADDRESS): Use gcc_assert and
3919         gcc_unreachable as appropriate.
3920         (THUMB_PRINT_OPERAND_ADDRESS): Likewise.
3921         * config/arm/arm.c (arm_override_options, arm_compute_func_type,
3922         use_return_insn, const_ok_for_op, arm_gen_constant,
3923         arm_canonicalize_comparison, legitimize_pic_address,
3924         thumb_find_work_register, arm_load_pic_register, arm_rtx_costs_1,
3925         arm_cirrus_insn_p, cirrus_reorg, minmax_code,
3926         load_multiple_sequence, emit_ldm_seq, store_multiple_sequence,
3927         emit_stm_seq, arm_gen_movmemqi, arm_select_dominance_cc_mode,
3928         arm_select_cc_mode, arm_reload_in_hi, arm_reload_out_hi,
3929         move_minipool_fix_forward_ref, move_minipool_fix_backward_ref,
3930         dump_minipool, create_fix_barrier, push_minipool_fix, arm_reorg,
3931         fp_immediate_constant, fp_const_from_val, vfp_output_fstmx,
3932         output_call, output_mov_long_double_fpa_from_arm,
3933         output_mov_long_double_arm_from_fpa,
3934         output_mov_double_fpa_from_arm, output_mov_double_arm_from_fpa,
3935         output_move_double, arithmetic_instr, shift_op, int_log2,
3936         output_return_instruction, arm_output_function_prologue,
3937         arm_output_epilogue, arm_output_function_epilogue,
3938         emit_multi_reg_push, arm_get_frame_offsets,
3939         arm_compute_initial_elimination_offset, arm_expand_prologue,
3940         arm_print_operand, arm_assemble_integer, get_arm_condition_code,
3941         arm_final_prescan_insn, arm_init_iwmmxt_builtins,
3942         arm_expand_binop_builtin, thumb_pushpop, thumb_far_jump_used_p,
3943         thumb_compute_initial_elimination_offset,
3944         thumb_output_function_prologue, thumb_load_double_from_address,
3945         thumb_output_move_mem_multiple, thumb_reload_out_hi,
3946         arm_emit_vector_const, arm_dbx_register_number): Likewise.
3947         * config/arm/pe.c (arm_mark_dllexport, arm_mark_dllimport): Likewise.
3948         * config/arm/arm.md (thumb_extendhisi2,
3949         *thumb_extendhisi2_insn_v6, *thumb_extendqisi2,
3950         *thumb_extendqisi2_v6, movhi, *thumb_movhi_insn,
3951         thumb_movhi_clobber, movqi, *arm_buneq, *arm_bltgt,
3952         *arm_buneq_reversed, *arm_bltgt_reversed, suneq,&nb