OSDN Git Service

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