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