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