OSDN Git Service

* config/mmix/mmix.opt: New file.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-05-02  Hans-Peter Nilsson  <hp@bitrange.com>
2
3         * config/mmix/mmix.opt: New file.
4         * config/mmix/mmix.h: Move options-related comments to mmix.opt.
5         (mmix_cc1_ignored_option): Don't declare.
6         (TARGET_OPTIONS, TARGET_MASK_LIBFUNCS, TARGET_MASK_ABI_GNU)
7         (TARGET_MASK_FCMP_EPSILON, TARGET_MASK_ZERO_EXTEND)
8         (TARGET_MASK_KNUTH_DIVISION, TARGET_MASK_TOPLEVEL_SYMBOLS)
9         (TARGET_MASK_BRANCH_PREDICT, TARGET_MASK_USE_RETURN_INSN)
10         (TARGET_MASK_BASE_ADDRESSES, TARGET_LIBFUNC, TARGET_ABI_GNU,
11         (TARGET_FCMP_EPSILON, TARGET_ZERO_EXTEND, TARGET_KNUTH_DIVISION)
12         (TARGET_TOPLEVEL_SYMBOLS, TARGET_BRANCH_PREDICT)
13         (TARGET_BASE_ADDRESSES, TARGET_USE_RETURN_INSN, TARGET_SWITCHES):
14         Don't define.
15         (TARGET_DEFAULT): Change TARGET_MASK_... to MASK_...
16         * config/mmix/mmix.c (mmix_cc1_ignored_option): Remove.
17         (TARGET_DEFAULT_TARGET_FLAGS): Override default.
18
19 2005-05-02  Joseph S. Myers  <joseph@codesourcery.com>
20
21         PR c/15698
22         * c-tree.h (C_DECL_BUILTIN_PROTOTYPE): New.
23         * c-decl.c (current_function_prototype_built_in,
24         current_function_prototype_arg_types): New.
25         (merge_decls): Keep source location of prototype followed by
26         nonprototype declaration.  Update C_DECL_BUILTIN_PROTOTYPE.
27         (builtin_function): Set C_DECL_BUILTIN_PROTOTYPE.
28         (start_function): Always set current_function_prototype_locus,
29         current_function_prototype_built_in and
30         current_function_prototype_arg_types.  Check for external
31         prototype whether or not visible for external function and set
32         current_function_prototype_arg_types accordingly.
33         (store_parm_decls_oldstyle): Use
34         current_function_prototype_arg_types for checking old-style
35         definition against prototype.  Give warnings only if
36         current_function_prototype_built_in).
37
38 2005-05-02  Daniel Jacobowitz  <dan@codesourcery.com>
39
40         * ggc.h (ggc_alloc_zone_pass_stat): New macro.
41         (ggc_alloc_zone_stat): Don't define.
42         * ggc-zone.c (ggc_alloc_typed_stat, ggc_alloc_stat): Use
43         ggc_alloc_zone_pass_stat.
44         * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Likewise.
45         * tree.c (make_node_stat, copy_node_stat, make_tree_binfo_stat)
46         (make_tree_vec_stat, tree_cons_stat, build1_stat): Likewise.
47
48 2005-05-02  Daniel Jacobowitz  <dan@codesourcery.com>
49
50         * calls.c (expand_call): Handle current_function_pretend_args_size
51         when checking for sibcalls.
52
53 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
54
55         PR tree-optimization/21294
56         * tree-vrp.c (vrp_expr_computes_nonzero): New.
57         (extract_range_from_expr): Call vrp_expr_computes_nonzero.
58
59 2005-05-02  Janis Johnson  <janis187@us.ibm.com>
60
61         PR 19985
62         * gcov-io.h: Declare gcov external functions hidden.
63
64 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
65
66         * tree-ssa-uncprop.c (equiv_hash_elt, remove_equivalence,
67         record_equiv, tree_ssa_uncprop, uncprop_into_successor_phis):
68         Use VEC instead of VARRAY.
69         (equiv_free): New.
70
71         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Factor
72         out common code.
73
74 2005-05-02  Paolo Bonzini  <bonzini@gnu.org>
75
76         * c-common.c (resolve_overloaded_builtin): Forward to target
77         hook for BUILT_IN_MD built-ins.
78         * c-typeck.c (finish_call_expr): Call resolve_overloaded_builtin
79         for all types of built-in.
80         * target-def.h (TARGET_RESOLVE_OVERLOADED_BUILTIN): New.  Use it
81         in the definition of the target hooks struct.
82         * target.h (struct gcc_target): Add resolve_overloaded_builtin.
83         * config/rs6000/altivec.h: Rewritten.
84         * config/rs6000/rs6000-c.c (struct altivec_builtin_types,
85         altivec_resolve_overloaded_builtin, altivec_build_resolved_builtin,
86         rs6000_builtin_type, rs6000_builtin_type_compatible,
87         altivec_overloaded_builtins, rs6000_builtin_type,
88         rs6000_builtin_type_compatible): New.
89         * config/rs6000/rs6000.c (rs6000_builtin_types, rs6000_builtin_decls):
90         New.
91         (def_builtin): Turn into a function.  Check for duplicates and store
92         the builtin into rs6000_builtin_decls.
93         (bdesc_3arg, bdesc_dst, bdesc_altivec_preds, bdesc_2arg,
94         bdesc_1arg): Add overloaded builtins.
95         (altivec_expand_builtin): Check for unresolved overloaded builtins,
96         do not support ALTIVEC_COMPILETIME_ERROR.
97         (rs6000_init_builtins): Add opaque 128-bit vector, and internal
98         nodes to represent front-end types.
99         (altivec_init_builtins, rs6000_common_init_builtins): Create builtins
100         with opaque arguments and/or return values.
101         * config/rs6000/rs6000.h (enum rs6000_builtins): Remove
102         ALTIVEC_COMPILETIME_ERROR and add Altivec overloaded builtins.
103         (rs6000_builtin_type_index): New.
104         (is_ev64_opaque_type): Rename to...
105         (rs6000_is_opaque_type): ... this.
106         (rs6000_cpu_cpp_builtins): Install the resolve_overloaded_builtin
107         target hook.
108
109 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
110
111         * function.c (reorder_blocks, reorder_blocks_1): Use VEC
112         instead of VARRAY.
113
114 2005-05-02  Nathan Sidwell  <nathan@codesourcery.com>
115             Bernd Schmidt  <bernd.schmidt@analog.com>
116
117         * config/bfin/bfin.c (emit_link_insn, effective_address_32bit_p,
118         print_address_operand, print_operand, legitimize_pic_address,
119         asm_conditional_branch, bfin_gen_compare, output_push_multiple,
120         output_pop_multiple): Use gcc_assert or gcc_unreachable as
121         appropriate.
122         * config/bfin/bfin.md (movsf splitter, beq, bne): Likewise.
123
124 2005-05-02  Dorit Naishlos  <dorit@il.ibm.com>
125
126         * doc/passes.texi: Document vectorization pass.
127
128 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
129
130         * tree-scalar-evolution.c (get_exit_conditions_rec,
131         select_loops_exit_conditions,
132         number_of_iterations_for_all_loops,
133         analyze_scalar_evolution_for_all_loop_phi_nodes,
134         scev_analysis): Use VEC instead of VARRAY.
135
136 2005-05-02  Michael Matz  <matz@suse.de>
137
138         PR c++/19542
139         * c-common.c (c_common_nodes_and_builtins): Create global null_node.
140         (warn_strict_null_sentinel): Define.
141         (check_function_sentinel): Check for null_node as valid sentinel too.
142         * c-common.h (c_tree_index): Added CTI_NULL.
143         (null_node) Define global_tree[CTI_NULL].
144         (warn_strict_null_sentinel): Declare.
145         * c-opts.c: (c_common_handle_option): Handle -Wstrict-null-sentinel.
146         * c.opt: (Wstrict-null-sentinel): New C++ option.
147         * doc/invoke.texi (C++ Options): Document -Wstrict-null-sentinel.
148
149 2005-05-01  Kazu Hirata  <kazu@cs.umass.edu>
150
151         * gimplify.c (gimplify_compound_lval): Use VEC instead of
152         VARRAY.
153
154         * global.c (calculate_reg_pav): Use VEC instead of VARRAY.
155
156         * dwarf2out.c (decl_scope_table, push_decl_scope,
157         pop_decl_scope, scope_die_for, dwarf2out_init): Use VEC
158         instead of VARRAY.
159
160 2005-05-01  Mark Mitchell  <mark@codesourcery.com>
161
162         PR C++/14391
163         * c-cppbuiltin.c (c_cpp_builtins): Do not define __GXX_WEAK__ to 1
164         if !flag_weak.
165         * doc/cpp.texi (__DEPRECATED): Document.
166         (__EXCEPTIONS): Likewise.
167         (__GXX_WEAK__): Likewise.
168
169         * function.c (INVOKE__main): Do not define.
170         (expand_main_function): Check HAS_INIT_SECTION when determining
171         whether or not to call __main.
172
173 2005-05-01  Kazu Hirata  <kazu@cs.umass.edu>
174
175         * tree-ssa-loop-ivopts.c: Fix a comment typo.
176
177 2005-01-05  Paul Brook  <paul@codesourcery.com>
178
179         * config/arm/arm.h (ARM_EMIT_TRAMPOLINE_CACHE_CLEAR): Define.
180         (INITIALIZE_TRAMPOLINE): Use it.
181         * config/arm/linux-gas.h (INITIALIZE_TRAMPOLINE): Remove.
182         * config/arm/netbsd.h (INITIALIZE_TRAMPOLINE): Remove.
183         * config/arm/netbsd-elf.h (INITIALIZE_TRAMPOLINE): Remove.
184
185 2005-05-01  Gerald Pfeifer  <gerald@pfeifer.com>
186
187         * doc/install.texi (Specific): Omit dots in the @anchors names
188         for i?86-*-sco3.2v5*, i?86-*-solaris2.10, and sparc-sun-solaris2.7.
189         Omit underscores for x86_64-*-* and the "all ELF targets" entry.
190
191 2005-05-01  Zdenek Dvorak  <dvorakz@suse.cz>
192
193         PR tree-optimization/18316
194         PR tree-optimization/19126
195         * tree.c (build_int_cst_type): Avoid shift by size of type.
196         * tree-scalar-evolution.c (simple_iv): Add allow_nonconstant_step
197         argument.
198         * tree-scalar-evolution.h (simple_iv): Declaration changed.
199         * tree-ssa-loop-ivopts.c (struct iv_cand): Add depends_on
200         field.
201         (dump_cand): Dump depends_on information.
202         (determine_biv_step): Add argument to simple_iv call.
203         (contains_abnormal_ssa_name_p): Handle case expr == NULL.
204         (find_bivs, find_givs_in_stmt_scev): Do not require step to be a
205         constant.
206         (add_candidate_1): Record depends_on for candidates.
207         (tree_int_cst_sign_bit, constant_multiple_of): New functions.
208         (get_computation_at, get_computation_cost_at, may_eliminate_iv):
209         Handle ivs with nonconstant step.
210         (iv_ca_set_remove_invariants, iv_ca_set_add_invariants): New functions.
211         (iv_ca_set_no_cp, iv_ca_set_cp): Handle cand->depends_on.
212         (create_new_iv): Unshare the step before passing it to create_iv.
213         (free_loop_data): Free cand->depends_on.
214         (build_addr_strip_iref): New function.
215         (find_interesting_uses_address): Use build_addr_strip_iref.
216         (strip_offset_1): Split the recursive part from strip_offset.
217         Strip constant offset component_refs and array_refs.
218         (strip_offset): Split the recursive part to strip_offset_1.
219         (add_address_candidates): Removed.
220         (add_derived_ivs_candidates): Do not use add_address_candidates.
221         (add_iv_value_candidates): Add candidates with stripped constant
222         offset.  Consider all candidates with initial value 0 important.
223         (struct affine_tree_combination): New.
224         (aff_combination_const, aff_combination_elt, aff_combination_scale,
225         aff_combination_add_elt, aff_combination_add,
226         tree_to_aff_combination, add_elt_to_tree, aff_combination_to_tree,
227         fold_affine_sum): New functions.
228         (get_computation_at): Use fold_affine_sum.
229         * tree-ssa-loop-manip.c (create_iv): Handle ivs with nonconstant step.
230         * tree-ssa-loop-niter.c (number_of_iterations_exit): Add argument
231         to simple_iv call.
232
233 2005-04-30  Michael Matz  <matz@suse.de>
234
235         * config/i386/i386.md (movmemsi): Also active when
236         TARGET_INLINE_ALL_STRINGOPS.
237
238 2005-04-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
239
240         PR bootstrap/20633
241         * config/freebsd-spec.h (FBSD_CPP_SPEC): Add %(cpp_arch).
242
243 2005-04-30  Paul Brook  <paul@codesourcery.com>
244
245         * config/arm/bpabi.h (RENAME_LIBRARY_SET): Always use .thumb_set in
246         thumb mode.
247         * config/arm/ieee754-df.S: Use __INTERWORKING_STUBS__.
248         * config/arm/ieee754-sf.S: Ditto.
249         * config/arm/lib1funcs.asm: Define and use __INTERWORKING_STUBS__.
250         (FUNC_ALIAS): Use .thumb_set for thumb routines.
251
252 2005-04-30  Kazu Hirata  <kazu@cs.umass.edu>
253
254         * tree-ssanames.c: Fix a comment typo.
255         * doc/options.texi: Fix a typo.
256
257 2005-04-30  Nathan Sidwell  <nathan@codesourcery.com>
258
259         * config/h8300/h8300.c (byte_reg): Use gcc_assert and
260         gcc_unreachable as appropriate.
261         (split_adds_subs, cond_string, print_operand,
262         h8300_initial_elimination_offset, h8300_classify_operand,
263         h8300_unary_length, h8300_short_immediate_length,
264         h8300_bitfield_length, h8300_binary_length,
265         h8300_insn_length_from_table, compute_mov_length, output_plussi,
266         compute_plussi_length, compute_plussi_cc, output_logical_op,
267         compute_logical_op_length, compute_logical_op_cc,
268         output_h8sx_shift, get_shift_alg, h8300_shift_needs_scratch_p,
269         output_a_shift, compute_a_shift_length, compute_a_shift_cc,
270         output_a_rotate, compute_a_rotate_length, fix_bit_operand,
271         h8300_regs_ok_for_stm): Likewise.
272         * config/h8300/h8300.md (*movsi_h8300, *movsf_h8300,
273         monitor_prologue): Likewise.
274
275 2005-04-30  Kazu Hirata  <kazu@cs.umass.edu>
276
277         * loop-invariant.c (invariants, create_new_invariant,
278         get_inv_cost, best_gain_for_invariant,
279         find_invariants_to_move, move_invariants,
280         init_inv_motion_data, free_inv_motion_data): Use VEC instead
281         of VARRAY.
282
283 2005-04-29  Richard Henderson  <rth@redhat.com>
284
285         * function.c (instantiate_decls): Remove valid_only argument.
286         (instantiate_decls_1, instantiate_decl): Likewise.
287         (instantiate_virtual_regs_1): Delete.
288         (instantiate_virtual_regs_lossage): Delete.
289         (instantiate_virtual_regs_in_rtx): New.
290         (safe_insn_predicate): New.
291         (instantiate_virtual_regs_in_insn): New.
292         (instantiate_virtual_regs): Update to match all that.  Only run
293         instantiate_decls once.
294
295 2005-04-29  Richard Henderson  <rth@redhat.com>
296             Daniel Jacobowitz  <dan@codesourcery.com>
297
298         * gengtype.c (write_func_for_structure): Split out ...
299         (output_type_enum): ... new function.  Fix thinko accessing
300         TYPE_PARAM_STRUCT data.
301
302 2005-04-29  Tom Tromey  <tromey@redhat.com>
303
304         * tree.c (build_block): Removed unused 'tags' argument.
305         * tree.h (build_block): Removed argument.
306
307 2005-04-29  Michael Matz  <matz@suse.de>
308
309         PR rtl-optimization/21144
310         * postreload.c (reload_cse_move2add): Check for VOIDmode.
311
312 2005-04-29  Bob Wilson  <bob.wilson@acm.org>
313
314         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Define to disable
315         flag_reorder_blocks.
316
317 2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
318
319         PR tree-optimization/21030
320         * tree-vrp.c (adjust_range_with_scev): Do not create invalid
321         ranges where VR->MAX is smaller than VR->MIN.
322
323 2005-04-29  Devang Patel  <dpatel@apple.com>
324
325         PR tree-optimization/21272
326         PR tree-optimization/21266
327         * tree-if-conv.c (find_phi_replacement_condition): Fix think-o.
328         
329 2005-04-29  Kazu Hirata  <kazu@cs.umass.edu>
330
331         * tree-flow-inline.h: Fix a comment typo.
332         * doc/tree-ssa.texi: Fix a typo.
333
334         * tree-flow-inline.h, tree-ssa-operands.c: Fix comment typos.
335
336 2005-04-29  Nathan Sidwell  <nathan@codesourcery.com>
337
338         * config/fr30/fr30.c (fr30_expand_prologue): Use gcc_assert and
339         gcc_unreachable as appropriate.
340         (fr30_expand_epilogue, fr30_setup_incoming_varargs,
341         fr30_print_operand, fr30_move_double): Likewise.
342         * config/fr30/fr30.md (*movsi_internal, *movsf_internal): Likewise.
343
344 2005-04-29  Mark Mitchell  <mark@codesourcery.com>
345
346         * config/arm/arm.h (ARM_EABI_CTORS_SECTION_OP): Do not define if a
347         definition has already been provided.
348         (ARM_EABI_DTORS_SECTION_OP): Likewise.
349         * config/arm/symbian.h (ARM_EABI_CTORS_SECTION_OP): Define.
350         (ARM_EABI_DTORS_SECTION_OP): Likewise.
351
352 2005-04-29  Jim Tison  <jtison@us.ibm.com>
353
354         * config/s390/s390.md ("prologue_tpf", "epilogue_tpf"): Alter
355         trace hooks calls to improve performance.
356
357 2005-04-29  Julian Brown  <julian@codesourcery.com>
358             Mark Mitchell  <mark@codesourcery.com>
359             Paul Brook  <paul@codesourcery.com>
360
361         * crtstuff.c: Handle targets that use .init_array.
362         * function.c (HAS_INIT_SECTION): Do not define. Instead, make sure
363         that INVOKE__main is set correctly.
364         (expand_main_function): Test INVOKE__main.
365         * libgcc2.c: Do not define __main when using .init_array.
366         * config/arm/arm.c (arm_elf_asm_constructor): New function.
367         * config/arm/arm.h (CTORS_SECTION_ASM_OP): Define, with specialized
368         libgcc version.
369         (DTORS_SECTION_ASM_OP): Likewise.
370         (CTOR_LIST_BEGIN): Define specially when in libgcc.
371         (CTOR_LIST_END): Likewise.
372         (DTOR_LIST_BEGIN): Likewise.
373         (DTOR_LIST_END): Likewise.
374         * config/arm/bpapi.h (INIT_SECTION_ASM_OP): Do not define it.
375         (FINI_SECTION_ASM_OP): Likewise.
376         (INIT_ARRAY_SECTION_ASM_OP): Define.
377         (FINI_ARRAY_SECTION_ASM_OP): Likewise.
378         * config/arm/elf.h (TARGET_ASM_CONSTRUCTOR): Define.
379         (SUPPORTS_INIT_PRIORITY): Evaluate to false for EABI based targets.
380         * doc/tm.texi (INIT_ARRAY_SECTION_ASM_OP): Document.
381         (FINI_ARRAY_SECTION_ASM_OP): Likewise.  
382
383 2005-04-29  Nathan Sidwell  <nathan@codesourcery.com>
384
385         * config/m68k/m68k.c (m68k_initial_elimination_offset): Use
386         gcc_assert and gcc_unreachable as appropriate.
387         (output_dbcc_and_branch, output_scc_di, legitimize_pic_address,
388         const_int_cost, output_move_const_into_data_reg,
389         output_move_qimode, output_move_double, find_addr_reg,
390         print_operand, print_operand_address): Likewise.
391         * config/m68k/m68k.md (adddi3, subdi3, negsf2, negdf2, abssf2,
392         absdf2, sordered, sunordered, suneq, sunge, sungt, sunle, sunlt,
393         sltgt, bordered, bunordered, buneq, bunge, bungt, bunle, bunlt,
394         bltgt, *bordered_rev, *bunordered_rev, *buneq_rev, *bunge_rev,
395         *bunle_rev, *bunlt_rev, *bltgt_rev, negxf2, absxf2,
396         conditional_trap): Likewise.
397         * config/m68k/m68kelf.h (ASM_OUTPUT_ALIGN): Remove unreachable code.
398
399 2005-04-29  Nathan Sidwell  <nathan@codesourcery.com>
400
401         * config/xtensa/xtensa.c (gen_int_relational): Use gcc_assert and
402         gcc_unreachable as appropriate.
403         (gen_conditional_move, xtensa_split_operand_pair,
404         xtensa_split_operand_pair, xtensa_copy_incoming_a7,
405         xtensa_copy_incoming_a7, xtensa_copy_incoming_a7,
406         xtensa_copy_incoming_a7, xtensa_output_literal,
407         xtensa_output_literal, xtensa_output_literal): Likewise.
408         * config/xtensa/xtensa.h (INITIAL_ELIMINATION_OFFSET): Likewise.
409         * config/xtensa/xtensa.md (*btrue, *bfalse, *ubtrue, *ubfalse,
410         *bittrue, *bitfalse, *masktrue, *maskfalse, movsicc_internal0,
411         movsicc_internal1, movsfcc_internal0,
412         movsfcc_internal1): Likewise.
413
414 2005-04-28  James E Wilson  <wilson@specifixinc.com>
415
416         * config/i386/i386.h (HI_REGISTER_NAMES): Fix typos in comment.
417         (ADDITIONAL_REGISTER_NAMES): Delete obsolete mmx register entries.
418
419 2005-04-28  DJ Delorie  <dj@redhat.com>
420
421         * opt-functions.awk (var_set): Emit proper initializer for
422         non-target bitfields.
423
424 2005-04-28  Devang Patel  <dpatel@apple.com>
425
426         * dbxout.c (have_used_extensions): Remove.
427         (dbxout_type_fileds, dbxout_type, dbxout_symbol): Remove use of
428         have_used_extensions.
429         
430 2005-04-28  James E Wilson  <wilson@specifixinc.com>
431
432         * doc/install.texi: Update -enable-languages info.  Correct path to
433         html docs.
434
435 2005-04-28  DJ Delorie  <dj@redhat.com>
436
437         * optc-gen.awk (END): Make sure no variable is defined more
438         than once.
439         * opth-gen.awk (END): Allocate bits on a per-variable basis.
440         Allow for bitfield variables other than target_flags.
441         * doc/options.text (Mask): Document that you may specify a
442         variable other than target_flags.
443
444 2005-04-28  Martin Koegler <mkoegler@auto.tuwien.ac.at>
445
446         PR rtl-optimization/18877
447         * reload.c (decompose) <case REG, case SUBREG>: Handle pseudo reg
448         number in val.start.
449
450 2005-04-28  David Edelsohn  <edelsohn@gnu.org>
451
452         PR target/20813
453         * config/rs6000/aix43.h (SUBSUBTARGET_SWITCHES, aix64): Add
454         MASK_PPC_GFXOPT.
455         * config/rs6000/aix51.h (SUBSUBTARGET_SWITCHES, aix64): Same.
456         * config/rs6000/aix52.h (SUBSUBTARGET_SWITCHES, aix64): Same.
457         * config/rs6000/sysv4.h (SUBTARGET_SWITCHES, 64): Same.
458
459 2005-04-28  Richard Earnshaw  <richard.earnshaw@arm.com>
460
461         * arm.c (legitimize_pic_address): Fix sense of assertion test for
462         creating pseudos when the base offset is too large.
463
464 2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
465
466         * global.c (earlyclobber_regclass): Change the type to
467         VEC(int,heap).
468         (check_earlyclobber): Update uses of earlyclobber_regclass.
469         (mark_reg_use_for_earlyclobber): Likewise.
470         (calculate_local_reg_bb_info): Allocate and free
471         earlyclobber_regclass using the VEC API.
472
473 2005-04-28  Nathan Sidwell  <nathan@codesourcery.com>
474
475         * tree-ssa-alias.c (push_fields_onto_fieldstack): Remove bogus
476         assert.
477
478 2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
479
480         * modulo-sched.c, tree-stdarg.c: Use targetm.foo instead of
481         (*targetm.foo).
482
483         * config.gcc: Obsolete c4x-* and tic4x-*.
484
485         * tree.h (edge_def): Remove.
486
487         * bt-load.c, cfgexpand.c, dwarf2out.c, emit-rtl.c, expr.c,
488         function.c, global.c, lcm.c, loop-invariant.c, optabs.c,
489         reorg.c, resource.c, tree-ssa-loop-ivopts.c, value-prof.c: Use
490         JUMP_P, LABEL_P, REG_P, MEM_P, NONJUMP_INSN_P, and INSN_P
491         where appropriate.
492
493         * attribs.c, c-pragma.c, caller-save.c, cfghooks.h,
494         coverage.c, cselib.h, domwalk.c, domwalk.h, errors.c,
495         errors.h, gcov-dump.c, gcov-io.c, gcov-io.h, gen-protos.c,
496         genattrtab.h, genextract.c, gthr-win32.h, insn-notes.def,
497         integrate.c, lambda-mat.c, lambda.h, libgcov.c, local-alloc.c,
498         machmode.def, mips-tfile.c, params.c, pretty-print.c,
499         print-rtl.c, protoize.c, regmove.c, sched-vis.c, tree-chrec.h,
500         tree-data-ref.h, vec.h, config/darwin-c.c, config/sol2-c.c,
501         config/sol2.c, config/arm/arm-cores.def, config/arm/cirrus.md,
502         config/arm/symbian.h, config/c4x/c4x.c, config/c4x/c4x.h,
503         config/i386/cygming.h, config/i386/djgpp.h,
504         config/i386/lynx.h, config/i386/netware.c,
505         config/i386/winnt.c, config/ia64/ia64-c.c,
506         config/iq2000/iq2000.c, config/m32r/little.h,
507         config/m68k/m68k-protos.h, config/m68k/m68k.h,
508         config/m68k/m68k.md, config/mcore/mcore.c,
509         config/mcore/mcore.h, config/mmix/mmix.c, config/mmix/mmix.md,
510         config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
511         config/mn10300/mn10300.h, config/ns32k/netbsd.h,
512         config/ns32k/ns32k.c, config/ns32k/ns32k.h,
513         config/pa/pa-hpux11.h, config/pdp11/pdp11.c,
514         config/pdp11/pdp11.h, config/rs6000/darwin.h,
515         config/rs6000/default64.h, config/rs6000/rs6000-c.c,
516         config/s390/2064.md, config/s390/2084.md,
517         config/s390/s390-modes.def, config/s390/s390-protos.h,
518         config/s390/tpf.h, config/sh/sh.h, config/sh/symbian.c,
519         config/stormy16/stormy16.c, config/vax/vax-protos.h,
520         config/vax/vax.c, config/vax/vax.h,
521         config/xtensa/lib1funcs.asm, config/xtensa/xtensa.md: Update
522         copyright.
523
524 2005-04-28  Joseph S. Myers  <joseph@codesourcery.com>
525
526         * c-typeck.c (build_compound_expr): Correct logic in last change.
527
528 2005-04-27  James E. Wilson  <wilson@specifixinc.com>
529
530         * config/ia64/ia64.c (update_set_flags): Delete ppred and pcond
531         parameters.  Replace conditional move code with assert checking for
532         ar.lc.  Delete obsolete comments.
533         (set_src_needs_barrier): Delete cond parameter, and code using it.
534         (rtx_needs_barrier): Delete initialization of cond.  Fix typo in
535         assert checking for PR_REGS.  Fix calls to update_set_flags and
536         set_src_needs_barrier.
537         (group_barrier_needed): Renamed from group_barrier_needed_p.  Fix all
538         callers.  Rewrite explanatory comment before the function.
539         (safe_group_barrier_needed): Renamed from safe_group_barrier_needed_p.
540         Fix all callers.
541
542 2005-04-27  Mike Stump  <mrs@apple.com>
543
544         * doc/cpp.texi: gcc now implements universal character names.
545
546 2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
547
548         PR c/21159
549         * c-typeck.c (build_compound_expr): Don't warn for left-hand side
550         being a compound expression whose right-hand side is cast to void.
551
552 2005-04-27  Caroline Tice  <ctice@apple.com>
553
554         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
555         Remove targetm.have_named_sections test.
556         (fix_edges_for_rarely_executed_code): Likewise.
557         (insert_section_boundary_note): Likewise.
558         (reorder_basic_blocks): Check partitioning flag before calling
559         verify_hot_cold_block_grouping.
560         * dbxout.c (dbxout_function_end): Get hot/cold section labels from
561         the function struct rather than global variables.
562         * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
563         (COLD_END_LABEL): Likewise
564         (cold_text_section_label): New static global variable.
565         (cold_end_label): Likewise.
566         (dwarf2out_switch_text_section): Get hot/cold section labels from
567         the function struct rather than global variables; test to make sure
568         cfun is defined.
569         (output_aranges): Use cold_text_section_label and cold_end_label;
570         check partitioning flag before putting out delta.
571         (output_ranges): Remove incorrect code attempting to use
572         hot/cold labels.
573         (output_line_info): Get cold section label from function struct; test
574         to make sure cfun is defined.
575         (add_location_or_const_value_attribute): Likewise.
576         (dwarf2out_var_location): Likewise.
577         (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
578         write out cold_text_section_label if partition flag is set.
579         (dwarf2out_finish): Write out cold_end_label if partition flag is set;
580         * function.h (struct function): Add new fields to point to hot/cold
581         section labels: hot_section_label, cold_section_label,
582         hot_section_end_label and cold_section_end_label; also add new field
583         for cold text section name, unlikely_text_section_name.
584         * opts.c (decode_options): Turn off partitioning flag if
585         !targetm.have_named_sections.
586         * output.h (hot_section_label): Remove.
587         (hot_section_end_label): Remove.
588         (cold_section_end_label): Remove.
589         (unlikely_section_label): Remove.
590         (unlikely_text_section_name): Remove.
591         * passes.c (rest_of_handle_final):  Remove extra blank line.
592         * varasm.c (unlikely_section_label): Remove.
593         (hot_section_label): Remove.
594         (hot_section_end_label): Remove.
595         (cold_section_end_label): Remove.
596         (unlikely_text_section_name):  Remove.
597         (initialize_cold_section_name): Modify to call
598         targetm.strip_name_encoding; to store cold section name in current
599         function struct, if it exists; and to only use the decl_section_name
600         if flag_named_sections is true.
601         (unlikely_text_section): Modify to get section name out of current
602         function struct, if there is one; otherwise build it from
603         UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
604         (in_unlikely_text_section): Likewise.
605         (named_section): Modify to get/put cold section name in current function
606         struct, if there is one.
607         (function_section):  Change 'bool unlikely' to 'int reloc'; check
608         targetm.have_named_sections before calling named_section.
609         (current_function_section): Likewise.
610         (assemble_start_function): Modify to get/put unlikely_text_section_name
611         in current function struct; modify to get hot/cold section labels
612         from function struct; initialize labels using
613         ASM_GENERATE_INTERNAL_LABEL;
614         test partitioning flag before writing out hot section label.
615         (assemble_end_function): Test partitioning flag before writing out
616         hot/cold section labels.
617         (default_section_type_flags_1):  Get cold text section name from
618         function struct if there is one; Set flags correctly for
619         cold text section if there is not a current function struct.
620         
621 2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
622
623         * tree-ssa-propagate.c (set_rhs): Revert last change.
624
625 2005-04-27  Steve Ellcey  <sje@cup.hp.com>
626
627         * explow.c (convert_memory_address): Add gcc_assert.
628
629 2005-04-27  Mark Mitchell  <mark@codesourcery.com>
630
631         * configure.ac: Check for ld --sysroot support.
632         * gcc.c: Document %R specifier for specs.
633         (SYSROOT_SPEC): New macro.
634         (sysroot_spec): New variable.
635         (static_specs): Add sysroot_spec.
636         (main): Pass the sysroot spec to the linker if appropriate.
637         * configure: Regenerated.
638         * config.in: Likewise.
639
640 2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
641
642         * fold-const.c (fold_binary): Use build_fold_addr_expr
643         for address calculation and INDIRECT_REF handling.
644
645 2005-04-27  Andrew Haley  <aph@redhat.com>
646
647         * postreload-gcse.c (hash_scan_set): Remove bogus assertion.
648
649 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
650
651         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Reserve arm frame
652         pointer when thumb backtracing is on.
653
654         * config/fp-bit.c (abort): Revert change.
655
656 2005-04-27  Ian Lance Taylor  <ian@airs.com>
657
658         * c-semantics.c (add_stmt): Don't test STATEMENT_CODE_P.
659
660 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
661
662         * tree-ssa-dce.c: Fix a comment typo.
663
664 2005-04-27  David S. Miller  <davem@davemloft.net>
665
666         * explow.c (allocate_dynamic_stack_space SETJMP_VIA_SAVE_AREA):
667         Kill setjmpless_size.  current_function_calls_setjmp is completely
668         computed when we are called, so just use the optimized size value
669         instead of using REG_SAVE_AREA notes.
670         (optimize_save_area_alloca): Delete....
671         * rtl.h (optimize_save_area_alloca): Likewise...
672         * passes.c (rest_of_compilation): and don't call it any more.
673         * reg-notes.def (SAVE_AREA): Delete.
674         
675 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
676
677         * config/fp-bit.c (abort): Add noreturn attribute.
678
679         * config/avr/avr.c (avr_naked_function_p): Use gcc_assert and
680         gcc_unreachable as appropriate.
681         (ptrreg_to_str, cond_string, avr_normalize_condition): Likewise.
682         * config/avr/avr.h (ASM_OUTPUT_REG_PUSH,
683         ASM_OUTPUT_REG_POP): Likewise.
684
685 2005-04-27  Paolo Bonzini  <bonzini@gnu.org>
686
687         * tree-complex.c (expand_vector_operations_1): Do not build
688         VIEW_CONVERT_EXPR's for the lhs.
689
690 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
691
692         * config/pa/pa.h (PRINT_OPERAND_ADDRESS): Use gcc_assert, remove
693         unnecessary noncanonical RTL handling.
694         * config/pa/pa64-linux.h (INITIAL_ELIMINATION_OFFSET): Use
695         gcc_assert and gcc_unreachable.
696
697         * config/arm/arm.h (ARM_PRINT_OPERAND_ADDRESS): Use gcc_assert and
698         gcc_unreachable as appropriate.
699         (THUMB_PRINT_OPERAND_ADDRESS): Likewise.
700         * config/arm/arm.c (arm_override_options, arm_compute_func_type,
701         use_return_insn, const_ok_for_op, arm_gen_constant,
702         arm_canonicalize_comparison, legitimize_pic_address,
703         thumb_find_work_register, arm_load_pic_register, arm_rtx_costs_1,
704         arm_cirrus_insn_p, cirrus_reorg, minmax_code,
705         load_multiple_sequence, emit_ldm_seq, store_multiple_sequence,
706         emit_stm_seq, arm_gen_movmemqi, arm_select_dominance_cc_mode,
707         arm_select_cc_mode, arm_reload_in_hi, arm_reload_out_hi,
708         move_minipool_fix_forward_ref, move_minipool_fix_backward_ref,
709         dump_minipool, create_fix_barrier, push_minipool_fix, arm_reorg,
710         fp_immediate_constant, fp_const_from_val, vfp_output_fstmx,
711         output_call, output_mov_long_double_fpa_from_arm,
712         output_mov_long_double_arm_from_fpa,
713         output_mov_double_fpa_from_arm, output_mov_double_arm_from_fpa,
714         output_move_double, arithmetic_instr, shift_op, int_log2,
715         output_return_instruction, arm_output_function_prologue,
716         arm_output_epilogue, arm_output_function_epilogue,
717         emit_multi_reg_push, arm_get_frame_offsets,
718         arm_compute_initial_elimination_offset, arm_expand_prologue,
719         arm_print_operand, arm_assemble_integer, get_arm_condition_code,
720         arm_final_prescan_insn, arm_init_iwmmxt_builtins,
721         arm_expand_binop_builtin, thumb_pushpop, thumb_far_jump_used_p,
722         thumb_compute_initial_elimination_offset,
723         thumb_output_function_prologue, thumb_load_double_from_address,
724         thumb_output_move_mem_multiple, thumb_reload_out_hi,
725         arm_emit_vector_const, arm_dbx_register_number): Likewise.
726         * config/arm/pe.c (arm_mark_dllexport, arm_mark_dllimport): Likewise.
727         * config/arm/arm.md (thumb_extendhisi2,
728         *thumb_extendhisi2_insn_v6, *thumb_extendqisi2,
729         *thumb_extendqisi2_v6, movhi, *thumb_movhi_insn,
730         thumb_movhi_clobber, movqi, *arm_buneq, *arm_bltgt,
731         *arm_buneq_reversed, *arm_bltgt_reversed, suneq, sltgt): Likewise.
732         * config/arm/cirrus.md (*cirrus_arm_movdi,
733         *cirrus_movdf_hard_insn): Likewise.
734         * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
735
736 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
737
738         * tree-flow.h (ssa_names): Change the type to VEC(tree,gc).
739         (num_ssa_names): Use VEC_length.
740         (ssa_names): Use VEC_index.
741         * tree-ssanames.c (ssa_names): Change the type to
742         VEC(tree,gc).
743         (init_ssanames, fini_ssa_names, make_ssanames,
744         release_ssa_name): Update uses of ssa_names.
745
746         * dojump.c, emit-rtl.c, expmed.c, expr.c, stmt.c, stor-layout.c:
747         Use fold_buildN instead of fold (buildN (...)).
748
749 2005-04-27  Devang Patel <dpatel@apple.com>
750
751         * dbxout.c (dbxout_type): Check use_gnu_debug_info_extensions.
752
753 2005-04-27  Matt Thomas <matt@3am-software.com>
754             Jan-Benedict Glaw <jbglaw@microdata-pos.de>
755
756         * config/vax/vax.c (vax_rtx_costs): Whitespace cleanup.
757         (vax_output_mi_thunk): Ditto.
758         (vax_notice_cc_update): Ditto.
759         (INDEX_REGISTER_P): Add trailing \.
760         (BASE_REGISTER_P): Add trailing \.
761         (legitimate_address_p): Whitespace cleanup.  Remove trailing \.
762
763 2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
764
765         * tree-ssa-propagate.c (set_rhs): Check operand of
766         ADDR_EXPR for gimpliness, too.
767
768 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
769
770         * tree-ssa-pre.c: Fix a comment typo.
771
772 2005-04-27  Zdenek Dvorak  <dvorakz@suse.cz>
773
774         PR tree-optimization/21171
775         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not
776         record address uses if the reference is volatile.
777
778 2004-04-27  Paolo Bonzini  <bonzini@gnu.org>
779
780         * tree-complex.c (expand_vector_operation): New, extracted from
781         expand_vector_operations_1.
782         (tree_vec_extract): Build a NOP_EXPR.
783         (expand_vec_parallel): Do not care about returning the correct type.
784         (expand_vector_operations_1): Call expand_vector_operation.
785         Build the VIEW_CONVERT_EXPR on the left side of MODIFY_EXPRs.
786
787         * tree-complex.c (gate_expand_vector_operations): New.
788         (pass_lower_vector_ssa): Use it.
789         * tree-optimize.c (init_tree_optimization_passes): Include
790         pass_lower_vector_ssa.
791         * tree-vect-transform.c (vect_min_worthwhile_factor): New.
792         (vectorizable_operation): Use it.
793         * tree-vectorizer.c (get_vectype_for_scalar_type): Accept
794         integer modes for the vector type.
795
796         * defaults.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
797         * tree-vect-analyze.c (vect_enhance_data_refs_alignment):
798         Do not cope with UNITS_PER_SIMD_WORD == 0.
799         * tree-vectorizer.c (get_vectype_for_scalar_type): Check
800         if the scalar type is not bigger than UNITS_PER_SIMD_WORD.
801         (vectorize_loops): Do not check that UNITS_PER_SIMD_WORD > 0.
802         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
803         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
804         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
805         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
806
807         * config/alpha/alpha.h (UNITS_PER_SIMD_WORD): Remove.
808         * config/bfin/bfin.h (UNITS_PER_SIMD_WORD): Remove.
809         * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): Remove.
810
811         * doc/tm.texi (UNITS_PER_WORD): Rephrase more accurately.
812         (UNITS_PER_SIMD_WORD): New.
813
814 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
815
816         * config/ia64/ia64.c (ia64_encode_addr_area): Use gcc_assert and
817         gcc_unreachable as appropriate.
818         (ia64_expand_load_address, ia64_expand_tls_address,
819         ia64_split_tmode, ia64_split_tmode_move, ia64_expand_compare,
820         ia64_expand_vecint_compare, ia64_expand_vecint_minmax,
821         next_scratch_gr_reg, ia64_initial_elimination_offset,
822         ia64_expand_prologue, ia64_expand_epilogue,
823         ia64_output_dwarf_dtprel, ia64_print_operand,
824         ia64_register_move_cost, first_instruction, rws_access_regno,
825         update_set_flags, rtx_needs_barrier, group_barrier_needed_p,
826         ia64_sched_init, ia64_variable_issue,
827         ia64_first_cycle_multipass_dfs_lookahead_guard,
828         ia64_dfa_new_cycle, issue_nops_and_insn, get_template, bundling,
829         ia64_st_address_bypass_p, ia64_ld_address_bypass_p, process_set,
830         process_for_unwind_directive, ia64_hpux_file_end): Likewise.
831         * config/ia64/ia64.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
832         * config/ia64/ia64.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
833         * config/ia64/predicates.md (got_symbolic_operand,
834         sdata_symbolic_operand): Likewise.
835         * config/ia64/vect.md (vcondv2sf): Likewise.
836
837 2005-04-27  Matt Thomas <matt@3am-software.com>
838
839         * config/vax/vax.c (legitimate_constant_address_p): New.  Formerly
840         CONSTANT_ADDRESS_P in config/vax/vax.h
841         (legitimate_constant_p): Added.  Formerly CONSTANT_P in vax.h. 
842         (INDEX_REGISTER_P): New.
843         (BASE_REGISTER_P): New.
844         (indirectable_constant_address_p): New.  Adapted from
845         INDIRECTABLE_CONSTANT_ADDRESS_P in vax.h. Use SYMBOL_REF_LOCAL_P.
846         (indirectable_address_p): New.  Adapted from
847         INDIRECTABLE_ADDRESS_P in vax.h.
848         (nonindexed_address_p): New.  Adapted from
849         GO_IF_NONINDEXED_ADDRESS in vax.h.
850         (index_temp_p): New.  Adapted from INDEX_TERM_P in vax.h.
851         (reg_plus_index_p): New.  Adapted from GO_IF_REG_PLUS_INDEX in vax.h.
852         (legitimate_address_p): New.  Adapted from
853         GO_IF_LEGITIMATE_ADDRESS in vax.h.
854         (vax_mode_dependent_address_p): New.  Adapted from
855         GO_IF_MODE_DEPENDENT_ADDRESS in vax.h.
856         * config/vax/vax.h (CONSTANT_ADDRESS_P): Use
857         legitimate_constant_address_p.
858         (CONSTANT_P): Use legitimate_constant_p.
859         (INDIRECTABLE_CONSTANT_ADDRESS_P): Removed.
860         (INDIRECTABLE_ADDRESS_P): Removed.
861         (GO_IF_NONINDEXED_ADDRESS): Removed.
862         (INDEX_TEMP_P): Removed.
863         (GO_IF_REG_PLUS_INDEX): Removed.
864         (GO_IF_LEGITIMATE_ADDRESS): Use legitimate_address_p. Two
865         definitions, depending on whether REG_OK_STRICT is defined.
866         (GO_IF_MODE_DEPENDENT_ADDRESS): Use vax_mode_dependent_address_p.
867         Two definitions, depending on whether REG_OK_STRICT is defined.
868         * config/vax/vax-protos.h (legitimate_constant_address_p): Prototype
869         added.
870         (legitimate_constant_p): Prototype added.
871         (legitimate_address_p): Prototype added.
872         (vax_mode_dependent_address_p): Prototype added.
873
874 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
875
876         * tree.h (phi_arg_d): Expand a comment in phi_arg_d.
877
878 2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
879
880         PR c/21213
881         * c-decl.c (finish_struct): Don't dereference NULL TYPE_FIELDS of
882         transparent union.
883
884 2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
885
886         PR c/20740
887         * c-format.c (init_dynamic_asm_fprintf_info): Give errors, not
888         assertion failures, if __gcc_host_wide_int__ is not properly
889         defined.
890         (init_dynamic_diag_info): Give errors, not assertion failures, if
891         location_t, tree or __gcc_host_wide_int__ are not properly
892         defined.
893
894 2005-04-26  Kazu Hirata  <kazu@cs.umass.edu>
895
896         * tree-ssa-loop-ivopts.c (ivopts_data, decl_rtl_to_reset,
897         n_iv_uses, iv_use, n_iv_cands, iv_cand,
898         tree_ssa_iv_optimize_init, record_use, add_candidate_1,
899         prepare_decl_rtl, free_loop_data,
900         tree_ssa_iv_optimize_finalize): Use the VEC API instead of
901         VARRAY.
902
903         * tree.h (tree_phi_node): Add a comment about the order of PHI
904         arguments.
905
906 2005-04-26  Paul Brook  <paul@codesourcery.com>
907
908         * config/arm/arm.md (thumb_mulsi3): Use two-operand assembly form.
909
910 2005-04-26  Nathan Sidwell  <nathan@codesourcery.com>
911
912         * config/mips.mips.c (mips_legitimize_tls_address): Use
913         gcc_unreachable.
914
915         * config/mmix/mmix.c (mmix_assemble_integer): Use gcc_assert.
916         * config/mmix/crti.asm (_init): Reword comment to avoid 'abort'.
917         * config/mmix/mmix.md (nonlocal_goto_receiver): Likewise.
918
919         * config/sparc/sparc.h (enum reg_class): Reword comment to avoid
920         'abort'.
921
922 2005-04-26  Jeff Law  <law@redhat.com>
923
924         * tree-flow-inline.h (op_iter_next_must_and_may_def): New.
925         (op_iter_init_must_and_may_def): Likewise.
926         (unmodifiable_var_p): Move to a later point in the file.
927         * tree-ssa-operands.h (FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): New.
928         * tree-ssa-dse.c (need_imm_uses_for): Remove, no longer needed.
929         (dse_record_phis): Directly check for virtual operands rather than
930         using need_imm_uses_for.
931         (dse_optimize_stmt): Handle V_MUST_DEF operands.  Handle case where
932         store has multiple V_{MAY,MUST}_DEF operands.
933
934 2005-04-26  Andrew MacLeod  <amacleod@redhat.com>
935
936         * tree-cfg.c (bsi_replace): Delink immediate uses for the original
937         stmt.
938
939 2005-04-26  Kazu Hirata  <kazu@cs.umass.edu>
940
941         * tree-cfg.c (lv_adjust_loop_header_phi): Speed up moving a
942         call to find_edge outside a loop to go through a PHI chain.
943
944 2004-04-26  Richard Guenther  <rguenth@gcc.gnu.org>
945
946         PR tree-optimization/17598
947         * fold-const.c (fold_binary): Fold comparisons of addresses
948         of COMPONENT_REFs which reference the same field to
949         comparisons of the addresses of the base objects.
950
951 2005-04-26  Julian Brown  <julian@codesourcery.com>
952
953         * config/arm/arm.c (arm_return_in_msb): New function.
954         (arm_must_pass_in_stack): New function.
955         (TARGET_RETURN_IN_MSB): Define target hook.
956         (TARGET_MUST_PASS_IN_STACK): Define target hook.
957         (arm_function_value): Pad small aggregate return.
958         (arm_pad_arg_upward): New function.
959         (arm_pad_reg_upward): New function.
960         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Include complex values.
961         (FUNCTION_ARG_PADDING): Define macro.
962         (BLOCK_REG_PADDING): Define macro.
963         (PAD_VARARGS_DOWN): Correct padding for AAPCS.
964         * config/arm/arm-protos.h (arm_pad_arg_upward): Declare function.
965         (arm_pad_reg_upward): Declare function.
966
967 2005-04-26  Kazu Hirata  <kazu@cs.umass.edu>
968
969         * basic-block.h (ei_cond): New.
970         (FOR_EACH_EDGE): Call ei_cond.
971
972         PR tree-optimization/21047
973         * fold-const.c (fold_binary): Abort on ASSERT_EXPR.
974         (fold): Don't handle ASSERT_EXPR.
975
976 2005-04-25  Roger Sayle  <roger@eyesopen.com>
977
978         * sched-deps.c (sched_analyze_1): On STACK_REGS targets, x87, treat
979         all writes to any stack register as a read/write dependency on
980         FIRST_STACK_REG.
981         (sched_analyze_2): Likewise, for reads from any stack register.
982
983 2005-04-25  Richard Henderson  <rth@redhat.com>
984
985         * final.c (output_addr_const): Revert 2005-04-09 change.
986
987 2005-04-25  Mike Stump  <mrs@apple.com>
988
989         * config/darwin.c (darwin_encode_section_info): Always set
990         MACHO_SYMBOL_STATIC for all ! TREE_PUBLIC symbols.
991
992 2005-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
993
994         * collect2.c, gcc.c, gcov-dump.c, gcov.c, gen-protos.c,
995         gensupport.c, protoize.c, toplev.c: Replace calls to
996         `unlock_stream' with `unlock_std_streams'.
997
998 2005-04-25  Devang Patel <dpatel@apple.com>
999
1000         * dbxout.c (dbxout_type): Emit attribute vector.
1001         
1002 2005-04-05  Paul Brook  <paul@codesourcery.com>
1003
1004         * target-def.h (TARGET_CXX_USE_AEABI_ATEXIT): Define.
1005         * target.h (struct gcc_target): Add cxx.use_aeabi_atexit.
1006         * config/arm/arm.c (arm_cxx_atexit_name): New function.
1007         (TARGET_CXX_USE_AEABI_ATEXIT): New macro.
1008         * cp/decl.c (get_atexit_node): Reorder arguments for __aeabi_atexit.
1009         (register_dtor_fn): Likewise.
1010         * doc/tm.texi: Document TARGET_CXX_USE_AEABI_ATEXIT.
1011
1012 2005-04-25  Ian Lance Taylor  <ian@airs.com>
1013
1014         * c-common.def (EXPR_STMT): Remove, moved to C++ frontend.
1015         * c-common.h (EXPR_STMT_EXPR): Don't define.
1016         (c_common_stmt_codes): Don't define.
1017         * c-dump.c (c_dump_tree): Remove EXPR_STMT case.
1018         * c-gimplify.c (gimplify_expr_stmt): Remove.
1019         (c_gimplify_expr): Remove EXPR_STMT case.
1020         * c-objc-common.c (c_objc_common_init): Remove stmt_codes and call
1021         to INIT_STATEMENT_CODES.
1022         * c-pretty-print.c (pp_c_statement): Just call dump_generic_node.
1023
1024 2005-04-25  Jan Hubicka  <jh@suse.cz>
1025
1026         * tree-cfg.c (tree_duplicate_bb): Duplicate EH region too.
1027
1028         * except.c: Include diagnostic.h
1029         (dump_eh_tree, verify_eh_tree): New functions.
1030         * except.h (verify_eh_tree, dump_eh_tree, verify_eh_edges): Declare.
1031         * tree-cfg.c (tree_verify_flow_info): verify eh edges.
1032         (dump_function_to_file): dump eh tree.
1033         * tree-eh.c (mark_eh_edge): New function.
1034         (mark_eh_edge_found_error): New static variable.
1035         (verify_eh_edges): New function.
1036
1037 2005-04-25  Nathan Sidwell  <nathan@codesourcery.com>
1038
1039         * tree-ssa-alias.c (fieldoff_t): Remove.
1040         (fieldoff_s): typedef the structure itself.  Create a vector of
1041         objects.
1042         (push_fields_onto_fieldstack): Return count of fields pushed.
1043         Remove peeling of first field.  Adjust.
1044         (fieldoff_compare): Adjust.
1045         (create_overlap_variables_for): Adjust.
1046
1047 2005-04-25  Joseph S. Myers  <joseph@codesourcery.com>
1048
1049         * doc/invoke.texi (Blackfin Options): Avoid empty @opindex line.
1050
1051 2005-04-25  Joseph S. Myers  <joseph@codesourcery.com>
1052
1053         PR bootstrap/21215
1054         * doc/install.texi: Document correct assembler and linker to use
1055         on i?86-*-solaris2.10.
1056
1057 2005-04-25  Steven Bosscher  <stevenb@suse.de>
1058
1059         Fix PR tree-optimization/21173
1060
1061         * tree-ssa-pre.c (create_expression_by_pieces): Simplify code.
1062         Unshare expression we pass to force_gimple_operand.
1063
1064 2005-04-25  J"orn Rennecke <joern.rennecke@st.com>
1065             Stephen Clarke <stevec@superh.com>
1066             Roger Sayle <roger@eyesopen.com>
1067
1068         PR rtl-optimization/20413
1069         * cfgrtl.c (redirect_edge_and_branch): Use Pmode instead of
1070         VOIDmode for LABEL_REF.
1071         * final.c (shorten_branches): Likewise.
1072         * jump.c (mark_all_labels, redirect_exp_1): Likewise.
1073         * loop.c (reg_dead_after_loop): Likewise.
1074         * varasm.c (decode_addr_const): Likewise.
1075         * doc/rtl.texi: Document mode requirement for LABEL_REF.
1076
1077 2005-04-25  Ralf Corsepius  <ralf.corsepius@rtems.org>
1078
1079         * config.gcc (avr-*-*): Remove redundant "case".
1080
1081 2005-04-25  Kazu Hirata  <kazu@cs.umass.edu>
1082
1083         * tree-vect-analyze.c (vect_mark_relevant): Take
1084         VEC(tree,heap) instead of varray_type as an argument.
1085         (vect_mark_stmts_to_be_vectorized): Change the type of
1086         worklist to VEC(tree,heap).  Adjust uses of worklist.
1087
1088 2005-04-24  Devang Patel  <dpatel@apple.com>
1089
1090         *  config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
1091         
1092 2005-04-24  Ian Lance Taylor  <ian@airs.com>
1093
1094         * c-semantics.c (build_stmt): Remove test of specific tree codes
1095         for TREE_SIDE_EFFECTS handling.
1096
1097 2005-04-24  Per Bothner  <per@bothner.com>
1098
1099         * c-opts.c (finish_options):  Make the line-number of the <built-in>
1100         location 0, as assumed elsewhere, rather than 1.
1101
1102 2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
1103
1104         * tree-ssa-uncprop.c (equiv_stack): Change the type o
1105         VEC(tree,heap).
1106         (tree_ssa_uncprop, uncprop_finalize_block,
1107         uncprop_initialize_block): Update uses of equiv_stack.
1108
1109 2005-04-24  Richard Henderson  <rth@redhat.com>
1110
1111         PR rtl-opt/21163
1112         * simplify-rtx.c (simplify_binary_operation) <IOR>: Check
1113         for SCALAR_INT_MODE_P instead of not MODE_CC before returning
1114         constm1_rtx.
1115         <AND, LSHIFTRT, UMIN>: Use CONST0_RTX.
1116         <UDIV, UMOD>: Use CONST0_RTX and CONST1_RTX.
1117         <DIV, MOD>: Likewise.
1118
1119 2005-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1120
1121         * collect2.c (main): Unlock the stdio streams.
1122         * gcc.c (main): Likewise.
1123         * gcov-dump.c (main): Likewise.
1124         * gcov.c (main): Likewise.
1125         * gen-protos.c (main): Likewise.
1126         * gensupport.c (init_md_reader_args_cb): Likewise.
1127         * protoize.c (main): Likewise.
1128         * toplev.c (general_init): Likewise.
1129
1130 2005-04-24  Jakub Jelinek  <jakub@redhat.com>
1131
1132         PR middle-end/20991
1133         * cgraph.h (cgraph_local_info): Add vtable_method field.
1134         * varasm.c (mark_decl_referenced): If cgraph_global_info_ready
1135         and node is vtable_method, finalized and not reachable, don't do
1136         anything.
1137
1138 2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
1139
1140         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Use
1141         COMPARISON_CLASS_P.
1142         * tree-ssa-pre.c (create_value_expr_from): Use
1143         CONSTANT_CLASS_P and REFERENCE_CLASS_P.
1144         * tree-ssa-propagate.c (stmt_makes_single_load,
1145         stmt_makes_single_store): Use REFERENCE_CLASS_P.
1146         * tree-vect-transform.c (vect_is_simple_cond): Use
1147         COMPARISON_CLASS_P.
1148         * tree-vrp.c (extract_range_from_assert,
1149         build_assert_expr_for, fp_predicate, has_assert_expr): Use
1150         COMPARISON_CLASS_P.
1151
1152         * tree-ssa-live.c (build_tree_conflict_graph): Change the type
1153         of tpa_to_clear to VEC(int,heap).  Update uses of
1154         tpa_to_clear.  Free tpa_to_clear at the end.
1155
1156 2005-04-24  Andrew Pinski  <pinskia@physics.uc.edu>
1157
1158         * tree.h (TREE_THIS_VOLATILE): Document the effect on a
1159         function decl.
1160
1161 2005-04-24  Nathan Sidwell  <nathan@codesourcery.com>
1162
1163         * config/rs6000/rs6000.c (rs6000_override_options): Use gcc_assert
1164         and gcc_unreachable as appropriate.
1165         (num_insns_constant, output_vec_const_move,
1166         build_mask64_2_operands, rs6000_output_dwarf_dtprel,
1167         rs6000_emit_set_const, rs6000_emit_move,
1168         spe_build_register_parallel, function_arg,
1169         rs6000_move_block_from_reg, altivec_expand_predicate_builtin,
1170         spe_expand_predicate_builtin, spe_expand_evsel_builtin,
1171         rs6000_expand_builtin, spe_init_builtins, altivec_init_builtins,
1172         rs6000_common_init_builtins, expand_block_clear,
1173         expand_block_move, validate_condition_mode, ccr_bit, extract_MB,
1174         extract_ME, rs6000_get_some_local_dynamic_name,
1175         rs6000_output_function_entry, print_operand,
1176         print_operand_address, rs6000_generate_compare, rs6000_emit_sCOND,
1177         output_cbranch, output_e500_flip_gt_bit,
1178         rs6000_emit_vector_compare, rs6000_emit_vector_compare,
1179         rs6000_emit_cmove, rs6000_emit_minmax, rs6000_split_multireg_move,
1180         compute_save_world_info, rs6000_stack_info,
1181         rs6000_emit_load_toc_table, rs6000_frame_related,
1182         spe_synthesize_frame_save, rs6000_emit_epilogue,
1183         rs6000_output_function_epilogue, rs6000_hash_constant, output_toc,
1184         output_function_profiler, rs6000_trampoline_size,
1185         rs6000_initialize_trampoline, find_addr_reg,
1186         rs6000_machopic_legitimize_pic_address,
1187         rs6000_initial_elimination_offset,
1188         rs6000_dbx_register_number): Likewise.
1189         * config/rs6000/rs6000.md (*fix_truncdfsi2_internal,
1190         *movdf_hardfloat32, *movdf_softfloat32, *fix_trunctfsi2_internal,
1191         *movti_power, *movti_string, call, call_value, sibcall,
1192         sibcall_value): Likewise.
1193         * config/rs6000/spe.md (*movdf_e500_double,
1194         *movv2si_internal): Likewise.
1195         * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): Remove 'abort'
1196         from comment.
1197
1198 2005-04-24  Richard Henderson  <rth@redhat.com>
1199
1200         PR target/21101
1201         * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Move guts to ...
1202         * config/i386/i386.c (ix86_cannot_change_mode_class): ... here.
1203         Deny modes smaller than 4 bytes.
1204         * config/i386/i386-protos.h: Update.
1205
1206 2005-04-24  Ralf Corsepius  <ralf.corsepius@rtems.org>
1207
1208         * config.gcc (h8300-*-rtems*): Add h8300-*-rtemscoff*.
1209         Switch h8300-*-rtems* to ELF.
1210
1211 2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
1212
1213         * vec.h (VEC_safe_grow): Replace grow with safe_grow.
1214
1215 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
1216
1217         * ipa-inline.c, tree-ssa-operands.h: Fix comment typos.
1218
1219 2005-04-23  Richard Guenther  <rguenth@gcc.gnu.org>
1220
1221         PR middle-end/21082
1222         * fold-const.c: Fold &a[i]-&a[j] to i-j.
1223
1224 2005-04-23  Zdenek Dvorak  <dvorakz@suse.cz>
1225
1226         * tree-ssa-loop-niter.c (tree_simplify_using_condition): Expand simple
1227         definitions of ssa names in condition.  Split recusive part to ...
1228         (tree_simplify_using_condition_1): New function.
1229         (expand_simple_operations): New function.
1230
1231 2005-04-23  Zdenek Dvorak  <dvorakz@suse.cz>
1232
1233         * tree-ssa-loop-ivopts.c (struct cost_pair): Add value field.
1234         (find_interesting_uses_cond): Do not use integer_zerop and
1235         integer_nonzerop to check for integer constants.
1236         (set_use_iv_cost): Record the value field.
1237         (determine_use_iv_cost_generic, determine_use_iv_cost_address,
1238         determine_use_iv_cost_outer): Set the value field of the cost pair.
1239         (may_eliminate_iv): Do not return the comparison code.
1240         (iv_elimination_compare): New function.
1241         (determine_use_iv_cost_condition): Set the value field.  Record
1242         noneliminable invariants correctly.
1243         (rewrite_use_compare, rewrite_use_outer): Use the value field.
1244
1245 2005-04-23  DJ Delorie  <dj@redhat.com>
1246
1247         * diagnostic.c (warning): Accept parameter to classify warning option.
1248         (warning0): New, for when a pointer to an error() like function is needed.
1249         * errors.c (warning): Likewise.
1250         * errors.h (warning, warning0): Adjust prototypes.
1251         * toplev.h (warning, warning0): Likewise.
1252
1253         * attribs.c, builtins.c, c-common.c, c-decl.c, c-format.c,
1254         c-gimplify.c, c-lex.c, c-objc-common.c, c-opts.c, c-parser.c,
1255         c-pragma.c, c-typeck.c, calls.c, cgraph.c, coverage.c, emit-rtl.c,
1256         fold-const.c, fortran/trans-decl.c, function.c, gcse.c,
1257         genautomata.c, haifa-sched.c, opts.c, passes.c, regclass.c,
1258         reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
1259         tree-dump.c, tree-inline.c, tree-mudflap.c, tree-optimize.c,
1260         tree-ssa.c, tree.c, varasm.c: Adjust warning() callers.
1261
1262         * config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
1263         config/avr/avr.c, config/bfin/bfin.c, config/c4x/c4x-c.c,
1264         config/c4x/c4x.c, config/cris/cris.c, config/darwin-c.c,
1265         config/darwin.c, config/darwin.h, config/h8300/h8300.c,
1266         config/i386/cygming.h, config/i386/djgpp.h, config/i386/i386.c,
1267         config/i386/winnt.c, config/ia64/ia64-c.c, config/ia64/ia64.c,
1268         config/ip2k/ip2k.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c,
1269         config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.c,
1270         config/mmix/mmix.c, config/ns32k/ns32k.c, config/pa/pa-hpux11.h,
1271         config/pa/pa.c, config/rs6000/aix43.h, config/rs6000/aix51.h,
1272         config/rs6000/aix52.h, config/rs6000/darwin.h,
1273         config/rs6000/rs6000-c.c, config/rs6000/rs6000.c,
1274         config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
1275         config/sh/symbian.c, config/sol2-c.c, config/sol2.c,
1276         config/stormy16/stormy16.c, config/v850/v850-c.c,
1277         config/v850/v850.c, config/xtensa/xtensa.c: Adjust warning()
1278         callers.
1279         
1280 2005-04-23  Richard Henderson  <rth@redhat.com>
1281
1282         PR rtl-opt/21102
1283         * simplify-rtx.c (simplify_binary_operation): Fix mode check before
1284         performing some integral scalar simplifications.
1285
1286 2005-04-23  Richard Henderson  <rth@redhat.com>
1287
1288         PR target/21099
1289         * config/i386/i386.c (ix86_split_to_parts): Use proper mode when
1290         simplifying CONST_VECTOR.
1291
1292 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
1293
1294         * tree-ssa-live.c (live_worklist): Take a stack allocated on
1295         heap as an argument.  Update uses of stack.
1296         (calculate_live_on_entry): Allocate stack on heap.
1297
1298         * tree-ssa-live.c (build_tree_conflict_graph): Allocate
1299         partition_link and tpa_nodes on heap.
1300
1301         * tree-ssa-dce.c (worklist): Change to VEC(tree,heap).
1302         (mark_stmt_necessary, propagate_necessity,
1303         mark_really_necessary_kill_operand_phis): Update uses of
1304         worklist.
1305         (tree_dce_init): Allocate worklist using VEC_alloc.
1306         (tree_dce_done): Free worklist using VEC_free.
1307
1308 2005-04-23  Mike Stump  <mrs@apple.com>
1309
1310         * config/darwin.c (machopic_indirection_name): Don't use
1311         quotes needlessly.
1312         (darwin_emit_unwind_label): Use user_label_prefix instead of
1313         "_".
1314
1315 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
1316
1317         * final.c, ipa-inline.c, varasm.c: Fix comment typos.
1318
1319 2005-04-23  Hans-Peter Nilsson  <hp@axis.com>
1320
1321         * config.gcc <cris-*>: Specify .opt files.
1322         * config/cris/cris.opt, config/cris/elf.opt, config/cris/aout.opt,
1323         config/cris/linux.opt: New files.
1324         * config/cris/aout.h (CRIS_SUBTARGET_SWITCHES)
1325         (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
1326         (TARGET_ELF): Override to 0.
1327         (CRIS_SUBTARGET_HANDLE_OPTION): Override to handle -melinux and
1328         -melinux-stacksize=N.
1329         * config/cris/cris.c: (cris_handle_option): New function.
1330         (TARGET_DEFAULT_TARGET_FLAGS): Override.
1331         (TARGET_HANDLE_OPTION): Override to cris_handle_option.
1332         (cris_override_options): Use MASK_*, not TARGET_MASK_*.
1333         * config/cris/cris.h (TARGET_MASK_SVINTO, TARGET_SVINTO,
1334         (TARGET_MASK_CCINIT, TARGET_CCINIT, TARGET_MASK_PDEBUG)
1335         (TARGET_PDEBUG, TARGET_MASK_SIDE_EFFECT_PREFIXES)
1336         (TARGET_SIDE_EFFECT_PREFIXES, TARGET_MASK_EXPAND_MUL)
1337         (TARGET_EXPAND_MUL, TARGET_MASK_STACK_ALIGN, TARGET_STACK_ALIGN)
1338         (TARGET_MASK_CONST_ALIGN, TARGET_CONST_ALIGN)
1339         (TARGET_MASK_DATA_ALIGN, TARGET_DATA_ALIGN)
1340         (TARGET_MASK_PROLOGUE_EPILOGUE, TARGET_PROLOGUE_EPILOGUE)
1341         (TARGET_MASK_ETRAX4_ADD, TARGET_ETRAX4_ADD)
1342         (TARGET_MASK_ALIGN_BY_32, TARGET_ALIGN_BY_32, TARGET_MASK_ELF)
1343         (TARGET_ELF, TARGET_MASK_LINUX, TARGET_LINUX)
1344         (TARGET_MASK_AVOID_GOTPLT, TARGET_AVOID_GOTPLT)
1345         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG, TARGET_SWITCHES)
1346         (CRIS_SUBTARGET_SWITCHES, TARGET_OPTIONS)
1347         (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
1348         (TARGET_LINUX): Define 0.
1349         (TARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
1350         (CRIS_SUBTARGET_DEFAULT): Define to 0, not TARGET_MASK_ELF.
1351         (CRIS_SUBTARGET_DEFAULT): New empty default macro.
1352         * config/cris/linux.h (CRIS_SUBTARGET_SWITCHES): Don't define.
1353         (TARGET_LINUX): Override to 1.
1354         (CRIS_SUBTARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
1355
1356 2005-04-23  Nathan Sidwell  <nathan@codesourcery.com>
1357
1358         * haifa-sched.c (schedule_block): Fix thinko in previous
1359         assertification patch.
1360
1361 2005-04-23  Richard Sandiford  <rsandifo@redhat.com>
1362
1363         * config.gcc (hppa[12]*-*-hpux10*): Add pa/pa-hpux.opt to
1364         $extra_options.  Also add pa/pa-hpux1010.opt for hpux10.[1-9]*.
1365         (hppa*64*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file.  Add
1366         pa/pa-hpux.opt, pa/pa-hpux1010.opt and pa/pa64-hpux.opt to
1367         $extra_options.  Also add pa/pa-hpux1111.opt for hpux11.[1-9]*.
1368         (hppa[12]*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file.  Add
1369         pa/pa-hpux.opt to $extra_options.  Also add pa/pa-hpux1111.opt
1370         for hpux11.[1-9]*.
1371         * config/pa/pa.h (architecture_type, rtx_def, pa_arch_string, pa_arch)
1372         (pa_fixed_range_string, pa_cpu_string, pa_unix_string, target_flags)
1373         (MASK_PA_11, MASK_DISABLE_FPREGS, TARGET_DISABLE_FPREGS)
1374         (MASK_NO_SPACE_REGS, TARGET_NO_SPACE_REGS, MASK_JUMP_IN_DELAY)
1375         (TARGET_JUMP_IN_DELAY, MASK_DISABLE_INDEXING, TARGET_DISABLE_INDEXING)
1376         (MASK_PORTABLE_RUNTIME, TARGET_PORTABLE_RUNTIME, MASK_GAS, TARGET_GAS)
1377         (MASK_SOFT_FLOAT, TARGET_SOFT_FLOAT, MASK_LONG_LOAD_STORE)
1378         (TARGET_LONG_LOAD_STORE, MASK_FAST_INDIRECT_CALLS)
1379         (TARGET_FAST_INDIRECT_CALLS, MASK_BIG_SWITCH, TARGET_BIG_SWITCH)
1380         (MASK_PA_20, MASK_SIO, TARGET_SIO, MASK_GNU_LD, TARGET_GNU_LD)
1381         (MASK_LONG_CALLS, TARGET_LONG_CALLS, TARGET_PA_11, TARGET_PA_20)
1382         (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS)
1383         (SUBTARGET_OPTIONS): Delete.
1384         (TARGET_PA_10): Redefine in terms of TARGET_PA_11 and TARGET_PA_20.
1385         (TARGET_SCHED_DEFAULT): Define to a PROCESSOR_* enum (PROCESSOR_8000)
1386         instead of a string.
1387         * config/pa/pa.c (pa_arch, pa_arch_string, pa_fixed_range_string)
1388         (pa_cpu_string, pa_unix_string): Delete.
1389         (pa_cpu): Initialize to TARGET_SCHED_DEFAULT.
1390         (flag_pa_unix): Initialize based on TARGET_HPUX_11_11 and
1391         TARGET_HPUX_10_10.
1392         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
1393         (pa_handle_option): New function.
1394         (override_options): Remove handling of -march=, -mfixed-range=,
1395         -mschedule= and -munix=.
1396         * config/pa/pa-hpux.h (SUBTARGET_SWITCHES): Delete.
1397         * config/pa/pa-hpux1010.h (SUBTARGET_OPTIONS): Delete.
1398         * config/pa/pa-hpux10.h (SUBTARGET_OPTIONS): Delete.
1399         * config/pa/pa-hpux1111.h (SUBTARGET_OPTIONS): Delete.
1400         * config/pa/pa-hpux11.h (SUBTARGET_OPTIONS): Delete.
1401         * config/pa/pa64-hpux.h (SUBTARGET_SWITCHES): Delete.
1402         * config/pa/pa64-start.h (TARGET_PA_11, TARGET_PA_20): #undef before
1403         redefining.
1404         * config/pa/pa.opt: New file.
1405         * config/pa/pa-hpux.opt: New file.
1406         * config/pa/pa-hpux1010.opt: New file.
1407         * config/pa/pa-hpux1111.opt: New file.
1408         * config/pa/pa64-hpux.opt: New file.
1409
1410 2005-04-22  David S. Miller  <davem@davemloft.net>
1411
1412         * rtl.h (CONST_DOUBLE): Fix comment, a CONST_DOUBLE holds an
1413         integer when it's mode is VOIDmode not DImode.
1414
1415 2005-04-22  Geoffrey Keating  <geoffk@apple.com>
1416
1417         * config/rs6000/rs6000.md (sync_add<mode>_internal,
1418         sync_addshort_internal, sync_sub<mode>_internal, sync_andsi_internal,
1419         sync_anddi_internal, sync_boolsi_internal, sync_booldi_internal,
1420         sync_boolc<mode>_internal, sync_boolc<mode>_internal2,
1421         sync_boolcc<mode>_internal, sync_lock_test_and_set<mode>): Use
1422         "bne- $-xxx" rather than local labels.
1423         (sync_lock_release<mode>): Add second operand.
1424         (lwsync): Use .long rather than a more meaningful opcode.
1425         * doc/md.texi (Standard Names): Add description of second
1426         parameter to sync_lock_test_and_set.
1427
1428 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
1429
1430         PR tree-optimization/21088
1431         * fold-const.c (fold_unary, fold_binary, fold_ternary):
1432         Export.
1433         * tree-vrp.c (compare_values): Use fold_binary to compare
1434         pointers.  Use boolean_type_node as the type of a comparison
1435         expression being folded.
1436         * tree.h: Add prototypes for fold_unary, fold_binary,
1437         fold_ternary.
1438
1439         * tree-ssa-dom.c: Fix formatting.
1440
1441 2005-04-22  Diego Novillo  <dnovillo@redhat.com>
1442
1443         * Makefile.in (tree-into-ssa.o): Add dependency on PARAMS_H.
1444         * lambda-code.c (perfect_nestify): Mark virtual operands in
1445         the moved statement for renaming.
1446         * params.def (PARAM_MIN_VIRTUAL_MAPPINGS): Define.
1447         (PARAM_VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
1448         * params.h (MIN_VIRTUAL_MAPPINGS): Define.
1449         (VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
1450         * tree-flow.h (struct var_ann_d): Update comments.
1451         (rewrite_to_new_ssa_names_bb, rewrite_to_new_ssa_names,
1452         allocate_ssa_names, find_phi_node_for, dump_tree_ssa,
1453         debug_tree_ssa, debug_def_blocks, dump_tree_ssa_stats,
1454         debug_tree_ssa_stats, rewrite_ssa_into_ssa,
1455         dump_repl_tbl, debug_repl_tbl, dump_names_replaced_by,
1456         debug_names_replaced_by): Remove declarations.
1457         (delete_update_ssa, get_current_def, set_current_def): Declare.
1458         (rewrite_into_loop_closed_ssa): Add new argument.  Update
1459         all callers.
1460         * tree-into-ssa.c: Include params.h.
1461         (old_virtual_ssa_names): Remove.  Update all users.
1462         (need_to_replace_names_p): Remove.  Update all users.
1463         (struct update_ssa_stats_d): Declare.
1464         (update_ssa_stats): New local.
1465         (dump_tree_ssa, debug_tree_ssa, debug_def_blocks,
1466         dump_tree_ssa_stats, debug_tree_ssa_stats,
1467         dump_update_ssa, debug_update_ssa,
1468         dump_names_replaced_by, debug_names_replaced_by): Declare.
1469         (get_current_def, set current_def): Make extern.
1470         (is_old_name, is_new_name): Protect against references
1471         past the end of the sets.
1472         (add_new_name_mapping): Assert that OLD and NEW are
1473         different SSA names for the same symbol.
1474         When adding a virtual mapping, update stats for virtual
1475         mapping heuristic.
1476         (insert_phi_nodes_for): If UPDATE_P is true, create the
1477         LHS of the new PHI by duplicating SSA name VAR.
1478         (insert_phi_nodes_1): Remove.  Update all users.
1479         (insert_phi_nodes): Remove second argument.  Update all
1480         users.
1481         (maybe_replace_use, maybe_replace_def): New.
1482         (rewrite_update_stmt): Call them.
1483         (mark_def_interesting): Remove calls to is_gimple_reg.
1484         (prepare_phi_args_for_update): Remove.  Update all users.
1485         (prepare_block_for_update): Only process virtual operands
1486         and GIMPLE registers in normal form.
1487         (prepare_use_sites_for): New.
1488         (prepare_names_to_update): Rename from prepare_def_sites.
1489         Call prepare_use_sites_for.
1490         (dump_update_ssa): Rename from dump_repl_tbl.
1491         Update all users.
1492         Show statistics for virtual mapping heuristic.
1493         (debug_update_ssa): Rename from debug_debug_repl_tbl.
1494         (init_update_ssa): Initialize UPDATE_SSA_STATS.
1495         (delete_update_ssa): Make extern.
1496         (mark_set_for_renaming): If the set is empty, do nothing.
1497         (release_ssa_name_after_update_ssa): Update comment.
1498         (insert_updated_phi_nodes_for): Do not remove existing
1499         PHI nodes for symbols.
1500         (switch_virtuals_to_full_rewrite_p): New.
1501         (switch_virtuals_to_full_rewrite): New.
1502         (update_ssa): Call them.
1503         Clear REWRITE_THIS_STMT and REGISTER_DEFS_IN_THIS_STMT
1504         for every statement before updating.
1505         If all the names in NEW_SSA_NAMES have been marked for
1506         removal, do nothing.
1507         Only start at the top of the CFG if there are symbols in
1508         SYMS_TO_RENAME.
1509         (ssa_rewrite_finalize_block): Remove.
1510         (ssa_register_new_def): Remove.
1511         (ssa_rewrite_stmt): Remove.
1512         (ssa_rewrite_phi_arguments): Remove.
1513         (ssa_rewrite_initialize_block): Remove.
1514         (ssa_mark_def_sites): Remove.
1515         (ssa_mark_def_sites_initialize_block): Remove.
1516         (ssa_mark_phi_uses): Remove.
1517         (rewrite_ssa_into_ssa): Remove.
1518         * tree-phinodes.c (find_phi_node_for): Remove.
1519         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
1520         Call update_ssa.
1521         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops):
1522         Remove calls to verify_dominators and
1523         verify_loop_structure.
1524         (tree_unswitch_single_loop): Call update_ssa.
1525         * tree-ssa.c (verify_ssa): Assert that need_ssa_update_p
1526         returns false.
1527         Call verify_stmts.
1528         (delete_tree_ssa): Assert that need_ssa_update_p returns
1529         false.
1530         * tree-vect-transform.c (vect_transform_loop): Call update_ssa.
1531         * tree-vectorizer.c (allocate_new_names, rename_def_op,
1532         free_new_names): Remove.  Update all users.
1533         (rename_use_op): Call get_current_def.
1534         (rename_variables_in_bb): Do not handle any real or
1535         virtual definition.
1536         (slpeel_update_phis_for_duplicate_loop): Call
1537         get_current_def and set_current_def instead of using
1538         SSA_NAME_AUX.
1539         (slpeel_update_phi_nodes_for_guard2): Reformat comments.
1540         (slpeel_can_duplicate_loop_p): Call need_ssa_update_p,
1541         ssa_names_to_replace and delete_update_ssa.
1542         * doc/invoke.texi: Document --param min-virtual-mappings
1543         and --param virtual-mappings-ratio.
1544
1545 2005-04-22  Diego Novillo  <dnovillo@redhat.com>
1546
1547         * tree-cfg.c (tree_duplicate_bb): Call create_new_def_for
1548         for newly created PHI nodes.
1549         Call create_new_def_for for every new V_MAY_DEF and
1550         V_MUST_DEF on the copied statement.
1551         (struct ssa_name_map_entry): Remove.
1552         (ssa_name_map_entry_hash): Remove.
1553         (ssa_name_map_entry_eq): Remove.
1554         (allocate_ssa_names): Remove.
1555         (rewrite_to_new_ssa_names_def): Remove.
1556         (rewrite_to_new_ssa_names_use): Remove.
1557         (rewrite_to_new_ssa_names_bb): Remove.
1558         (rewrite_to_new_ssa_names): Remove.
1559         (tree_duplicate_sese_region): Remove variables ver,
1560         definitions, phi, ssa_name_map and bi.
1561         Call need_ssa_update_p instead of any_marked_for_rewrite_p.
1562         Call update_ssa.
1563         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
1564         update_ssa instead of rewrite_ssa_into_ssa.
1565         * tree-ssa-loop-manip.c (add_exit_phis_edge): Call
1566         create_new_def_for.
1567         (find_uses_to_rename_use): Add argument 'need_phis'.
1568         (find_uses_to_rename_stmt): Do not scan virtual operands.
1569         (find_uses_to_rename): Only scan PHI nodes for
1570         non-virtual names.
1571         (rewrite_into_loop_closed_ssa): Call update_ssa.
1572         (check_loop_closed_ssa_use): Ignore virtual operands.
1573         (check_loop_closed_ssa_stmt): Likewise.
1574         (verify_loop_closed_ssa): Do nothing if CURRENT_LOOPS is
1575         NULL.
1576         (rename_variables, set_phi_def_stmts): Remove.
1577         (tree_duplicate_loop_to_header_edge): Reformat comment.
1578         Remove variables BB, I and DEFINITIONS.
1579         Call need_ssa_update_p.
1580         Call update_ssa.
1581         (lv_adjust_loop_header_phi): Reformat comment.
1582         * tree-ssanames.c (ssa_names_to_rewrite): Remove.
1583         (marked_for_rewrite_p, any_marked_for_rewrite_p,
1584         mark_for_rewrite, unmark_all_for_rewrite,
1585         marked_ssa_names): Remove.  Update all users.
1586         (release_ssa_name): If VAR has been registered for SSA
1587         updating, do nothing.
1588         * tree-vrp.c (new_ssa_names, old_ssa_names): Remove.
1589         (build_assert_expr_for): Call register_new_name_mapping.
1590         (insert_range_assertions): Update call to update_ssa.
1591         * tree.h (mark_for_rewrite, unmark_all_for_rewrite,
1592         marked_for_rewrite_p, any_marked_for_rewrite_p,
1593         marked_ssa_names): Remove.
1594
1595 2005-04-22  Jeff Law  <law@redhat.com>
1596
1597         * tree-ssa-dom.c (block_defs_stack): Remove, no longer needed.
1598         (restore_currdefs_to_original_value): Likewise.
1599         (register_definitions_for_stmt): Likewise.
1600         (tree_ssa_dominator_optimize): No longer initialize CURRENT_DEF
1601         for each variable.  Do not allocate/free block_defs_stack either.
1602         Do not iterate if we just thread jumps.  Only iterate if the
1603         tree_cleanup_cfg does useful work (temporary).
1604         (dom_opt_initialize_block): No longer push a marker on
1605         BLOCK_DEFS_STACK.
1606         (dom_opt_finalize_block): Removal call to restore currdefs.
1607         Relax restrictions for recording edge equivalences.
1608         (record_equivalences_from_phis): No longer need to track
1609         CURRENT_DEF.
1610         (optimize_stmt): Similarly.
1611         (thread_across_edge): Simplify by removing the requirement that
1612         statements in the block we are threading through must be nops.
1613         (initialize_hash_element): Handle GOTO_EXPR.
1614
1615 2005-04-22  David S. Miller  <davem@davemloft.net>
1616
1617         * sched-vis.c (print_value): Use CONST_DOUBLE_LOW and
1618         CONST_DOUBLE_HIGH.
1619         * config/sparc/sparc.c (sparc_rtx_costs): Likewise, and
1620         fix check on CONST_DOUBLE mode.  It should be VOIDmode
1621         when it is representing an integer.
1622
1623 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
1624
1625         * builtins.c (gimplify_va_arg_expr): Reword comments to avoid
1626         'abort'. Use gcc_assert and gcc_unreachable as appropriate.
1627         * c-format.c (get_constant, decode_format_attr, get_flag_spec, 
1628         find_char_info_specifier_index,
1629         find_length_info_modifier_index): Likewise.
1630         * c-typeck.c (composite_type, pop_init_level): Likewise.
1631         * combine.c (cant_combine_insn_p, try_combine): Likewise.
1632         * cse.c (cse_insn): Likewise
1633         * dominance.c (calc_dfs_tree): Likewise
1634         dwarf2out.c (loc_descriptor_from_tree_1,
1635         add_abstract_origin_attribute, force_decl_die,
1636         force_type_die): Likewise
1637         emit-rtl.c (operand_subword_force): Likewise
1638         explow.c (hard_function_value): Likewise
1639         expmed.c (store_bit_field, expand_divmod,
1640         emit_store_flag_force): Likewise
1641         expr.c (emit_move_multi_word, store_expr,
1642         expand_expr_real_1): Likewise
1643         final.c (this_is_asm_operands, shorten_branches, final_scan_insn,
1644         output_operand): Likewise
1645         flow.c (recompute_reg_usage): Likewise
1646         * function.c (assign_stack_temp_for_type, assign_temp, 
1647         handle_epilogue_set): Likewise
1648         * genextract.c (main): Likewise
1649         * gimplify.c (mostly_copy_tree_r, gimplify_return_expr,
1650         gimplify_modify_expr_rhs, gimplify_expr): Likewise
1651         * haifa-sched.c (ready_lastpos, ready_remove_first, ready_element,
1652         ready_remove, rm_line_notes, rm_other_notes,
1653         schedule_block): Likewise
1654         mips-tfile.c (copy_object, out_of_bounds): Likewise
1655
1656 2005-04-22 David Edelsohn  <edelsohn@gnu.org>
1657
1658         PR target/20813
1659         * config/rs6000/default64.h (TARGET_DEFAULT): Add MASK_PPC_GFXOPT.
1660         * config/rs6000/rs6000.c (processor_target_table): Rename rs64a to
1661         rs64.  Add MASK_PPC_GFXOPT to powerpc64 and rs64.
1662         (rs6000_init_libfuncs): Set TFmode optabs to xlq names if
1663         TARGET_XL_COMPAT.
1664         * doc/invoke.texi (PowerPC options): Change rs64a to rs64.
1665
1666 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
1667
1668         * lambda-code.c: Define VEC(int,heap), VEC(lambda_loop,heap).
1669         (gcc_tree_to_linear_expression): Convert to heap allocated
1670         vectors.
1671         (gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
1672         lbv_to_gcc_expression, lle_to_gcc_expression,
1673         lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest, 
1674         perfect_nestify): Likewise.
1675         lambda.h (gcc_loopnest_to_lambda_loopnest,
1676         lambda_loopnest_to_gcc_loopnest): Likewise.
1677         tree-loop-linear.c (linear_transform_loops): Likewise.
1678
1679 2005-04-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
1680
1681         * config/sparc/predicates.md (arith_double_operand): Use
1682         trunc_int_for_mode if HOST_BITS_PER_WIDE_INT >=64.
1683         * config/sparc/sparc.md (movqi, movhi, movsi, movqi): Use gen_int_mode.
1684         (DImode, DFmode constant splitters): Likewise.  Remove code for
1685         TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT < 64.
1686         (logical constant splitters): Use const_int_operand predicate.
1687         (lshrsi3_extend): Remove code for TARGET_ARCH64 &&
1688         HOST_BITS_PER_WIDE_INT < 64.
1689
1690 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
1691
1692         * config/pa/pa.c (legitimize_pic_address): Use gcc_assert and
1693         gcc_unreachable as appropriate.
1694         (force_mode, emit_move_sequence, singlemove_string,
1695         output_move_double, output_fp_move_double, find_addr_reg,
1696         output_block_move, output_block_clear, output_and,
1697         output_64bit_and, output_ior, output_64bit_ior, store_reg_modify,
1698         pa_adjust_cost, pa_issue_rate, print_operand,
1699         output_global_address, output_arg_descriptor, output_cbranch,
1700         output_lbranch, output_bb, output_bvb, output_dbra, output_movb,
1701         output_call): Likewise.
1702         * config/pa/pa.md (call, call_value, sibcall, sibcall_value,
1703         prefetch, prefetch_cc, prefetch_nocc): Likewise.
1704
1705 2005-04-22  Zdenek Dvorak  <dvorakz@suse.cz>
1706
1707         * Makefile.in (LIBGCOV): Add _gcov_interval_profiler,
1708         _gcov_pow2_profiler and _gcov_one_value_profiler.
1709         (tree-profile.o): Add GGC_H and gt-tree-profile.h dependency.
1710         (GTFILES): Add $(srcdir)/tree-profile.c.
1711         * gcov-io.h (__gcov_interval_profiler, __gcov_pow2_profiler,
1712         __gcov_one_value_profiler): Declare.
1713         * gimplify.c (force_gimple_operand): Check whether the statements
1714         should be produced in ssa form.
1715         (force_gimple_operand_bsi): New function.
1716         * libgcov.c (__gcov_interval_profiler, __gcov_pow2_profiler,
1717         __gcov_one_value_profiler): New functions.
1718         * rtl-profile.c (rtl_gen_pow2_profiler): Only measure whether
1719         the profiled value is a power of two or not.
1720         * tree-cfg.c (tree_block_ends_with_condjump_p): Handle empty blocks.
1721         * tree-flow.h (in_ssa_p): Declare.
1722         (force_gimple_operand_bsi): Declare.
1723         * tree-into-ssa.c (in_ssa_p): New variable.
1724         (rewrite_into_ssa): Set in_ssa_p.
1725         * tree-outof-ssa.c (rewrite_out_of_ssa): Set in_ssa_p.
1726         * tree-profile.c: Include ggc.h and gt-tree-profile.h.
1727         (gcov_type_node, tree_interval_profiler_fn, tree_pow2_profiler_fn,
1728         tree_one_value_profiler_fn): New variables.
1729         (tree_init_edge_profiler): Initialize the profiler function decls.
1730         (tree_gen_edge_profiler): Use global gcov_type_node.
1731         (prepare_instrumented_value): New function.
1732         (tree_gen_interval_profiler, tree_gen_interval_profiler,
1733         tree_gen_one_value_profiler): Call the library functions instead of
1734         creating instrumentation code.
1735         * tree.c (build_fn_decl): New function.
1736         * tree.h (build_fn_decl): Declare.
1737         * value-prof.c (rtl_divmod_values_to_profile,
1738         rtl_find_values_to_profile, rtl_mod_pow2_value_transform,
1739         tree_mod_pow2_value_transform, tree_find_values_to_profile):
1740         Do not handle may_be_other and precise values of exponents at pow2
1741         profiler.
1742         (tree_mod_subtract_transform): Reflect that value field of
1743         histogram has changed meaning.
1744         (tree_divmod_values_to_profile): Record the values correctly.
1745         (tree_values_to_profile): Update comment.
1746         * value-prof.h (struct histogram_value_t): Remove pow2 data.
1747
1748 2005-04-22  Joseph S. Myers  <joseph@codesourcery.com>
1749
1750         * varasm.c (do_assemble_alias): Return early if TREE_ASM_WRITTEN
1751         (decl).
1752
1753 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
1754
1755         * config/i386/i386.md (length_immediate): Use gcc_assert or
1756         gcc_unreachable, as appropriate.
1757         (*movsi_1, *movqi_1, reload_outqi, *movdi_1_rex64, *pushsf,
1758         *pushsf_rex64, *truncxfsf2_mixed, *truncxfsf2_i387,
1759         *truncxfdf2_mixed, *truncxfdf2_i387, *adddi_1_rex64,
1760         *adddi_2_rex64, *adddi_3_rex64, *adddi_4_rex64, *adddi_5_rex64,
1761         *addsi_1, addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
1762         *addsi_3_zext, *addsi_4, *addsi_5, *addhi_1_lea, *addhi_1,
1763         *addhi_2, *addhi_3, *addhi_4, *addhi_5, *addqi_1_lea, *addqi_1,
1764         *addqi_1_slp, *addqi_2, *addqi_3, *addqi_4, *addqi_5, addqi_ext_1,
1765         *addqi_ext_1_rex64, *anddi_1_rex64, *andsi_1, *andhi_1,
1766         *ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashlsi3_1, *ashlsi3_1_zext,
1767         *ashlsi3_cmp, *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1,
1768         *ashlhi3_cmp, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
1769         pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64,
1770         pro_epilogue_adjust_stack_rex64_2, prefetch, *prefetch_sse,
1771         *prefetch_sse_rex): Likewise.
1772         * config/i386/predicates.md (x86_64_immediate_operand,
1773         x86_64_zext_immediate_operand, symbolic_operand,
1774         no_seg_address_operand, aligned_operand,
1775         memory_displacement_operand): Likewise.
1776         * config/i386/sse.md (*mov<mode>_internal,
1777         *movv2df_internal): Likewise.
1778
1779 2005-04-22  Jan Hubicka  <jh@suse.cz>
1780
1781         * Makefile.in (ipa.o, ipa-inline.o): New files.
1782         * cgraph.h (cgraph_remove_unreachable_nodes, cgraph_postorder,
1783         cgraph_decide_inlining_incrementally, cgraph_clone_inlined_nodes,
1784         cgraph_mark_inline_edge, cgraph_default_inline_p): Declare.
1785         * cgraphunit.c (cgraph_default_inline_p,
1786         cgraph_decide_inlining_incrementally,  ncalls_inlined,
1787         nfunctions_inlined, initial_insns, overall_insns, 
1788         cgraph_estimate_size_after_inlining, cgraph_estimate_growth,
1789         cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
1790         cgraph_mark_inline, cgraph_check_inline_limits,
1791         cgraph_default_inline_p, cgraph_recursive_inlining_p,
1792         update_callee_keys, lookup_recursive_calls,
1793         cgraph_decide_recursive_inlining, cgraph_set_inline_failed,
1794         cgraph_decide_inlining_of_small_functions, cgraph_decide_inlining,
1795         cgraph_decide_inlining_incrementally, cgraph_gate_inlining,
1796         pass_ipa_inline): Move to ipa-inline.c
1797         (cgraph_postorder, cgraph_remove_unreachable_nodes): Move to ipa.c
1798         * ipa.c: New file.
1799         * ipa-inline.c: New file.
1800
1801 2005-04-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
1802
1803         * doc/invoke.texi (SPARC options): Document that -mapp-regs
1804         is turned off by default on Solaris.
1805
1806 2005-04-21  Roger Sayle  <roger@eyesopen.com>
1807
1808         * c-common.h (objc_build_method_signature): Update prototype.
1809         * stub-objc.c (objc_build_method_signature): Update the stub
1810         implementation to accept and ignore additional parameter.
1811         * c-parser.c (c_parser_objc_method_decl): Reorgnize to pass
1812         the value of ellipsis to objc_build_method_signature instead
1813         of setting TREE_OVERFLOW on the parms TREE_LIST node.
1814
1815 2005-04-21  Geoffrey Keating  <geoffk@apple.com>
1816
1817         * config/rs6000/rs6000-protos.h (rs6000_emit_sync): New.
1818         * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Use
1819         gen_rtx_* not gen_rtx_fmt_*.
1820         (rs6000_emit_vector_select): Likewise.
1821         (rs6000_emit_sync): New.
1822         * config/rs6000/rs6000.md (GPR, INT, INT1): New mode macros.
1823         (larx, stcx, cmp): New mode substitutions.
1824         (UNSPEC_SYNC, UNSPEC_SYNC_OP, UNSPEC_SYNC_SWAP, UNSPEC_LWSYNC,
1825         UNSPEC_ISYNC): New constants.
1826         (rlwinm): Give name.
1827         (memory_barrier, isync, lwsync): New insns.
1828         (sync_compare_and_swap<mode>, sync_lock_test_and_set<mode>): New insn.
1829         (sync_lock_release<mode>): New expander.
1830         (sync_add<mode>, sync_sub<mode>, sync_ior<mode>, sync_and<mode>,
1831         sync_xor<mode>, sync_nand<mode>, sync_old_add<mode>,
1832         sync_old_sub<mode>, sync_old_ior<mode>, sync_old_and<mode>,
1833         sync_old_xor<mode>, sync_old_nand<mode>, sync_new_add<mode>,
1834         sync_new_sub<mode>, sync_new_ior<mode>, sync_new_and<mode>,
1835         sync_new_xor<mode>, sync_new_nand<mode>): New expanders.
1836         (sync_add<mode>_internal, sync_addshort_internal,
1837         sync_sub<mode>_internal, sync_andsi_internal, sync_anddi_internal,
1838         sync_boolsi_internal, sync_booldi_internal, sync_boolc<mode>_internal,
1839         sync_boolc<mode>_internal2, sync_boolcc<mode>_internal): New insns.
1840
1841         * doc/md.texi (Standard Names): sync_compare_and_swap's operand 0
1842         is the memory before, not after, the operation.  Clarify
1843         barrier requirements.
1844
1845 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
1846
1847         * cfghooks.h (struct cfg_hooks): Reword comments to avoid 'abort'.
1848         * lambda.h (lambda_vector_min_nz): Likewise.
1849         * langhooks.h (struct lang_hooks_for_types,
1850         struct lang_hooks): Likewise.
1851         * output.h (assemble_integer, this_is_asm_operands): Likewise.
1852         * tree.h: Likewise.
1853         * vec.h: Likewise.
1854         * tree-flow-inline.h (relink_imm_use): Use gcc_assert.
1855         
1856         * optabs.c (prepare_cmp_insn, emit_cmp_and_jump_insns): Reword
1857         comments to avoid 'abort'.  Use gcc_assert as necessary.
1858         * opts.c (common_handle_option): Likewise.
1859         * pretty-print.c (pp_base_format_text): Likewise.
1860         * print-rtl.c (print_rtx): Likewise.
1861         * read-rtl.c (read_rtx_filename, read_rtx_1): Likewise.
1862         * regmove.c (try_auto_increment): Likewise.
1863         * reload.c (find_valid_class, find_reloads_toplev,
1864         find_equiv_reg): Likewise.
1865         * reload1.c (reload, forget_old_reloads_1, function_invariant_p, 
1866         merge_assigned_reloads): Likewise.
1867         * tree-inline.c (inline_forbidden_p_1,
1868         estimate_num_insns_1): Likewise.
1869         * tree-optimize.c (execute_todo): Likewise.
1870         * tree-outof-ssa.c (eliminate_phi): Likewise.
1871         * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
1872         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Likewise.
1873         * tree-ssa-operands.c (parse_ssa_operands,
1874         get_indirect_ref_operands, create_ssa_artficial_load_stmt): Likewise.
1875         * tree-ssa-pre.c (find_or_generate_expression): Likewise.
1876         * tree-ssanames.c (release_ssa_name): Likewise.
1877         * tree.c (int_bit_position, int_byte_position, tree_low_cst, 
1878         walk_tree): Likewise.
1879
1880         * tree-ssa-operands.c (verify_abort): Fold into ..
1881         (verify_imm_links): ... here.
1882
1883 2005-04-21  Richard Henderson  <rth@redhat.com>
1884
1885         * config/alpha/sync.md (sync_new_nand<I48MODE>): Fix constraints
1886         on non-memory operand for previous inversion.
1887
1888 2005-04-21  Devang Patel  <dpatel@apple.com>
1889
1890         PR optimization/20994
1891         * tree-if-conv.c (find_phi_replacement_condition): Avoid generating
1892         x = !(a == b) : p , q;.
1893         (pass_if_conversion): Verify stmts and flow.
1894         
1895 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
1896
1897         * optabs.c (gen_conditional_trap): Restore #define.
1898
1899         * alias.c (true_dependence): Remove 'abort' from comments. Use
1900         gcc_assert and gcc_unreachable as appropriate.
1901         (canon_true_dependence): Likewise.
1902         * bb-reorder.c (connect_traces): Likewise.
1903         * c-common.c (c_add_case_label): Likewise.
1904         * c-decl.c (finish_function): Likewise.
1905         * caller-save.c (insert_restore, insert_save): Likewise.
1906         * cfg.c (update_bb_profile_for_threading): Likewise.
1907         * cfganal.c (flow_active_insn_p): Likewise.
1908         * cfgexpand.c (add_reg_br_prob_note): Likewise.
1909         * cfgrtl.c (rtl_redirect_edge_and_branch_force, rtl_split_edge,
1910         cfg_layout_merge_blocks): Likewise.
1911         * ifcvt.c (cond_exec_process_insns, merge_if_block,
1912         find_if_block): Likewise.
1913         * integrate.c (allocate_initial_values): Likewise.
1914         * jump.c (reverse_condition, reverse_condition_maybe_unordered,
1915         swap_condition, unsigned_condition, signed_condition,
1916         mark_jump_label, invert_jump_1, rtx_renumbered_equal_p,
1917         reg_or_subregno): Likewise.
1918         * lambda-code.c (lambda_compute_auxillary_space,
1919         lambda_transform_legal_p): Likewise.
1920         * lambda-mat.c (lambda_matrix_inverse_hard): Likewise.
1921         * langhooks.c (lhd_set_decl_assembler_name, lhd_type_promotes_to,
1922         lhd_incomplete_type_error, lhd_expand_expr,
1923         lhd_types_compatible_p, lhd_tree_size): Likewise.
1924         * lcm.c (create_pre_exit, optimize_mode_switching): Likewise.
1925         * local-alloc.c (update_equiv_regs): Likewise.
1926         * loop-unroll.c (peel_loop_completely
1927         unroll_loop_constant_iterations, unroll_loop_runtime_iterations,
1928         peel_loop_simple, unroll_loop_stupid,
1929         analyze_iv_to_split_insn): Likewise.
1930         * loop.c (gen_prefetch, find_and_verify_loops,
1931         basic_induction_var): Likewise.
1932         * modulo-sched.c (normalize_sched_times, check_nodes_order): Likewise.
1933         * value-prof.c (tree_find_values_to_profile): Likewise.
1934         * varasm.c (named_section, default_assemble_integer,
1935         decode_addr_const): Likewise.
1936
1937 2005-04-21 Alan Modra  <amodra@bigpond.net.au>
1938            Fariborz Jahanian <fjahanian@apple.com>
1939
1940         * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Fix size of
1941         portion of argument passed in fpr.
1942         * expr.c (emit_push_insn): Fix computation of 'offset' used to
1943         decide on partial argument save on stack.
1944
1945 2005-04-21  Kazu Hirata  <kazu@cs.umass.edu>
1946
1947         * config/sparc/predicates.md, config/sparc/sparc.md: Fix
1948         comment typos.
1949
1950 2005-04-21  Jan Hubicka  <jh@suse.cz>
1951
1952         * cgraphunit.c: Include tree-pass.h
1953         (cgraph_decide_recursive_inlining,
1954         cgraph_decide_inlining_of_small_function, cgraph_set_inline_failed,
1955         cgraph_decide_inlining): Dump goes to dump_file.
1956         (cgraph_optimize): Call ipa passes instead of inliner.
1957         (cgraph_gate_inlining, pass_ipa_inline): New.
1958         * tree-optimize.c (all_ipa_passes): New static variable.
1959         (register_one_dump_file): Dead with IPA passes.
1960         (register_dump_files): Likewise.
1961         (init_tree_optimization_passes): Initialize IPA passes.
1962         (execute_todo): Do cgraph dump when asked to, do not dump function body
1963         for IPA pass.
1964         * tree-pass.h (TODO_dump_cgraph): New macro.
1965         (ipa_passes): Declare.
1966         * Makefile.in (cgraphunit.o): Add dependency on cgraphunit.h
1967
1968 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
1969
1970         * config/i386/i386.c (type_natural_mode): Use gcc_unreachable and
1971         gcc_assert instead of abort.
1972         (classify_argument, examine_argument, construct_container,
1973         contains_128bit_aligned_vector_p, ix86_check_movabs,
1974         standard_80387_constant_opcode, standard_80387_constant_rtx,
1975         ix86_initial_elimination_offset, ix86_compute_frame_layout,
1976         pro_epilogue_adjust_stack, ix86_expand_epilogue,
1977         ix86_address_cost, legitimate_address_p, legitimize_pic_address,
1978         legitimize_tls_address, output_pic_addr_const,
1979         i386_output_dwarf_dtprel, put_condition_code, print_reg,
1980         get_some_local_dynamic_name, print_operand, print_operand_address,
1981         output_387_binary_op, emit_i387_cw_initialization,
1982         output_fix_trunc, output_fp_compare, ix86_output_addr_vec_elt,
1983         ix86_expand_clear, ix86_expand_binary_operator,
1984         ix86_expand_unary_operator, ix86_match_ccmode, ix86_cc_mode,
1985         ix86_cc_modes_compatible, ix86_fp_comparison_codes,
1986         ix86_fp_comparison_arithmetics_cost, ix86_expand_fp_compare,
1987         ix86_expand_branch, ix86_expand_setcc,
1988         ix86_expand_carry_flag_compare, ix86_expand_fp_movcc,
1989         ix86_expand_int_addcc, ix86_split_to_parts, ix86_split_long_move,
1990         ix86_expand_movmem, ix86_expand_call, assign_386_stack_local,
1991         memory_address_length, ix86_attr_length_immediate_default,
1992         ix86_attr_length_address_default, ix86_agi_dependant,
1993         x86_initialize_trampoline, ix86_init_mmx_sse_builtins,
1994         ix86_expand_binop_builtin, ix86_force_to_memory,
1995         ix86_secondary_memory_needed, ix86_avoid_jump_misspredicts,
1996         x86_emit_floatuns): Likewise.
1997         * config/i386/netware.c (gen_regparm_prefix,
1998         i386_nlm_strip_name_encoding): Likewise.
1999         * config/i386/winnt.c (i386_pe_mark_dllexport): Likewise.
2000
2001 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
2002
2003         * optabs.c (gen_condiational_trap): Remove #define.
2004         (add_equal_note): Assertify. Remove explicit indirection from
2005         call via function pointer.
2006         (expand_ternary_op, expand_simple_binop, expand_binop,
2007         expand_twoval_unop, expand_twoval_binop,
2008         expand_twoval_binop_libfunc, expand_simple_unop expand_unop,
2009         emit_unop_insn,  emit_no_conflict_block,  prepare_cmp_insn,
2010         prepare_operand emit_cmp_and_jump_insn_1, emit_cmp_and_jump_insns,
2011         prepare_float_lib_cmp, emit_conditional_move,
2012         emit_conditional_add, gen_add2_insn, gen_add3_insn,
2013         have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn,
2014         expand_float, expand_fix, debug_optab_libfuncs, gen_cond_trap,
2015         vector_compare_rtx, expand_vec_cond_expr): Likewise.
2016
2017 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
2018
2019         * vec.h: Update API to separate allocation mechanism from type.
2020         (VEC_safe_grow): New.
2021         * vec.c (calculate_allocation): New.
2022         (vec_gc_o_reserve, vec_heap_o_reserve): Adjust.
2023         (vec_gc_free, vec_heap_free): Remove.
2024         * gengtype-lex.l (DEF_VEC_): Process mult-argument macros.  Adjust.
2025         (VEC): Likewise.
2026         (mangle_macro_name): New.
2027         (struct macro_def): New.
2028         (struct macro): Add multiple argument values.
2029         (macro_expans_end): New.
2030         (push_macro_expansion):  Chain on new macro. Process multiple
2031         args, create follow on expansion. Return follow on argument.
2032         (macro_input): Deal with multiple arguments.
2033         
2034         * tree.h: Define VEC(tree,heap) and VEC(tree,gc).
2035         (struct tree_binfo): Adjust.
2036         * basic-block.h: Define VEC(edge,gc).
2037         (struct edge_def): Adjust.
2038         (struct basic_block_def, struct edge_iterator): Likewise.
2039         (ei_container, ei_start_1, ei_last_1): Likewise.
2040         * cfg.c (connect_src, connect_dest): Likewise.
2041         * cfgrtl.c (force_nonfallthru_and_redirect)
2042         * dbxout.c (dbxout_type)
2043         * dwarf2out.c (gen_member_die)
2044         * lambda-code.c: Define VEC(int,gc), VEC(lambda_loop,gc).
2045         (gcc_tree_to_linear_expression): Adjust.
2046         (gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
2047         lbv_to_gcc_expression, lle_to_gcc_expression,
2048         lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest,
2049         perfect_nestify): Likewise.
2050         * lambda.h (gcc_loopnest_to_lambda_loopnest,
2051         lambda_loopnest_to_gcc_loopnest): Adjust prototypes.
2052         * profile.c (instrument_values): Adjust.
2053         * tree-cfg.c (modified_noreturn_calls): Adjust.
2054         (remove_fallthru_edge): Likewise.
2055         * tree-dump.c (dequeue_and_dump): Adjust.
2056         * tree-flow-inline.h (mark_stmt_modified): Adjust.
2057         * tree-flow.h (modified_noreturn_calls): Adjust.
2058         (tree_on_heap): Remove. (yay!)
2059         (register_new_def): Adjust.
2060         * tree-into-ssa.c: Define VEC(int,heap).
2061         (block_defs_stack): Adjust.
2062         (find_idf, insert_phi_nodes, register_new_def,
2063         rewrite_initialize_block, rewrite_finalize_block,
2064         register_new_update_single, rewrite_update_init_block,
2065         rewrite_update_fini_block, rewrite_blocks,
2066         ssa_rewrite_finalize_block, ssa_register_new_def,
2067         ssa_rewrite_initialize_block, rewrite_ssa_into_ssa): Likewise.
2068         * tree-loop-linear.c (linear_transform_loops): Adjust.
2069         * tree-ssa-alias.c: Define VEC(fieldoff_t,heap).
2070         (push_fields_onto_fieldstack, create_overlap_variables_for): Adjust.
2071         * tree-ssa-dom.c (avail_exprs_stack, block_defs_stack,
2072         stmts_to_rescan, const_and_copies_stack, nonzero_vars_stack,
2073         vrp_variables_stack): Adjust declarations.
2074         (tree_ssa_dominator_optimize): Adjust.
2075         (dom_opt_initialize_block, remove_local_expressions_from_table,
2076         restore_nonzero_vars_to_original_value,
2077         restore_vars_to_original_value,
2078         restore_currdefs_to_original_value, dom_opt_finalize_block,
2079         record_var_is_nonzero, record_cond, record_const_or_copy_1,
2080         optimize_stmt, update_rhs_and_lookup_avail_expr,
2081         lookup_avail_expr, record_range): Likewise.
2082         * tree-ssa-pre.c: Define VEC(basic_block,heap).
2083         (compute_antic_aux): Adjust.
2084         (inserted_exprs, create_expression_by_pieces, 
2085         insert_into_preds_of_block, eliminate, mark_operand_necessary, 
2086         remove_dead_inserted_code, fini_pre): Likewise.
2087         * tree-ssa-propagate.c (interesting_ssa_edges): Adjust.
2088         (varying_ssa_edges, add_ssa_edge, process_ssa_edge_worklist. 
2089         ssa_prop_init): Likewise.
2090         * tree-ssa.c: Define VEC(bitmap,heap).
2091         (verify_name_tags): Adjust.
2092         * value-prof.c (rtl_divmod_values_to_profile): Adjust.
2093         (insn_prefetch_values_to_profile, rtl_find_values_to_profile,
2094         tree_divmod_values_to_profile, tree_find_values_to_profile,
2095         value_profile_transformations): Likewise.
2096         * value-prof.h: Define VEC(histogram_value,heap).
2097         * varasm.c: Remove alias_pair pointer typedef, define
2098         VEC(alias_pair,gc).
2099         (finish_aliases_1, finish_aliases_2, assemble_alias): Adjust.
2100         
2101         * config/pa/pa.c (typedef extern_symbol): Typedef the structure,
2102         not a pointer to it.  Create an object vector.
2103         (extern_symbols): Turn into an object vector.
2104         (pa_hpux_asm_output_external, pa_hpux_file_end): Adjust.
2105
2106 2005-04-21  Sebastian Pop  <pop@cri.ensmp.fr>
2107
2108         PR/20742
2109         * Makefile.in (tree-chrec.o): Depend on params.h.
2110         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): New parameter with
2111         default value 20.
2112         * tree-chrec.c: Depend on params.h.  Replace build with buildN,
2113         and fold build with fold_buildN.
2114         (chrec_fold_plus_1): Fail with a chrec_don_know when the size of
2115         the expression exceeds PARAM_SCEV_MAX_EXPR_SIZE.
2116         (tree_contains_chrecs): Compute an estimation of the size of the
2117         given expression.
2118         * tree-chrec.h (tree_contains_chrecs): Modify its declaration.
2119         (tree_does_not_contain_chrecs): Update the use of tree_contains_chrecs.
2120         * tree-scalar-evolution.c (simple_iv): Ditto.
2121         * doc/invoke.texi (scev-max-expr-size): Documented.
2122
2123 2005-04-21  Richard Sandiford  <rsandifo@redhat.com>
2124
2125         * config.gcc (*-*-darwin*): Add darwin.opt to $extra_options.
2126         (i[34567]86-pc-msdosdjgpp*): Likewise i386/djgpp.opt.
2127         (i[34567]86-*-lynxos*, powerpc-*-lynxos*): Likewise lynx.opt.
2128         (i[34567]86-*-sco3.2v5*): Likewise i386/sco5.opt.
2129         (i[34567]86-*-pe, i[34567]86-*-cygwin*, i[34567]86-*-mingw32*)
2130         (i[34567]86-*-uwin*): Likewise i386/cygming.opt.
2131         * config/darwin.h (darwin_one_byte_bool, darwin_fix_and_continue)
2132         (darwin_fix_and_continue_switch, SUBTARGET_OPTIONS): Delete.
2133         * config/darwin.c (darwin_one_byte_bool, darwin_fix_and_continue)
2134         (darwin_fix_and_continue_switch): Delete.
2135         * config/lynx.h (SUBTARGET_OS_LYNX_SWITCHES): Delete.
2136         (SUBTARGET_SWITCHES): Delete.
2137         * config/i386/i386.h (target_flags, MASK_80387, MASK_RTD)
2138         (MASK_ALIGN_DOUBLE, MASK_SVR3_SHLIB, MASK_IEEE_FP, MASK_FLOAT_RETURNS)
2139         (MASK_NO_FANCY_MATH_387, MASK_OMIT_LEAF_FRAME_POINTER)
2140         (MASK_STACK_PROBE, MASK_NO_ALIGN_STROPS, MASK_INLINE_ALL_STROPS)
2141         (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS, MASK_MMX)
2142         (MASK_SSE, MASK_SSE2, MASK_SSE3, MASK_3DNOW, MASK_3DNOW_A)
2143         (MASK_128BIT_LONG_DOUBLE, MASK_64BIT, MASK_MS_BITFIELD_LAYOUT)
2144         (MASK_TLS_DIRECT_SEG_REFS, MASK_NO_RED_ZONE, TARGET_80387)
2145         (TARGET_RTD, TARGET_ALIGN_DOUBLE, TARGET_PUSH_ARGS)
2146         (TARGET_ACCUMULATE_OUTGOING_ARGS, TARGET_SVR3_SHLIB, TARGET_IEEE_FP)
2147         (TARGET_128BIT_LONG_DOUBLE, TARGET_NO_FANCY_MATH_387)
2148         (TARGET_USE_FANCY_MATH_387, TARGET_OMIT_LEAF_FRAME_POINTER)
2149         (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Delete.
2150         (TARGET_FLOAT_RETURNS_IN_80387): Make an alias of TARGET_FLOAT_RETURNS.
2151         (TARGET_64BIT): Undef before redefining.
2152         (TARGET_TLS_DIRECT_SEG_REFS, TARGET_STACK_PROBE)
2153         (TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS, TARGET_SSE)
2154         (TARGET_SSE2, TARGET_SSE3, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A)
2155         (TARGET_RED_ZONE, TARGET_USE_MS_BITFIELD_LAYOUT, TARGET_SWITCHES)
2156         (TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS)
2157         (ix86_fpmath_string, ix86_tls_dialect_string, ix86_cmodel_string)
2158         (ix86_asm_string, ix86_regparm, ix86_regparm_string)
2159         (ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
2160         (ix86_debug_arg_string, ix86_debug_addr_string)
2161         (ix86_align_loops_string, ix86_align_jumps_string)
2162         (ix86_align_funcs_string): Delete.
2163         * config/i386/cygming.h (MASK_NOP_FUN_DLLIMPORT)
2164         (TARGET_NOP_FUN_DLLIMPORT, SUBTARGET_SWITCHES): Delete.
2165         * config/i386/djgpp.h (MASK_BNU210, SUBTARGET_SWITCHES): Delete.
2166         (SUBTARGET_OVERRIDE_OPTIONS): Check TARGET_BNU210.
2167         * config/i386/lynx.h (SUBTARGET_SWITCHES): Delete.
2168         * config/i386/sco5.h (MASK_COFF, TARGET_ELF)
2169         (SUBTARGET_SWITCHES): Delete.
2170         * config/i386/i386.c (ix86_debug_arg_string): Delete.
2171         (ix86_debug_addr_string): Delete.
2172         (ix86_cmodel_string, ix86_asm_string, ix86_tls_dialect_string)
2173         (ix86_fpmath_string, ix86_regparm_string, ix86_regparm)
2174         (ix86_align_loops_string, ix86_align_jumps_string)
2175         (ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
2176         (ix86_align_funcs_string): Make static.
2177         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2178         (ix86_handle_option): New function.
2179         (TARGET_USE_MS_BITFIELD_LAYOUT): Delete.
2180         (ix86_ms_bitfield_layout_p): Check TARGET_MS_BITFIELD_LAYOUT.
2181         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove handling
2182         of darwin_fix_and_continue_switch.
2183         (darwin_one_byte_bool): Delete.
2184         * config/rs6000/lynx.h (EXTRA_SUBTARGET_SWITCHES): Delete.
2185         * config/rs6000/rs6000.c (rs6000_override_options): Update assignment
2186         to darwin_one_byte_bool.
2187         * config/darwin.opt, config/lynx.opt, config/i386/cygming.opt,
2188         * config/i386/djgpp.opt, config/i386/i386.opt,
2189         * config/i386/sco5.opt: New files.
2190
2191 2005-04-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
2192
2193         * config/sparc/sparc.c (reg_or_0_operand, const1_operand,
2194         fp_zero_operand, fp_register_operand, intreg_operand,
2195         fcc_reg_operand, fcc0_reg_operand, icc_or_fcc_reg_operand,
2196         call_operand, call_operand_address, tgd_symbolic_operand,
2197         tld_symbolic_operand, tie_symbolic_operand, tle_symbolic_operand,
2198         symbolic_operand, symbolic_memory_operand, label_ref_operand,
2199         sp64_medium_pic_operand, data_segment_operand,
2200         text_segment_operand, splittable_symbolic_memory_operand,
2201         reg_or_nonsymb_mem_operand, splittable_immediate_memory_operand,
2202         eq_or_neq, normal_comp_operator, noov_compare_op,
2203         noov_compare64_op, v9_regcmp_op, extend_op, cc_arithop,
2204         cc_arithopn, arith_operand, arith_4096_operand, arith_add_operand,
2205         const64_operand, const64_high_operand, arith11_operand,
2206         arith10_operand, arith_double_operand, arith_double_4096_operand,
2207         arith_double_add_operand, arith11_double_operand,
2208         arith10_double_operand, small_int, small_int_or_double,
2209         uns_small_int, uns_arith_operand, clobbered_register,
2210         input_operand, compare_operand): Delete.
2211         (sparc_emit_set_const32): Use predicates in assertion.  Remove special
2212         code for TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT != 64.
2213         (sparc_emit_set_const64): Call gcc_unreachable if H_B_P_W_I == 32.
2214         (GEN_HIGHINT64, GEN_INT64): Delete.
2215         (sparc_emit_set_safe_HIGH64, gen_safe_SET64, gen_safe_OR64,
2216         gen_safe_XOR64): Adjust for above deletion.
2217         (sparc_emit_set_const64): Support only H_B_P_W_I == 64 and CONST_INTs.
2218         Use 'unsigned HOST_WIDE_INT' instead of 'long' for bitmask.
2219         (legitimate_constant_p): Use const_zero_operand instead.
2220         (sparc_extra_constraint_check): Likewise.
2221         * config/sparc/sparc.h (CONST_DOUBLE_OK_FOR_LETTER_P): Remove 'O'.
2222         (PREFERRED_RELOAD_CLASS): Use const_zero_operand.
2223         (PREDICATE_CODES): Delete.
2224         * config/sparc/sparc.md: Include predicates.md.
2225         (All patterns): Adjust for new predicate names.
2226         (cmpdi, cmpdi_sp64): Use arith_operand predicate.
2227         (movhi_const64_special, movsi_const64_special): Add 'K' constraint.
2228         (movdi): Use general_operand predicate.
2229         (movdi_sp64_dbl): Delete.
2230         (movdi_const64_special): Add 'N' constraint.
2231         (movdicc): Use arith10_operand predicate.
2232         (movdi_cc_sp64, movdi_cc_sp64_trunc): Use arith11_operand predicate.
2233         (movdi_cc_reg_sp64): Use arith10_operand predicate.
2234         (movdi_cc_reg_sp64_trunc): Delete.
2235         (cmp_zero_extract, cmp_zero_extract_sp64): Use small_int_operand.
2236         (adddi3_sp64, cmp_ccx_plus, cmp_ccx_plus_set): Use arith_operand.
2237         (subdi3_sp32): Delete.
2238         (subdi3_insn_sp32): Change to define_insn_and_split.
2239         (subdi3_sp64, cmp_minus_ccx, cmp_minus_ccx_set): Use arith_operand.
2240         (muldi3, muldi3_sp64, muldi3_v8plus): Likewise.
2241         (smulsi3_highpart_v8plus, const_smulsi3_highpart_v8plus,
2242         umulsi3_highpart_v8plus, const_umulsi3_highpart_v8plus): Use
2243         small_int_operand predicate.
2244         (divdi3, udivdi3): Use arith_operand predicate.
2245         (udivsi3, udivsi3_sp32, udivsi3_sp64): Use nonimmediate_operand.
2246         (and<V64I>3_sp64, ior<V64I>3_sp64, xor<V64I:mode>3_sp64,
2247         xor_not_<V64I:mode>_sp64) : Use arith_operand predicate.
2248         (xordi3_sp64_dbl): Delete.
2249         (cmp_ccx_arith_op, cmp_ccx_arith_op_set, cmp_ccx_xor_not,
2250         cmp_ccx_xor_not_set, cmp_ccx_arith_op_not, cmp_ccx_arith_op_not_set,
2251         cmp_ccx_neg, cmp_ccx_set_neg, one_cmpl<V64I>2_sp64, cmp_ccx_not,
2252         cmp_ccx_set_not): Use arith_operand predicate.
2253         (ashrsi3_extend2, lshrsi3_extend2 et al.): Use small_int_operand.
2254         * config/sparc/predicates.md: New file.
2255
2256 2005-04-21  Kazu Hirata  <kazu@cs.umass.edu>
2257
2258         PR tree-optimization/14846
2259         * fold-const.c (fold_single_bit_test_into_sign_test): New,
2260         split out from ...
2261         (fold_single_bit_test): ... here.
2262         (fold_binary): Call fold_single_bit_test_into_sign_test
2263         instead of fold_single_bit_test.
2264
2265 2005-04-20  James E Wilson  <wilson@specifixinc.com>
2266
2267         PR c++/20805
2268         * dwarf2out.c (gen_variable_die): Don't emit a specification if this
2269         is another declaration.
2270
2271 2005-04-21  Hans-Peter Nilsson  <hp@axis.com>
2272
2273         * config/cris/predicates.md: New file.
2274         * config/cris/cris-protos.h (cris_store_multiple_op_p)
2275         (cris_movem_load_rest_p): Declare.
2276         * config/cris/cris.c (cris_store_multiple_op): Return bool, not int.
2277         (cris_movem_load_rest_p): Ditto.  Globalize.
2278         (cris_bdap_operand, cris_bdap_biap_operand,
2279         cris_orthogonal_operator, cris_commutative_orth_op,
2280         cris_operand_extend_operator,
2281         cris_additive_operand_extend_operator, cris_extend_operator,
2282         cris_plus_or_bound_operator, cris_mem_op,
2283         cris_general_operand_or_symbol,
2284         cris_general_operand_or_gotless_symbol,
2285         cris_general_operand_or_plt_symbol, cris_mem_call_operand,
2286         cris_load_multiple_op): Remove predicate functions.
2287         (cris_symbol, cris_gotless_symbol) <case UNSPEC>: Return 0, don't
2288         abort, for UNSPECs other than CRIS_UNSPEC_PLT.
2289         * config/cris/cris.h (PREDICATE_CODES): Don't define.
2290         * config/cris/cris.md: Include predicates.md.
2291         ("call", "call_value"): Generate CONSTs of Pmode, not VOIDmode.
2292
2293 2005-04-20  Ian Lance Taylor  <ian@airs.com>
2294
2295         * c-common.def: Remove STMT_EXPR (moved to cp/cp-tree.def).
2296         * c-common.h (STMT_EXPR_STMT): Don't define.
2297         (STMT_EXPR_NO_SCOPE): Don't define.
2298         * c-dump.c (c_dump_tree): Don't handle STMT_EXPR.
2299         * c-pretty-print.c (pp_c_primary_expression): Likewise.
2300         (pp_c_expression): Likewise.
2301
2302 2005-04-20  Richard Henderson  <rth@redhat.com>
2303
2304         PR target/21100
2305         * config/i386/mmx.md (push<MMXMODE>1): Fix predicate thinko.
2306
2307 2005-04-20  Jeff Law  <law@redhat.com>
2308
2309         * reload1.c (reload): Ignore equivalences between pseudos and
2310         read only memory.
2311
2312 2005-04-20  Joseph S. Myers  <joseph@codesourcery.com>
2313
2314         PR c/12913
2315         * c-tree.h (struct c_label_list): Update comment.
2316         (struct c_label_context): Rename to struct c_label_context_se.
2317         (label_context_stack): Rename to label_context_stack_se.
2318         (C_DECL_UNJUMPABLE_VM, C_DECL_UNDEFINABLE_VM, struct
2319         c_label_context_vm, label_context_stack_vm, c_begin_vm_scope,
2320         c_end_vm_scope): New.
2321         (C_DECL_DECLARED_BUILTIN, C_DECL_USED): Use FUNCTION_DECL_CHECK.
2322         * c-decl.c (pop_scope): Call c_end_vm_scope.
2323         (pushdecl): Call c_begin_vm_scope for variably modified
2324         declarations.
2325         (define_label): Check for jumping into scope of identifier with
2326         variably modified type.  Push label on stack for those defined at
2327         current context of identifiers with variably modified type.
2328         (start_function): Create stack level for context of identifiers
2329         with variably modified type.
2330         (finish_function): Pop stack level for context of identifiers with
2331         variably modified type.
2332         * c-typeck.c (label_context_stack): Rename to
2333         label_context_stack_se.
2334         (label_context_stack_vm, c_begin_vm_scope, c_end_vm_scope): New.
2335         (c_finish_goto_label): Check for jumping into scope of identifier
2336         with variably modified type.  Push label on stack for those jumped
2337         to from current context of identifiers with variably modified
2338         type.
2339         (struct c_switch): Add blocked_vm.
2340         (c_start_case): Initialize blocked_vm.
2341         (do_case): Check blocked_vm.
2342         (c_finish_case): Add comment.
2343         (c_begin_stmt_expr, c_finish_stmt_expr): Update for renamed
2344         variable label_context_stack.
2345
2346 2005-04-20  Kazu Hirata  <kazu@cs.umass.edu>
2347
2348         * tree-ssa-phiopt.c (tree_ssa_phi_opt): Update calls to
2349         conditional_replacement, value_replacement, abs_replacement,
2350         minmax_replacement.
2351         (replace_phi_edge_with_variable): Remove argument BB.
2352         (conditional_replacement, value_replacement,
2353         minmax_replacement, abs_replacement): Remove argument PHI_BB.
2354         Update a call to replace_phi_edge_with_variable.
2355
2356         * tree-ssa-phiopt.c: Fix comments.
2357
2358 2005-04-20  Michael Matz  <matz@suse.de>
2359
2360         PR20973
2361         * reload.c (push_reload, find_dummy_reload): Check for uninitialized
2362         pseudos.
2363
2364 2005-04-20  Kazu Hirata  <kazu@cs.umass.edu>
2365
2366         * tree-ssa-phiopt.c: Fix comment typos.
2367
2368         PR tree-optimization/21116
2369         * tree-ssa-phiopt.c: Fix a typo.
2370
2371 2005-04-19  Richard Henderson  <rth@redhat.com>
2372
2373         * builtins.c (expand_builtin_sync_operation): Revert last change.
2374         * optabs.c (expand_bool_compare_and_swap): Compare vs old value,
2375         not vs new value.
2376         (expand_compare_and_swap_loop): Likewise.
2377         (expand_sync_operation): Remove fallback from NAND to AND; invert
2378         memory operand when expanding from cmpxchg.
2379         (expand_sync_fetch_operation): Likewise.
2380         * doc/extend.texi (Atomic Builtins): Fix docs for nand and
2381         compare-and-swap.
2382
2383         * config/alpha/alpha.c (alpha_split_atomic_op): Invert memory operand
2384         when implementing NAND.  Fix double-add for AFTER.
2385         * config/alpha/sync.md (sync_nand<I48MODE>): Invert memory operand.
2386         (sync_old_nand<I48MODE>, sync_new_nand<I48MODE>): Likewise.
2387         (sync_compare_and_swap<I48MODE>): Fix compare vs zero.  Return old
2388         memory value.
2389         (sync_lock_test_and_set<I48MODE>): Remove extra label and last
2390         memory barrier.
2391
2392         * config/i386/sync.md (sync_compare_and_swap<IMODE>): Fix pattern
2393         to return old memory value.
2394         (sync_compare_and_swap_cc<IMODE>): Likewise.
2395
2396         * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Early
2397         return pre-reload.  Don't consider output or anti dependencies.
2398         * config/ia64/sync.md (IMODE): New.
2399         (modesuffix): Add QI and HI.
2400         (memory_barrier): Simplify expansion.
2401         (sync_compare_and_swap<IMODE>): Use IMODE, not I48MODE.
2402         (cmpxchg_acq_<IMODE>): Likewise.
2403         (sync_lock_test_and_set<IMODE>): Likewise.
2404         (sync_lock_release<IMODE>): Likewise.
2405
2406 2005-04-19  James A. Morrison  <phython@gcc.gnu.org>
2407
2408         * fold-const.c (fold_binary): Fold ~(X ^ Y) to ~X ^ Y or X ^ ~Y if
2409         ~X or ~Y simplify.
2410
2411 2005-04-19  James A. Morrison  <phython@gcc.gnu.org>
2412
2413         * fold-const (fold_binary):  Fold ~X ^ ~ Y to X ^ Y.
2414
2415 2005-04-20  Michael Pogue  <michael.pogue@sun.com>
2416             Joseph S. Myers  <joseph@codesourcery.com>
2417
2418         * c.opt (Wint-to-pointer-cast, Wpointer-to-int-cast): New options.
2419         * c-typeck.c (build_c_cast): Check these options.
2420         * doc/invoke.texi: Document these options.
2421
2422 2005-04-20  Kazu Hirata  <kazu@cs.umass.edu>
2423
2424         * tree-ssa-phiopt.c: Update a comment about the pass.
2425
2426 2005-04-19  Kazu Hirata  <kazu@cs.umass.edu>
2427
2428         * tree-ssa-phiopt.c, config/arm/arm.c, config/fr30/fr30.md,
2429         config/mcore/mcore.c: Fix comment typos.
2430
2431 2005-04-19  Daniel Jacobowitz  <dan@codesourcery.com>
2432
2433         * Makefile.in (libgcc.mk): Pass GCC_FOR_TARGET.
2434         * mklibgcc.in: Use $GCC_FOR_TARGET instead of ./xgcc.
2435
2436 2005-04-19  Paul Brook  <paul@codesourcery.com>
2437
2438         * config/arm/arm.c (arm_init_libfuncs): Clear mod optabs. 
2439
2440 2005-04-19  Andrew Haley  <aph@redhat.com>
2441
2442         PR java/21022
2443         * dbxout.c (dbxout_type_fields): Check DECL_IGNORED_P before
2444         looking at a field's bitpos.
2445
2446 2005-04-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2447
2448         * system.h (fopen, fdopen, freopen): Define these to the unlocked
2449         libiberty functions.
2450
2451 2005-04-19  Kazu Hirata  <kazu@cs.umass.edu>
2452
2453         PR tree-optimization/21096
2454         * tree-ssa-copy.c (fini_copy_prop): Free cached_last_copy_of.
2455
2456 2005-04-19  Alan Modra  <amodra@bigpond.net.au>
2457
2458         PR target/21098
2459         * config/rs6000/rs6000.c (rs6000_elf_end_indicate_exec_stack): New.
2460         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Use the above.
2461
2462 2005-04-19  Alexandre Oliva  <aoliva@redhat.com>
2463
2464         * tree-cfg.c (dump_function_to_file): Use cfun info only if it
2465         refers to the function being dumped.
2466
2467 2005-04-18  Daniel Jacobowitz  <dan@codesourcery.com>
2468
2469         * varasm.c (assemble_start_function): Remove reset of in_section.
2470
2471 2005-04-18  James A. Morrison  <phython@gcc.gnu.org>
2472
2473         PR tree-optimization/21085
2474         * fold-const (fold_binary): Don't change X % -C to X % C if C has
2475         overflowed.
2476
2477 2005-04-19  Ben Elliston  <bje@au.ibm.com>
2478
2479         * doc/invoke.texi (Optimize Options): Refer to the correct
2480         optimisation flag -ftree-dominator-opts, not -ftree-dom.
2481
2482 2005-04-18  Christopher Jaillet <christophe.jaillet@wanadoo.fr>
2483
2484         * config/rs6000/rs6000.c (machopic_output_stub):  Increase
2485         alloca argument to be big enough.
2486
2487 2005-04-18  Alexandre Oliva  <aoliva@redhat.com>
2488
2489         PR middle-end/21049
2490         * tree-cfg.c (dump_function_to_file): Do not crash if cfun or
2491         cfun->cfg are NULL.
2492
2493 2005-04-18  Tom Tromey  <tromey@redhat.com>
2494
2495         * cgraphunit.c (cgraph_finalize_compilation_unit): Fix a comment
2496         typo.
2497
2498 2005-04-18  Richard Henderson  <rth@redhat.com>
2499
2500         * config/alpha/alpha.c (alpha_split_atomic_op): New.
2501         (alphaev5_insn_pipe): Add LD_L, ST_C, MB types.
2502         (alphaev4_insn_pipe): Likewise.  Correct IST and LDSYM pipes.
2503         * config/alpha/alpha-protos.h: Update.
2504         * config/alpha/alpha.md (UNSPECV_MB, UNSPECV_LL, UNSPECV_SC): New.
2505         (UNSPECV_ATOMIC, UNSPECV_CMPXCHG, UNSPECV_XCHG): New.
2506         (attr type): Add ld_l, st_c, mb.
2507         (andsi_internal, andnotsi3, iorsi_internal, one_cmplsi_internal,
2508         iornotsi3, xorsi_internal, xornotsi3): New.
2509         * config/alpha/ev4.md (ev4_ld): Add ld_l.
2510         (ev4_ist_c, ev4_mb): New.
2511         * config/alpha/ev5.md (ev5_st): Add st_c, mb.
2512         (ev5_ld_l): New.
2513         * config/alpha/ev6.md (ev6_ild): Add ld_l.
2514         (ev6_ist): Add st_c.
2515         (ev6_mb): New.
2516         * config/alpha/sync.md: New file.
2517
2518 2005-04-18  Richard Henderson  <rth@redhat.com>
2519
2520         * builtins.c (expand_builtin_sync_operation): Fold nand to and
2521         for constants.
2522
2523         * optabs.c (expand_sync_operation): Fix typo expanding nand to and.
2524
2525 2005-04-18  Devang Patel  <dpatel@apple.com>
2526
2527         * config/rs6000/atlivec.md (mulv4si3): New pattern.
2528         
2529 2005-04-18  James A. Morrison  <phython@gcc.gnu.org>
2530
2531         PR tree-optimization/20922
2532         * fold-const.c (fold_binary): Fold X - c > X and X + c < X to false.
2533         Fold X + c >= X and fold X - c <= X to true.
2534
2535 2005-04-18  James A. Morrison  <phython@gcc.gnu.org>
2536
2537         * config/ia64/unwind-ia64.c (emergency_reg_state_free): Make an
2538         unsigned int.
2539         (emergency_labeled_state_free): Likewise.
2540
2541 2005-04-18  Nick Clifton  <nickc@redhat.com>
2542
2543         * config/h8300/h8300.md (jump): Remove prescan parameter from
2544         calls to final_scan_insn.
2545
2546         * config/arc/arc.c (arc_output_function_epilogue): Remove prescan
2547         parameter from calls to final_scan_insn.
2548
2549         * config.gcc (m68hc12): Use the m68hc11.opt file for target
2550         specific options.
2551         (v850e, v850e1): Use the v850.opt file for target specific
2552         options.
2553
2554 2005-04-18  Kazu Hirata  <kazu@cs.umass.edu>
2555
2556         PR tree-optimization/21001
2557         * tree-optimize.c (init_tree_optimization_passes): Move the
2558         first pass_forwprop immediately before pass_vrp.
2559
2560 2005-04-17  Ian Lance Taylor  <ian@airs.com>
2561
2562         * c-common.def (SIZEOF_EXPR, ARROW_EXPR, ALIGNOF_EXPR): Remove.
2563         * c-common.c (c_sizeof_or_alignof_type): Change second parameter
2564         from enum tree_code op to bool is_sizeof.
2565         * c-common.h (c_sizeof_or_alignof_type): Update declaration.
2566         (c_sizeof, c_alignof): Update calls to c_sizeof_or_alignof_type.
2567         * c-pretty-print.c (pp_c_postfix_expression): Remove ARROW_EXPR
2568         case.
2569         (pp_c_unary_expression): Remove SIZEOF_EXPR and ALIGNOF_EXPR
2570         cases.
2571         (pp_c_expression): Remove ARROW_EXPR, SIZEOF_EXPR, and
2572         ALIGNOF_EXPR cases.
2573
2574 2005-04-17  Ian Lance Taylor  <ian@airs.com>
2575
2576         * system.h: Poison DONT_ACCESS_GBLS_AFTER_EPILOGUE.
2577
2578 2005-04-17  Richard Henderson  <rth@redhat.com>
2579
2580         * config/alpha/alpha.c (va_list_skip_additions): Only define if
2581         TARGET_ABI_OSF.
2582         (TARGET_STDARG_OPTIMIZE_HOOK): Likewise.
2583         (alpha_stdarg_optimize_hook): Likewise.  Allow for one more round
2584         of indirection through ssa names while looking for the gpr counter
2585         field.
2586         (alpha_setup_incoming_varargs) <TARGET_ABI_OSF>: Make use of the
2587         saved va_list_gpr_size and va_list_fpr_size.
2588
2589 2005-04-17  Kazu Hirata  <kazu@cs.umass.edu>
2590
2591         * tree-vrp.c (compare_values): Check that VAL1 and VAL2 are
2592         both pointers or both integers.
2593
2594         * tree-vrp.c (maybe_add_assert_expr): Don't assert
2595         ASSERT_EXPRs for single-use variable.
2596
2597         * tree-into-ssa.c: Fix a comment typo.
2598
2599 2005-04-17  Richard Sandiford  <rsandifo@redhat.com>
2600
2601         * config/mips/iris6.h (DRIVER_SELF_SPECS): Check -march as well as
2602         -mipsN before forcing a default of -mips2.
2603
2604 2005-04-17  Kazu Hirata  <kazu@cs.umass.edu>
2605
2606         * predict.h (IS_TAKEN): Remove.
2607         * rtl.h (NOTE_PREDICTION): Likewise.
2608
2609         * modulo-sched.c (CFG_HOOKS): Remove.
2610
2611         * c-parser.c (N_C_TTYPES): Remove.
2612
2613         * tree-flow-inline.h (get_stmt_operands): Remove.
2614         * lambda-code.c, tree-ssa-loop-unswitch.c,
2615         tree-ssa-operands.c, tree-ssa-pre.c, tree-ssa-propagate.c,
2616         tree-ssa-sink.c, tree-ssa.c, tree-tailcall.c,
2617         tree-vect-transform.c, tree-vectorizer.c, tree-vrp.c): Remove
2618         calls to get_stmt_operands.
2619         * doc/tree-ssa.texi: Don't mention get_stmt_operands.
2620
2621 2005-04-17  Richard Henderson  <rth@redhat.com>
2622
2623         PR target/20375
2624         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Advance a copy
2625         of CUMULATIVE_ARGS past the last named argument.
2626         (alpha_va_start): Expect pretend_args_size only if strictly less than
2627         6 named arguments.
2628
2629 2005-04-17  Kazu Hirata  <kazu@cs.umass.edu>
2630
2631         PR middle-end/21024
2632         * builtins.c (expand_builtin_strcat): Convert the result of
2633         strlen to the right type.
2634         * fold-const.c (fold_binary) <PLUS_EXPR>: Use fold_convert to
2635         avoid creating type mismatches.
2636         <GE_EXPR>: Pass op0 and op1 to fold_build2 to avoid creating
2637         type mismatches.
2638
2639         * c-lex.c (WCHAR_TYPE_SIZE, WCHAR_BYTES): Remove.
2640
2641 2005-04-16  Richard Henderson  <rth@redhat.com>
2642
2643         PR target/21051
2644         * builtins.c (expand_builtin) <BUILT_IN_BOOL_COMPARE_AND_SWAP_*>:
2645         Use the mode of boolean_type_node when the user doesn't provide one.
2646         * config/ia64/sync.md (sync_lock_release<I48MODE>): Use operand 1.
2647
2648 2005-04-16  Alexandre Oliva  <aoliva@redhat.com>
2649
2650         PR target/20126
2651         * loop.c (loop_givs_rescan): Handle non-replaceable (plus (reg)
2652         (const)).
2653
2654         * tree-scalar-evolution.c (interpret_rhs_modify_expr): Fix typo in
2655         comment.
2656
2657 2005-04-16  Roger Sayle  <roger@eyesopen.com>
2658             Steven Bosscher  <stevenb@suse.de>
2659
2660         * fold-const.c (fold_binary_to_constant): Delete obsolete comment.
2661         (fold_unary_to_constant): Likewise.
2662
2663 2005-04-16  Kazu Hirata  <kazu@cs.umass.edu>
2664
2665         * basic-block.h: Adjust the value of PROP_SCAN_DEAD_STORES,
2666         PROP_ASM_SCAN.
2667
2668 2005-04-16  Gerald Pfeifer  <gerald@pfeifer.com>
2669
2670         * doc/install.texi (Specific): Avoid using asterisks in @anchor
2671         names related to target triplets.
2672         Remove i?86-*-esix from platform directory.
2673         Remove powerpc-*-eabiaix from platform directory.
2674
2675 2005-04-16  Joseph S. Myers  <joseph@codesourcery.com>
2676
2677         PR middle-end/20491
2678         * config/ia64/ia64.c (rtx_needs_barrier): Recurse instead of
2679         falling through from SUBREG case to REG.
2680
2681 2005-04-15  Roger Sayle  <roger@eyesopen.com>
2682
2683         * fold-const.c (fold_relational_hi_lo): Delete function and prototype.
2684         (fold_binary): Update comment mentioning fold_relational_hi_lo.
2685         (fold_binary_to_constant): Simplify using fold_binary.
2686         (fold_unary_to_constant): Likewise, simplify using fold_unary.
2687
2688 2005-04-15  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2689
2690         * gthr-posix.c (pthread_cancel): Define.
2691         (pthread_mutexattr_init): Likewise.
2692         (pthread_mutexattr_settype): Likewise.
2693         (pthread_mutexattr_destroy): Likewise.
2694
2695 2005-04-15  David S. Miller  <davem@davemloft.net>
2696
2697         PR target/20673
2698         * config/sparc/sparc.h (sparc_hard_reg_printed): Mark as GTY(()).
2699
2700 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
2701
2702         PR tree-optimization/21031
2703         * tree-ssa-forwprop.c (ssa_name_defined_by_comparison_p): New.
2704         (forward_propagate_into_cond_1): Call it.  Forward propagate
2705         integer-integer casts into COND_EXPRs.
2706
2707 2005-04-15  Dave Korn  <dave.korn@artimi.com>
2708
2709         * gcc.c (default_compilers): Clarify obscure error message when
2710         reading from standard input.
2711
2712 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
2713
2714         * basic-block.h (PROP_EQUAL_NOTES): Remove.
2715         * flow.c (propagate_one_insn): Don't use PROP_EQUAL_NOTES.
2716
2717         * tree-ssa-alias.c (init_alias_info): Remove a call to
2718         get_stmt_operands.
2719
2720 2005-04-15  Andrew MacLeod  <amacleod@redhat.com>
2721
2722         * tree-vect-analyze.c (vect_stmt_relevant_p): Process immediate uses
2723         of non-virtual PHI nodes like we use to.
2724
2725 2005-05-15  Paolo Bonzini  <bonzini@gnu.org>
2726
2727         * genattrtab.c (ATTR_EQ_ATTR_P): Remove.
2728         (attr_copy_rtx): Do not use it.
2729
2730 2005-04-15  Andrew Macleod  <amacleod@redhat.com>
2731
2732         * doc/tree-ssa.texi: Grammer/abbreviation updates.
2733
2734 2005-04-15  Diego Novillo  <dnovillo@redhat.com>
2735
2736         * tree-vect-transform.c (vectorizable_store): Mark necessary
2737         objects in the vectorized store needing renaming.  Update the
2738         SSA graph for V_MAY_DEF operands in the original store.
2739
2740 2005-04-14  Daniel Berlin <dberlin@dberlin.org>
2741
2742         * tree-ssa-pre.c (compute_avail): It's okay to have
2743         TREE_INVARIANT's here, and value number the resulting expressions.
2744         (create_expression_by_pieces): Make sure operands that were
2745         min_invariant when we started, stay that way.
2746
2747 2005-04-15  David Edelsohn  <edelsohn@gnu.org>
2748
2749         * doc/install.texi (*-ibm-aix*): Add comment about system limits.
2750
2751 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
2752
2753         PR tree-optimization/20936.
2754         * tree-ssa-ccp.c (visit_assignment): Fix a typo.
2755
2756 2005-04-15  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2757
2758         * doc/invoke.texi: Fix typos.
2759         * doc/md.texi: Likewise.
2760         * doc/rtl.texi: Likewise.
2761         * doc/sourcebuild.texi: Likewise.
2762         * doc/tm.texi: Likewise.
2763
2764 2005-04-15  Uros Bizjak  <uros@kss-loka.si>
2765
2766         PR tree-optimization/21004
2767         * convert.c (convert_to_integer): Convert ceilf, ceill, floorf
2768         and floorl in c99 mode only.
2769         * builtins.c (expand_builtin_int_roundingfn): Assert that
2770         fallback_fndecl is not NULL_TREE.
2771
2772 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
2773
2774         * cfgrtl.c (purge_all_dead_edge): Remove an unused argument.
2775         * basic-block.h: Update the prototype for
2776         purge_all_dead_edges.
2777         * cfgexpand.c (tree_expand_cfg): Update a call to
2778         purge_all_dead_edges.
2779         * combine.c (combine_instructions): Likewise.
2780         * passes.c (rest_of_handle_old_regalloc, rest_of_handle_cse,
2781         rest_of_handle_cse2, rest_of_handle_gcse,
2782         rest_of_handle_postreload): likewise.
2783
2784 2005-04-15  Alexandre Oliva  <aoliva@redhat.com>
2785
2786         PR middle-end/20739
2787         * gimplify.c (gimplify_addr_expr): Compensate for removal of
2788         e.g. cv-qualification conversions.
2789
2790 2005-04-14  Mike Stump  <mrs@apple.com>
2791
2792         * config/darwin-c.c (framework_construct_pathname): We must
2793         find all headers of a framework in the first instance of it
2794         found in the seach path.
2795
2796 2005-04-14  Kazu Hirata  <kazu@cs.umass.edu>
2797
2798         PR tree-optimization/21021
2799         * tree-vrp.c (compare_values): Work around a bug in the front
2800         end that produces a comparison of mismatched types.
2801
2802 2004-04-14  Richard Henderson  <rth@redhat.com>
2803
2804         * config/ia64/ia64.h (enum fetchop_code): Remove.
2805         (enum ia64_builtins): Move ...
2806         * config/ia64/ia64.c (enum ia64_builtins): ... here.  Remove all
2807         members except BSP and FLUSHRS.
2808         (ia64_init_builtins): Remove __sync builtins.
2809         (ia64_expand_builtin): Likewise.
2810         (ia64_expand_fetch_and_op, ia64_expand_op_and_fetch): Remove.
2811         (ia64_expand_compare_and_swap, ia64_expand_lock_test_and_set): Remove.
2812         (ia64_expand_lock_release): Remove.
2813         * config/ia64/ia64.md (mf): Move to sync.md.
2814         (mf_internal, fetchadd_acq_si, fetchadd_acq_di, cmpxchg_acq_si,
2815         cmpxchg_acq_di, xchgsi, xchgdi): Likewise.
2816         * config/ia64/sync.md: New file.
2817         (memory_barrier): Rename from mf.
2818         (fetchadd_acq_<I48MODE>): Macroize from _si/_di patterns.
2819         (cmpxchg_acq_<I48MODE>): Likewise.
2820         (sync_lock_test_and_set<I48MODE>): Likewise.
2821
2822         * config/ia64/ia64intrin.h: Define nothing for C; limit #defines
2823         to c++.  Remove __sync* declarations.  s/_si/_4/.  s/_di/_8/.
2824
2825 2004-04-14  Richard Henderson  <rth@redhat.com>
2826
2827         * config/i386/i386.c (x86_cmpxchg, x86_xadd): New.
2828         (ix86_compare_emitted): New.
2829         (ix86_expand_compare): Use ix86_compare_emitted if set.
2830         (ix86_expand_setcc): Only emit REG_EQUAL if both ix86_compare_op0
2831         and ix86_compare_op0 are set.
2832         * config/i386/i386.h (x86_cmpxchg, x86_xadd): Declare.
2833         (TARGET_CMPXCHG, TARGET_XADD): New.
2834         (ix86_compare_emitted): Declare.
2835         * config/i386/i386.md: Include sync.md
2836         (UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2): New.
2837         (UNSPECV_XCHG, UNSPECV_LOCK): New.
2838         * config/i386/sync.md: New file.
2839
2840 2004-04-14  Richard Henderson  <rth@redhat.com>
2841
2842         PR middle-end/14311
2843         * builtin-types.def (BT_BOOL, BT_VOLATILE_PTR, BT_I1, BT_I2,
2844         BT_I4, BT_I8, BT_FN_VOID_VPTR, BT_FN_I1_VPTR_I1, BT_FN_I2_VPTR_I2,
2845         BT_FN_I4_VPTR_I4, BT_FN_I8_VPTR_I8, BT_FN_BOOL_VPTR_I1_I1,
2846         BT_FN_BOOL_VPTR_I2_I2, BT_FN_BOOL_VPTR_I4_I4, BT_FN_BOOL_VPTR_I8_I8,
2847         BT_FN_I1_VPTR_I1_I1, BT_FN_I2_VPTR_I2_I2, BT_FN_I4_VPTR_I4_I4,
2848         BT_FN_I8_VPTR_I8_I8): New.
2849         * builtins.def (DEF_SYNC_BUILTIN): New.
2850         (BUILT_IN_FETCH_AND_ADD_N, BUILT_IN_FETCH_AND_ADD_1,
2851         BUILT_IN_FETCH_AND_ADD_2, BUILT_IN_FETCH_AND_ADD_4,
2852         BUILT_IN_FETCH_AND_ADD_8, BUILT_IN_FETCH_AND_SUB_N,
2853         BUILT_IN_FETCH_AND_SUB_1, BUILT_IN_FETCH_AND_SUB_2,
2854         BUILT_IN_FETCH_AND_SUB_4, BUILT_IN_FETCH_AND_SUB_8,
2855         BUILT_IN_FETCH_AND_OR_N, BUILT_IN_FETCH_AND_OR_1,
2856         BUILT_IN_FETCH_AND_OR_2, BUILT_IN_FETCH_AND_OR_4,
2857         BUILT_IN_FETCH_AND_OR_8, BUILT_IN_FETCH_AND_AND_N,
2858         BUILT_IN_FETCH_AND_AND_1, BUILT_IN_FETCH_AND_AND_2,
2859         BUILT_IN_FETCH_AND_AND_4, BUILT_IN_FETCH_AND_AND_8,
2860         BUILT_IN_FETCH_AND_XOR_N, BUILT_IN_FETCH_AND_XOR_1,
2861         BUILT_IN_FETCH_AND_XOR_2, BUILT_IN_FETCH_AND_XOR_4,
2862         BUILT_IN_FETCH_AND_XOR_8, BUILT_IN_FETCH_AND_NAND_N,
2863         BUILT_IN_FETCH_AND_NAND_1, BUILT_IN_FETCH_AND_NAND_2,
2864         BUILT_IN_FETCH_AND_NAND_4, BUILT_IN_FETCH_AND_NAND_8,
2865         BUILT_IN_ADD_AND_FETCH_N, BUILT_IN_ADD_AND_FETCH_1,
2866         BUILT_IN_ADD_AND_FETCH_2, BUILT_IN_ADD_AND_FETCH_4,
2867         BUILT_IN_ADD_AND_FETCH_8, BUILT_IN_SUB_AND_FETCH_N,
2868         BUILT_IN_SUB_AND_FETCH_1, BUILT_IN_SUB_AND_FETCH_2,
2869         BUILT_IN_SUB_AND_FETCH_4, BUILT_IN_SUB_AND_FETCH_8,
2870         BUILT_IN_OR_AND_FETCH_N, BUILT_IN_OR_AND_FETCH_1,
2871         BUILT_IN_OR_AND_FETCH_2, BUILT_IN_OR_AND_FETCH_4,
2872         BUILT_IN_OR_AND_FETCH_8, BUILT_IN_AND_AND_FETCH_N,
2873         BUILT_IN_AND_AND_FETCH_1, BUILT_IN_AND_AND_FETCH_2,
2874         BUILT_IN_AND_AND_FETCH_4, BUILT_IN_AND_AND_FETCH_8,
2875         BUILT_IN_XOR_AND_FETCH_N, BUILT_IN_XOR_AND_FETCH_1,
2876         BUILT_IN_XOR_AND_FETCH_2, BUILT_IN_XOR_AND_FETCH_4,
2877         BUILT_IN_XOR_AND_FETCH_8, BUILT_IN_NAND_AND_FETCH_N,
2878         BUILT_IN_NAND_AND_FETCH_1, BUILT_IN_NAND_AND_FETCH_2,
2879         BUILT_IN_NAND_AND_FETCH_4, BUILT_IN_NAND_AND_FETCH_8,
2880         BUILT_IN_BOOL_COMPARE_AND_SWAP_N, BUILT_IN_BOOL_COMPARE_AND_SWAP_1,
2881         BUILT_IN_BOOL_COMPARE_AND_SWAP_2, BUILT_IN_BOOL_COMPARE_AND_SWAP_4,
2882         BUILT_IN_BOOL_COMPARE_AND_SWAP_8, BUILT_IN_VAL_COMPARE_AND_SWAP_N,
2883         BUILT_IN_VAL_COMPARE_AND_SWAP_1, BUILT_IN_VAL_COMPARE_AND_SWAP_2,
2884         BUILT_IN_VAL_COMPARE_AND_SWAP_4, BUILT_IN_VAL_COMPARE_AND_SWAP_8,
2885         BUILT_IN_LOCK_TEST_AND_SET_N, BUILT_IN_LOCK_TEST_AND_SET_1,
2886         BUILT_IN_LOCK_TEST_AND_SET_2, BUILT_IN_LOCK_TEST_AND_SET_4,
2887         BUILT_IN_LOCK_TEST_AND_SET_8, BUILT_IN_LOCK_RELEASE_N,
2888         BUILT_IN_LOCK_RELEASE_1, BUILT_IN_LOCK_RELEASE_2,
2889         BUILT_IN_LOCK_RELEASE_4, BUILT_IN_LOCK_RELEASE_8,
2890         BUILT_IN_SYNCHRONIZE: New.
2891         * builtins.c (called_as_built_in): Rewrite from CALLED_AS_BUILT_IN
2892         as a function.  Accept __sync_ as a prefix as well.
2893         (expand_builtin_sync_operation, expand_builtin_compare_and_swap,
2894         expand_builtin_lock_test_and_set, expand_builtin_synchronize,
2895         expand_builtin_lock_release): New.
2896         (expand_builtin): Call them.
2897         * c-common.c (DEF_BUILTIN): Don't require __builtin_ prefix if
2898         neither BOTH_P nor FALLBACK_P are defined.
2899         (builtin_type_for_size): New.
2900         (sync_resolve_size, sync_resolve_params, sync_resolve_return): New.
2901         (resolve_overloaded_builtin): New.
2902         * c-common.h (resolve_overloaded_builtin): Declare.
2903         (builtin_type_for_size): Declare.
2904         * c-typeck.c (build_function_call): Invoke resolve_overloaded_builtin.
2905         * expr.c (sync_add_optab, sync_sub_optab, sync_ior_optab,
2906         sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab,
2907         sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab,
2908         sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab,
2909         sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab,
2910         sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap,
2911         sync_compare_and_swap_cc, sync_lock_test_and_set,
2912         sync_lock_release): New.
2913         * optabs.h: Declare them.
2914         * expr.h (expand_val_compare_and_swap, expand_bool_compare_and_swap,
2915         expand_sync_operation, expand_sync_fetch_operation,
2916         expand_sync_lock_test_and_set): Declare.
2917         * genopinit.c (optabs): Add sync optabs.
2918         * optabs.c (init_optabs): Initialize sync optabs.
2919         (expand_val_compare_and_swap_1, expand_val_compare_and_swap,
2920         expand_bool_compare_and_swap, expand_compare_and_swap_loop,
2921         expand_sync_operation, expand_sync_fetch_operation,
2922         expand_sync_lock_test_and_set): New.
2923         * doc/extend.texi (Atomic Builtins): New section
2924         * doc/md.texi (Standard Names): Add sync patterns.
2925
2926 2005-04-14  Alexandre Oliva  <aoliva@redhat.com>
2927
2928         * tree-eh.c (lower_try_finally_copy): Generate new code in
2929         response to goto_queue entries as if the queue was sorted by
2930         index, not pointers.
2931         (lower_try_finally_switch): Likewise.
2932
2933 2005-04-14  Richard Henderson  <rth@redhat.com>
2934
2935         * config/i386/i386.c (ix86_expand_sse_cmp): Split out from ...
2936         (ix86_expand_sse_movcc): ... here.  Take cmp as a pre-computed
2937         register.
2938         (ix86_expand_fp_movcc): Update to match.
2939         (ix86_expand_fp_vcond, ix86_expand_int_vcond): New.
2940         * config/i386/i386-protos.h: Update.
2941         * config/i386/sse.md (vcondv4sf, vcondv2df): New.
2942         (vcond<SSEMODE124>, vcondu<SSEMODE12>): New.
2943
2944 2005-04-14  Joseph S. Myers  <joseph@codesourcery.com>
2945
2946         * doc/cpp.texi, doc/install.texi: Change references to GCC 3.5 to
2947         refer to 4.0.
2948
2949 2005-04-14  Julian Brown  <julian@codesourcery.com>
2950
2951         * Revert elfos.h part of my patch from 2005-04-13 for causing libstdc++
2952         link failures on ppc64 Linux.
2953
2954 2005-04-14  Andreas Krebbel  <krebbel1@de.ibm.com>
2955
2956         * config.gcc: Set cpu_type for s390.
2957
2958 2005-04-14  Daniel Berlin  <dberlin@dberlin.org>
2959
2960         Fix PR tree-optimization/20963
2961         * tree-ssa-pre.c (compute_avail): Remove special case for
2962         TREE_INVARIANT.
2963         (create_expression_by_pieces): Add value numbers for forced out
2964         statements.
2965
2966 2005-04-14  Hans-Peter Nilsson  <hp@axis.com>
2967
2968         * config/cris/cris.md: Replace references to (reg:SI 16) with
2969         (reg:SI CRIS_SRP_REGNUM).
2970
2971 2005-04-14  Kazu Hirata  <kazu@cs.umass.edu>
2972
2973         PR tree-optimization/20657
2974         * tree-vrp.c (extract_range_from_expr): Notice INTEGER_CST to
2975         create an appropriate range from it.
2976
2977 2005-04-14  Uros Bizjak  <uros@kss-loka.si>
2978
2979         * reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST_FLOOR> and
2980         <UNSPEC_FIST_CEIL> case.
2981
2982         * config/i386/i386.md (UNSPEC_FIST_FLOOR, UNSPEC_FIST_CEIL): New.
2983         (*fist<mode>2_floor_1, fistdi2_floor, fistdi2_floor_with_temp)
2984         (fist<mode>2_floor, fist<mode>2_floor_with_temp): New isns patterns
2985         to implement lfloor and llfloor built-ins as x87 intrinsic function.
2986         (fistdi2_floor, fist<mode>2_floor splitters): New splitters.
2987         (lfloor<mode>2): New expanders.
2988         (*fist<mode>2_ceil_1, fistdi2_ceil, fistdi2_ceil_with_temp)
2989         (fist<mode>2_ceil, fist<mode>2_ceil_with_temp): New isns patterns
2990         to implement lceil and llceil built-ins as x87 intrinsic function.
2991         (fistdi2_ceil, fist<mode>2_ceil splitters): New splitters.
2992         (lceil<mode>2): New expanders.
2993
2994 2005-04-14  Uros Bizjak  <uros@kss-loka.si>
2995
2996         * convert.c (convert_to_integer): Convert (long int)trunc{,f,l},
2997         and (long long int)ceil{,f,l} into FIX_TRUNC_EXPR.
2998
2999 2005-04-14  Ulrich Weigand  <uweigand@de.ibm.com>
3000
3001         PR target/20927
3002         * config/s390/s390-modes.def: Define TFmode.
3003
3004 2005-04-13  Richard Sandiford  <rsandifo@redhat.com>
3005
3006         * config/mips/mips.h (ASM_OUTPUT_CASE_LABEL): Delete.
3007         (JUMP_TABLES_IN_TEXT_SECTION): Define.
3008         * config/mips/mips.c (mips16_insn_length): Remove reference to
3009         JUMP_TABLES_IN_TEXT_SECTION.
3010
3011 2005-04-13 Fariborz Jahanian <fjahanian@apple.com>
3012
3013         * simplify-rtx.c (simplify_binary_operation_1): Return
3014         scalar or vector of constant 0, depending on the xor's
3015         mode.
3016
3017 2005-04-13  Dale Johannesen  <dalej@apple.com>
3018
3019         * objc/Make-lang.in (objc-lang.o):  Depend on tree-gimple.h.
3020         (objc-act.o):  Ditto.
3021         * objc/objc-act.c (objc_gimplify_expr):  New.
3022         (objc_get_callee_fndecl):  New.
3023         * objc/objc-act.h:  Include tree-gimple.h.  Declare new functions.
3024         * objc/objc-lang.c (LANG_HOOKS_GIMPLIFY_EXPR):  Define.
3025         (LANG_HOOKS_GET_CALLEE_FNDECL):  Define.
3026
3027 2005-04-13  Devang Patel  <dpatel@apple.com>
3028
3029         * tree-if-conv.c (tree_if_convert_cond_expr): Do not create extra
3030         temp variables.
3031
3032 2005-04-13  Hans-Peter Nilsson  <hp@axis.com>
3033
3034         CRIS prologue as RTL.
3035         * config/cris/cris-protos.h (cris_emit_movem_store)
3036         (cris_expand_prologue): Prototype.
3037         * config/cris/cris.c (struct machine_function): New member
3038         stdarg_regs.
3039         (cfa_label_num, cris_target_asm_function_prologue): Remove.
3040         (TARGET_ASM_FUNCTION_PROLOGUE): Don't override.
3041         (cris_general_operand_or_gotless_symbol): Accept CRIS_UNSPEC_GOT.
3042         (cris_load_multiple_op, cris_return_address_on_stack)
3043         (cris_return_address_on_stack_for_return): ISO-Cify.
3044         (cris_store_multiple_op): New predicate function.
3045         (cris_expand_prologue, cris_emit_movem_store): New functions.
3046         (cris_print_operand) <case 'O'>: Handle modifications other than
3047         post-increment.
3048         (cris_symbol, cris_got_symbol): Return 0 for CRIS_UNSPEC_GOT.
3049         (cris_gotless_symbol): Return 1 for CRIS_UNSPEC_GOT.
3050         (cris_gen_movem_load): Rearrange slightly to make local variable
3051         src a parameter, removing osrc.
3052         (cris_setup_incoming_varargs): Set machine_function member
3053         stdarg_regs to correspond to the number of registers that need to
3054         be saved.
3055         * config/cris/cris.h (EXTRA_CONSTRAINT_S): Accept
3056         CRIS_UNSPEC_GOT.
3057         (PREDICATE_CODES): Add cris_store_multiple_op.  Make
3058         cris_general_operand_or_gotless_symbol accept UNSPEC.
3059         * config/cris/cris.md (CRIS_UNSPEC_GOT): New constant.
3060         ("*movsi_internal") <alternative 8>: Handle CRIS_UNSPEC_GOT.
3061         ("*cris_store_multiple"): New pattern.  Tweak common comment above
3062         this and "*cris_load_multiple".
3063         ("prologue"): New define_expand.
3064
3065         * config/cris/cris.md ("epilogue"): Conditionalize on
3066         TARGET_PROLOGUE_EPILOGUE.
3067
3068 2005-04-13  Steve Ellcey  <sje@cup.hp.com>
3069
3070         PR target/20924
3071         * config/ia64/ia64.md (divsf3_internal_lat): Generate frcpa with
3072         fpsr 0 instead of fpsr 1.
3073         (divsf3_internal_thr): Ditto.
3074         (divdf3_internal_lat): Ditto.
3075         (divdf3_internal_thr): Ditto.
3076         (divxf3_internal_lat): Ditto.
3077         (divxf3_internal_thr): Ditto.
3078
3079 2005-04-13  Kazu Hirata  <kazu@cs.umass.edu>
3080
3081         PR tree-optimization/20913
3082         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Fold COND_EXPR.
3083
3084         PR tree-optimization/20702
3085         * tree-vrp.c (maybe_add_assert_expr): Recurse into
3086         dominator children that haven't been walked into.
3087
3088 2005-04-13  Julian Brown  <julian@codesourcery.com>
3089
3090         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK from
3091         being used for symbols with vague linkage when HAVE_GAS_COMDAT_GROUP
3092         is true.
3093
3094 2005-04-13  Kazu Hirata  <kazu@cs.umass.edu>
3095
3096         * basic-block.h, tree-ssa-uncprop.c, varasm.c,
3097         config/i386/sse.md: Fix comment typos.
3098
3099         * genattrtab.c (NULL_ATTR): Remove.
3100         * ifcvt.c (NULL_EDGE): Likewise.
3101
3102         * rtl.h (RTX_EXPR_FIRST, RTX_EXPR_LAST): Remove.
3103
3104         * rtl.h (NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS,
3105         NOTE_PREDICT): Remove.
3106
3107 2005-04-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
3108
3109         * configure.ac (gcc_AC_CHECK_DECLS): Add vsnprintf.
3110         * configure: Regenerate.
3111         * config.in: Likewise.
3112         * system.h: Declare vsnprintf if not already declared.
3113
3114 2005-04-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
3115
3116         * optc-gen.awk: Handle stand-alone Mask records.
3117         * opth-gen.awk: Likewise.
3118         * doc/options.texi (Option file format): Document them.
3119         * config.gcc (sparc-*-netbsdelf*, sparc-*-linux*, sparc64-*-freebsd*,
3120         sparc64-*-linux*, sparc64-*-netbsd*): Add long-double-switch.opt.
3121         (sparc64-*-openbsd*, sparc64-*-elf*): Add little-endian.opt.
3122         * config/sparc/sparc.h (MASK_FPU, MASK_UNALIGNED_DOUBLES,
3123         MASK_V8, MASK_SPARCLITE, MASK_SPARCLET, MASK_V9,
3124         MASK_DEPRECATED_V8_INSNS, MASK_IMPURE_TEXT, MASK_APP_REGS,
3125         MASK_HARD_QUAD, MASK_LITTLE_ENDIAN, MASK_PTR64, MASK_64BIT,
3126         MASK_STACK_BIAS, MASK_FPU_SET, MASK_VIS, MASK_V8PLUS,
3127         MASK_FASTER_STRUCTS, MASK_LONG_DOUBLE_128): Delete.
3128         (TARGET_FPU, TARGET_UNALIGNED_DOUBLES, TARGET_V8, TARGET_SPARCLITE,
3129         TARGET_SPARCLET, TARGET_V9, TARGET_DEPRECATED_V8_INSNS,
3130         TARGET_IMPURE_TEXT, TARGET_APP_REGS, MASK_HARD_QUAD,
3131         TARGET_LITTLE_ENDIAN, TARGET_PTR64, TARGET_64BIT, MASK_STACK_BIAS,
3132         TARGET_FPU_SET, TARGET_VIS, TARGET_V8PLUS, TARGET_FASTER_STRUCTS,
3133         TARGET_LONG_DOUBLE_128): Likewise.
3134         (TARGET_SWITCHES, SUBTARGET_SWITCHES): Likewise.
3135         (TARGET_OPTIONS, SUBTARGET_OPTIONS): Likewise.
3136         * config/sparc/freebsd.h (SUBTARGET_SWITCHES): Likewise.
3137         * config/sparc/linux.h (SUBTARGET_SWITCHES): Likewise.
3138         * config/sparc/linux64.h (SUBTARGET_SWITCHES): Likewise.
3139         * config/sparc/netbsd-elf.h (SUBTARGET_SWITCHES): Likewise.
3140         * config/sparc/sp64-elf.h (SUBTARGET_SWITCHES): Likewise.
3141         * config/sparc/sparc.c (fpu_option_set): New global.
3142         (sparc_handle_option): New function.
3143         (sparc_override_options): Test fpu_option_set.
3144         (TARGET_DEFAULT_TARGET_FLAGS): Set to TARGET_DEFAULT.
3145         (TARGET_HANDLE_OPTION): Set to sparc_handle_option.
3146         * config/sparc/sparc.opt: New file.
3147         * config/sparc/little-endian.opt: Likewise.
3148         * config/sparc/long-double-switch.opt: Likewise.
3149
3150 2005-04-13  Bernd Schmidt  <bernd.schmidt@analog.com>
3151
3152         * config/bfin/bfin.c (bfin_lib_id_given): New static variable.
3153         (bfin_handle_options): Set it if -mshared-library-id= is seen.
3154         * config/bfin/bfin.opt (mshared-library-id=): Lose
3155         Var(bfin_lib_id_given).
3156
3157 2005-04-13  Matt Thomas  <matt@3am-software.com>
3158
3159         * config/rs6000/sysv4.h (NO_IMPLICIT_EXTERN_C): undefine before
3160         defining.
3161
3162 2005-04-13  Kazu Hirata  <kazu@cs.umass.edu>
3163
3164         * rtl.h (CLEAR_RTX_FLAGS): Remove.
3165
3166         * cgraphunit.c (INSNS_PER_CALL): Remove.
3167
3168         * tree-ssa-forwprop.c (vars,
3169         record_single_argument_cond_exprs,
3170         substitute_single_use_vars): Remove.
3171         (forward_propagate_into_cond_1, forward_propagate_into_cond):
3172         New.
3173         (tree_ssa_forward_propagate_single_use_vars): Call
3174         forward_propagate_into_cond for each COND_EXPR.
3175
3176         * tree-inline.c (INSNS_PER_STMT): Remove.
3177
3178 2005-04-12  Richard Henderson  <rth@redhat.com>
3179
3180         * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Split ...
3181         (ix86_expand_sse_fp_minmax): ... from ...
3182         (ix86_expand_fp_movcc): ... here.
3183         (ix86_expand_sse_movcc): Rewrite from ix86_split_sse_movcc.
3184         * config/i386/i386-protos.h: Update.
3185         * config/i386/i386.md (UNSPEC_IEEE_MIN, UNSPEC_IEEE_MAX): New.
3186         (sse_setccsf, sse_setccdf): Allow before reload.
3187         (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): Remove.
3188         (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): Remove.
3189         (ieee_sminsf3, ieee_smaxsf3, ieee_smindf3, ieee_smaxdf3): New.
3190         * config/i386/sse.md (andsf3, nandsf3, iorsf3, xorsf3): New.
3191         (anddf3, nanddf3, iordf3, xordf3): New.
3192
3193 2005-04-12  Jeff Law  <law@redhat.com>
3194
3195         * Makefile.in (OBJS-common): Add tree-ssa-uncprop.o.
3196         (tree-ssa-uncprop.o): Add dependencies.
3197         * tree-cfg.c (remove_useless_stmts_bb, remove_useless_stmts): Remove.
3198         * tree-flow.h (remove_useless_stmts): Remove prototype.
3199         * tree-outof-ssa.c (rewrite_out_of_ssa): Remove call to
3200         remove_useless_stmts.
3201         * timevar.def (TV_TREE_SSA_UNCPROP): New timevar.
3202         * tree-optimize.c (init_tree_optimization_passes): Add uncprop pass.
3203         * tree-pass.h (pass_uncprop): Declare.
3204         * tree-ssa-uncprop.c: New file.
3205
3206 2005-04-12  James E. Wilson  <wilson@specifixinc.com>
3207
3208         PR target/20670
3209         * unwind-ia64.c (uw_intall_context): Add missing load of r27.
3210
3211 2005-04-12  Caroline Tice  <ctice@apple.com>
3212
3213         Temporary fix for partitioning problems.
3214         * passes.c (rest_of_handle_final): Remove code that
3215         frees unlikely_text_section_name,
3216         * varasm.c (assemble_start_function): Test for partitioning
3217         flag before writing out section labels.
3218         (assemble_end_function): Test for partitioning flag before
3219         writing out section labels.
3220
3221 2005-04-12  Steven Bosscher  <stevenb@suse.de>
3222             Stuart Hastings <stuart@apple.com>
3223             Jan Hubicka  <jh@suse.cz>
3224
3225         * Makefile.in: Add function.h to BASIC_BLOCK_H.  Remove all
3226         references to gt-tree-cfg.h.
3227         * basic-block.h (struct basic_block_def): Don't skip rbi
3228         for garbage collection.
3229         (struct reorder_block_def): Make GTY-able.
3230         (struct control_flow_graph): New structure.
3231         (n_edges, n_basic_blocks, last_basic_block, basic_block_info,
3232         BASIC_BLOCK, EXIT_BLOCK_PTR, ENTRY_BLOCK_PTR): No longer vars,
3233         but instead defines to the control_flow_graph for cfun.
3234         (label_to_block_map): New define, points to the label map of
3235         the control_flow_graph for cfun.
3236         (n_edges_for_function, n_basic_blocks_for_function,
3237         last_basic_block_for_function, basic_block_info_for_function,
3238         EXIT_BLOCK_PTR_FOR_FUNCTION, ENTRY_BLOCK_PTR_FOR_FUNCTION,
3239         basic_block_info_for_function, label_to_block_map_for_function):
3240         Counterparts for the above, taking a struct function as an extra
3241         argument.
3242         (alloc_rbi_pool, free_rbi_pool): Remove prototypes.
3243         * cfg.c: (n_edges, n_basic_blocks, last_basic_block,
3244         basic_block_info, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Remove.
3245         (alloc_rbi_pool, free_rbi_pool): Remove.
3246         (initialize_bb_rbi): Use ggc_alloc_cleared instead of pool_alloc.
3247         * cfglayout.c: (cfg_layout_initialize): Don't allocate the rbi pool
3248         here...
3249         (cfg_layout_finalize) ... and don't free it here.
3250         * cfgrtl.c (cfg_layout_delete_block): Zero out rbi so it gets
3251         garbage collected.
3252         * flow.c (free_basic_block_vars): Set label_to_block_map and
3253         n_edges to zero too.
3254         * function.h (struct function): Add cfg field.
3255         * function.c (allocate_struct_function): Allocate the cfg.
3256         * tree-cfg.c (label_to_block_map): Remove.
3257         (build_tree_cfg): Don't allocate the rbi pool here...
3258         (delete_tree_cfg_annotations): ...and don't free it here.
3259         Also don't nullify label_to_block_map for cfun.
3260
3261 2005-04-12  Caroline Tice  <ctice@apple.com>
3262
3263         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
3264         Revert my patch from April 9.
3265         (fix_edges_for_rarely_executed_code): Revert my patch from April 9.
3266         (reorder_basic_blocks): Revert my patch from April 9.
3267         (insert_section_boundary_note): Revert my patch from April 9.
3268         * dbxout.c (dbxout_function_end): Revert my patch from April 9.
3269         * dwarf2out.c (COLD_TEXT_SECTION_LABEL): Revert my patch from April 9.
3270         (COLD_END_LABEL):  Revert my patch from April 9.
3271         (cold_text_section_label):  Revert my patch from April 9.
3272         (cold_end_label): Revert my patch from April 9.
3273         (dwarf2out_switch_text_section): Revert my patch from April 9.
3274         (output_aranges): Revert my patch from April 9.
3275         (output_ranges):  Revert my patch from April 9.
3276         (output_line_info): Revert my patch from April 9.
3277         (add_location_or_const_value_attribute):  Revert my patch from April 9.
3278         (dwarf2out_var_location): Revert my patch from April 9.
3279         (dwarf2out_init):  Revert my patch from April 9.
3280         (dwarf2out_finish): Revert my patch from April 9.
3281         * function.h (struct function): Revert my patch from April 9.
3282         * opts.c (decode_options): Revert my patch from April 9.
3283         * output.h (unlikely_section_label, hot_section_label,
3284         hot_section_end_label, cold_section_end_label,
3285         unlikely_text_section_name): Revert my patch from April 9.
3286         * passes.c (rest_of_handle_final): Revert my patch from April 9.
3287         * varasm.c (unlikely_section_label, hot_section_label,
3288         hot_section_end_label, cold_section_end_label,
3289         unlikely_text_section_name): Revert my patch from April 9.
3290         (initialize_cold_section_name): Revert my patch from April 9.
3291         (unlikely_text_section): Revert my patch from April 9.
3292         (in_unlikely_text_section): Revert my patch from April 9.
3293         (named_section): Revert my patch from April 9.
3294         (function_section): Revert my patch from April 9.
3295         (current_function_section): Revert my patch from April 9.
3296         (assemble_start_function): Revert my patch from April 9.
3297         (assemble_end_function): Revert my patch from April 9.
3298         (default_section_type_flags_1): Revert my patch from April 9.
3299
3300 2005-04-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
3301
3302         * config/sparc/sparc.h (APPLY_RESULT_SIZE): Set to 24 in 64-bit mode.
3303         * config/sparc/sparc.md (untyped_call): Save the registers manually.
3304
3305         * config/sparc/sparc.c (legitimate_address_p): Use TARGET_ARCH32.
3306
3307 2005-04-12  Ulrich Weigand  <uweigand@de.ibm.com>
3308
3309         PR middle-end/20917
3310         * config/s390/s390.md ("*set_tp"): Use SET in pattern.
3311         ("set_tp_64", "set_tp_31"): Adapt expanded pattern.
3312
3313 2004-04-12  Richard Henderson  <rth@redhat.com>
3314
3315         * config/i386/i386.md (UNSPEC_FIX, UNSPEC_MOVA, UNSPEC_SHUFFLE,
3316         UNSPEC_PSHUFLW, UNSPEC_PSHUFHW, UNSPEC_ADDSUB, UNSPEC_HADD,
3317         UNSPEC_HSUB, UNSPEC_MOVSHDUP, UNSPEC_MOVSLDUP, UNSPEC_MOVDDUP): Remove.
3318         (UNSPEC_*, UNSPECV_*): Renumber.
3319
3320 2005-04-12  Frank Ch. Eigler  <fche@redhat.com>
3321
3322         PR mudflap/19266
3323         From Richard Henderson <rth@redhat.com>:
3324         * tree-mudflap.c (mf_build_check_statement_for): Correct block
3325         splitting logic.
3326
3327 2005-04-12  Dorit Naishlos  <dorit@il.ibm.com>
3328
3329         * tree-cfg.c (tree_verify_flow_info): Use LABEL_EXPR_LABEL.
3330
3331 2005-04-12  Bernd Schmidt  <bernd.schmidt@analog.com>
3332
3333         * config/bfin/bfin.c (bfin_library_id_string): Remove.
3334         (bfin_library_id): New variable.
3335         (bfin_expand_prologue): Use bfin_library_id and bfin_lib_id_given
3336         instead of bfin_library_id_string.
3337         (bfin_handle_option): New function.
3338         (override_options): Remove most code to deal with shared library IDs,
3339         just check they aren't used without -mid-shared-library.
3340         (TARGET_HANDLE_OPTION): Define.
3341         * config/bfin/bfin.h (TARGET_OPTIONS): Delete macro.
3342         * config/bfin/bfin.opt (mshared-library-id=): New.
3343
3344 2005-04-12  Kazu Hirata  <kazu@cs.umass.edu>
3345
3346         * tree-vect-transform.c: Fix comment typos.
3347
3348 2005-04-12 Mostafa Hagog <mustafa@il.ibm.com>
3349
3350         * postreload-gcse.c (eliminate_partially_redundant_load): Don't
3351         split critical edges when not possible/profitable.
3352
3353 2005-04-12  Richard Sandiford  <rsandifo@redhat.com>
3354
3355         * config/ns32k/ns32k.h (target_flags, MASK_32081, MASK_RTD)
3356         (MASK_REGPARM, MASK_32532, MASK_32332, MASK_NO_SB, MASK_NO_BITFIELD)
3357         (MASK_HIMEM, MASK_32381, MASK_MULT_ADD, MASK_SRC, MASK_IEEE_COMPARE)
3358         (TARGET_32081, TARGET_32381, TARGET_MULT_ADD, TARGET_RTD)
3359         (TARGET_REGPARM, TARGET_32532, TARGET_32332, TARGET_SB, TARGET_HIMEM)
3360         (TARGET_BITFIELD, TARGET_IEEE_COMPARE, TARGET_SWITCHES): Delete.
3361         (OVERRIDE_OPTIONS): Clear MASK_SB instead of setting MASK_NO_SB.
3362         * config/ns32k/netbsd.h (TARGET_DEFAULT): Remove MASK_NO_SB and
3363         MASK_NO_BITFIELD.
3364         * config/ns32k/ns32k.c (ns32k_handle_option): New function.
3365         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
3366         * config/ns32k/ns32k.opt: New file.
3367
3368 2005-04-12  Richard Sandiford  <rsandifo@redhat.com>
3369
3370         * config.gcc (m68k-*-linux*): Add m68k/ieee.opt to $extra_options.
3371         * config/m68k/m68k.h (target_flags, MASK_68020, TARGET_68020)
3372         (MASK_68030, TARGET_68030, MASK_68040, TARGET_68040, MASK_68040_ONLY)
3373         (TARGET_68040_ONLY, MASK_68060, TARGET_68060, MASK_5200, TARGET_5200)
3374         (MASK_CFV3, TARGET_CFV3, MASK_CFV4, TARGET_CFV4, MASK_528x)
3375         (TARGET_528x, MASK_CF_HWDIV, TARGET_CF_HWDIV, MASK_68881, TARGET_68881)
3376         (MASK_BITFIELD, TARGET_BITFIELD, MASK_SHORT, TARGET_SHORT)
3377         (MASK_ALIGN_INT, TARGET_ALIGN_INT, MASK_PCREL, TARGET_PCREL)
3378         (MASK_NO_STRICT_ALIGNMENT, TARGET_STRICT_ALIGNMENT, MASK_RTD)
3379         (TARGET_RTD, MASK_SEP_DATA, TARGET_SEP_DATA, MASK_ID_SHARED_LIBRARY)
3380         (TARGET_ID_SHARED_LIBRARY, MASK_ALL_CF_BITS, TARGET_SWITCHES)
3381         (TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS): Delete.
3382         (MASK_COLDFIRE): Formatting fixes.
3383         (TARGET_COLDFIRE): Turn into a boolean value for consistency.
3384         * config/m68k/linux.h (SUBTARGET_SWITCHES): Delete.
3385         * config/m68k/m68k.c (m68k_library_id_string): Initialize to
3386         "_current_shared_library_a5_offset_".
3387         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
3388         (MASK_ALL_CPU_BITS): New macro.
3389         (m68k_handle_option): New function.
3390         (override_options): Remove handling of m68k_library_id_string.
3391         * config/m68k/m68k.opt: New file.
3392         * config/m68k/ieee.opt: New file.