OSDN Git Service

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