1 2005-04-09 Hans-Peter Nilsson <hp@axis.com>
3 PR rtl-optimization/20466
4 * flow.c (invalidate_mems_from_set): Handle a MEM by checking it
5 for overlap of the address of each list member.
6 (mark_set_1): Call invalidate_mems_from_set for MEMs too.
8 2005-04-08 Mike Stump <mrs@apple.com>
10 * config/darwin.c (indirect_data): Fix typo in strncmp logic.
12 * config/rs6000/rs6000.c (rs6000_emit_prologue): Use 5 nops,
15 2005-04-08 Kazu Hirata <kazu@cs.umass.edu>
17 * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Remove.
19 * function.c (push_function_context_to): Don't set
21 * function.h (function): Remove contains_functions.
22 (current_function_contains_functions): Remove.
24 * function.h (function): Remove instrument_entry_exit.
25 (current_function_instrument_entry_exit): Remove.
27 * function.h (nonlocal_labels): Remove.
29 * tree.h (STRIP_MAIN_TYPE_NOPS): Remove.
31 * genattrtab.c (attr_desc): Remove negative_ok and unsigned_p.
32 (check_attr_value, write_attr_get, write_expr_attr_cache,
33 find_attr, make_internal_attr): Don't reference negative_ok or
35 * genattrtab.h (ATTR_NEGATIVE_OK, ATTR_UNSIGNED,
36 ATTR_FUNC_UNITS, ATTR_BLOCKAGE): Remove.
37 (ATTR_STATIC): Adjust the value.
39 * c-common.h (C_ARTIFICIAL_STRING_P): Remove.
41 2005-04-08 Ulrich Weigand <uweigand@de.ibm.com>
43 * config/s390/tpf.h (ASM_SPEC): Define.
45 2005-04-08 Kazu Hirata <kazu@cs.umass.edu>
47 * tree-flow.h: Remove the prototype for
48 redirect_immediate_uses.
49 (TDFA_USE_OPS, TDFA_USE_VOPS): Remove.
51 2005-04-08 Richard Earnshaw <richard.earnshaw@arm.com>
53 * arm.c (arm_const_double_by_parts): New function.
54 * arm-protos.h (arm_const_double_by_parts): Add prototype.
55 * arm.md (define_split for 64-bit constants): Add another one.
57 2005-04-08 Andrew MacLeod <amacleod@redhat.com>
59 * tree-ssa-operands.c (correct_use_link): Remove linear scan.
61 2005-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
63 * system.h: Revert last change.
65 2005-04-08 Richard Sandiford <rsandifo@redhat.com>
67 * config/xtensa/xtensa.h (target_flags, MASK_NO_FUSED_MADD)
68 (MASK_CONST16, TARGET_NO_FUSED_MADD, TARGET_CONST16)
69 (TARGET_SWITCHES): Delete.
70 * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
71 * config/xtensa/xtensa.md (muladdsf3, mulsubsf3): Check
72 TARGET_FUSED_MADD instead of !TARGET_NO_FUSED_MADD.
73 * config/xtensa/xtensa.opt: New file.
75 2005-04-08 Ben Elliston <bje@au.ibm.com>
77 * config/fp-bit.c: Include L_mul_tf in #endif comment.
78 * config/fp-bit.h: Tidy comments.
80 2005-04-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
82 * system.h: Poison PARAMS.
84 2005-04-07 Richard Sandiford <rsandifo@redhat.com>
86 * config/vax/vax.h (target_flags, MASK_UNIX_ASM, MASK_VAXC_ALIGNMENT)
87 (MASK_G_FLOAT, TARGET_UNIX_ASM, TARGET_VAXC_ALIGNMENT, TARGET_G_FLOAT)
88 (TARGET_SWITCHES): Delete.
89 * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
90 * config/vax/vax.opt: New file.
92 2005-04-07 Daniel Berlin <dberlin@dberlin.org>
94 * tree-ssa-dse.c (dse_optimize_stmt): Fix incorrect comment.
96 2005-04-07 Ian Lance Taylor <ian@airs.com>
98 * config/iq2000/iq2000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Don't
100 * config/mips/mips.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Likewise.
101 * config/sparc/sparc.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE):
104 2005-04-07 Kazu Hirata <kazu@cs.umass.edu>
106 * tree-ssa-sink.c (nearest_common_dominator_of_uses): Consider
107 all immediate uses in PHI nodes.
109 2005-04-07 Richard Earnshaw <richard.earnshaw@arm.com>
111 * arm.c (arm_const_double_inline_cost): Handle any constant by
112 using gen_lowpart and gen_highpart_mode.
113 (note_invalid_constants): All constants in an RTX with a constraint
114 that permits memory are now pushed to the constant pool.
115 (output_move_double): Delete code to handle reg to reg and
116 constant to reg moves.
117 (const_double_needs_minipool, output_mov_immediate): Delete.
118 * arm.h (EXTRA_CONSTRAINT_STR_ARM): All 'D' variants now handle
119 CONST_INT and CONST_VECTOR.
120 * arm.md (ANY64): New mode macro.
121 (arm_movdi): Split reg-reg and const-reg moves. Simplify constraints.
122 (movdf_soft_insn): Split reg-reg and const-reg moves.
123 (split patterns for 64-bit constant and register moves): New.
124 * cirrus.md (cirrus_arm_movdi): Split reg-reg and const-reg moves.
125 (cirrus_movdf_hard_insn): Likewise.
126 * fpa.md (movdf_fpa): Likewise.
127 * iwmmxt.md (iwmmxt_arm_movdi): Likewise.
128 (movv8qi_internal, movv4hi_internal, movv2si_internal): Fix
130 (movv2si_internal_2): Likewise.
131 * vfp.md (arm_movdi_vfp): Split reg-reg and const-reg moves.
132 (movdf_vfp): Likewise.
133 * arm-protos.h (output_mov_immediate): Delete prototype.
135 2005-04-07 Joseph S. Myers <joseph@codesourcery.com>
138 * simplify-rtx.c (simplify_unary_operation_1): Check
139 SUBREG_PROMOTED_UNSIGNED_P (op) > 0 for zero-extension.
141 2005-04-06 James E Wilson <wilson@specifixinc.com>
144 * cgraphunit.c (record_call_1, case FDESC_EXPR): Handle same as
147 2004-04-06 Richard Sandiford <rsandifo@redhat.com>
149 * coverage.h (GCOV_TYPE_NODE): Delete.
150 * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref)
151 (build_ctr_info_type): Use get_gcov_type () instead of GCOV_TYPE_NODE.
152 * tree-profile.c (tree_gen_edge_profiler, tree_gen_interval_profiler)
153 (tree_gen_pow2_profiler, tree_gen_one_value_profiler): Likewise.
154 * value-prof.c (tree_divmod_fixed_value_transform): Delete.
156 2004-04-06 Richard Sandiford <rsandifo@redhat.com>
159 * Makefile.in (gcc.pot): Remove options.c dependency.
160 * optc-gen.awk: Don't quote help strings with N_().
162 2005-04-06 James A. Morrison <phython@gcc.gnu.org>
164 * c-common.c (handle_malloc_atttribute): Only set DECL_IS_MALLOC if
165 the function returns a pointer type.
167 2005-04-06 Daniel Berlin <dberlin@dberlin.org>
169 * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): New
170 * params.h (SALIAS_MAX_IMPLICIT_FIELDS): New
171 * doc/invoke.texi: Documnet salias-max-implicit-fields.
172 * tree-ssa-alias.c (struct used_part): Add implicit_uses and
173 explicit_uses members.
174 (get_or_create_used_part_for): Initialize new fields.
175 (fieldoff_compare): New function.
176 (create_overlap_variables_for): Count number of fields, use
177 heuristic to determine whether to create subvars for vars with
179 Sort the field list by offset and avoid creating duplicate SFT's.
181 2005-04-06 Richard Sandiford <rsandifo@redhat.com>
183 * c.opt (-F): Remove trailing whitespace from help string.
184 (-finput-charset): Use a tab to separate the switch name and help
186 * common.opt (-fsched-stalled-insns, -fsched-stalled-insns-dep)
187 (-ftree-vectorizer-verbose): Likewise.
189 2005-04-06 Kazu Hirata <kazu@cs.umass.edu>
191 * tree-ssa-sink.c (nearest_common_dominator_of_uses): Look at
192 a PHI argument where a use occurs instead of all PHI arguments.
194 2005-04-06 Joseph S. Myers <joseph@codesourcery.com>
196 * c-decl.c (finish_decl): Apply pending #pragma weak regardless of
199 2005-04-06 Kazu Hirata <kazu@cs.umass.edu>
201 * cse.c, tree-flow-inline.h, tree-flow.h, tree-ssa-operands.c,
202 tree-ssa-sink.c, tree.h, config/bfin/bfin.c,
203 config/bfin/bfin.h: Fix comment typos.
205 2005-04-06 Ranjit Mathew <rmathew@hotmail.com>
207 * doc/install.texi: Update the URL for Jacks.
208 * doc/sourcebuild.texi: Likewise.
210 2005-04-06 Eric Botcazou <ebotcazou@libertysurf.fr>
213 * config/sparc/sparc.c (legitimate_address_p): Remove 'imm2'.
214 Revert 2004-10-08 patch. Reject TFmode LO_SUM in 32-bit mode.
216 2005-04-06 Kelley Cook <kcook@gcc.gnu.org>
218 * Makefile.in (LIBGCC2_CFLAGS): Revert -pipe change.
220 2005-04-06 Richard Sandiford <rsandifo@redhat.com>
222 * config/v850/v850-protos.h (override_options): Delete.
223 * config/v850/v850.h (target_flags, MASK_GHS, MASK_LONG_CALLS, MASK_EP)
224 (MASK_PROLOG_FUNCTION, MASK_DEBUG, MASK_V850, MASK_V850E)
225 (MASK_SMALL_SLD, MASK_BIG_SWITCH, MASK_NO_APP_REGS, MASK_DISABLE_CALLT)
226 (MASK_STRICT_ALIGN, MASK_US_BIT_SET, MASK_US_MASK_SET, TARGET_GHS)
227 (TARGET_LONG_CALLS, TARGET_EP, TARGET_PROLOG_FUNCTION, TARGET_V850)
228 (TARGET_BIG_SWITCH, TARGET_DEBUG, TARGET_V850E, TARGET_US_BIT_SET)
229 (TARGET_SMALL_SLD, TARGET_DISABLE_CALLT, TARGET_NO_APP_REGS)
230 (TARGET_STRICT_ALIGN, TARGET_SWITCHES, TARGET_OPTIONS)
231 (OVERRIDE_OPTIONS): Delete.
232 (MASK_CPU): Redefine as MASK_V850 | MASK_V850E.
233 (small_memory_info): Remove the value field.
234 (CONDITIONAL_REGISTER_USAGE): Check !TARGET_APP_REGS rather than
236 * config/v850/v850.c (small_memory): Remove the value field.
237 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
238 (override_options): Delete.
239 (v850_handle_memory_option, v850_handle_option): New functions.
240 * config/v850/v850.opt: New file.
242 2005-04-06 Geoffrey Keating <geoffk@apple.com>
244 * config.host: Add a section for generic hosts, and a subsection
245 for Darwin. Add a case for x86-darwin. Update ppc-darwin case.
246 * config/host-darwin.c: New, split out of config/rs6000/host-darwin.c.
247 * config/host-darwin.h: New.
248 * config/x-darwin: New.
249 * config/i386/host-i386-darwin.c: New.
250 * config/i386/x-darwin: New.
251 * config/rs6000/host-darwin.c: Include host-darwin.h.
252 (darwin_rs6000_gt_pch_get_address): Move to config/host-darwin.c.
253 (darwin_rs6000_gt_pch_use_address): Likewise.
254 * config/rs6000/x-darwin: Change name of .o built, update
255 dependencies for changes to rs6000/host-darwin.c.
257 2005-04-06 Ralf Corsepius <ralf.corsepius@rtems.org>
260 * config/c4x/c4x.h (ASM_PROG, LD_PROG): Remove.
262 2005-04-06 Dorit Naishlos <dorit@il.ibm.com>
264 * tree-vect-analyze.c (vect_analyze_loop_form): Call
265 split_loop_exit_edge instead of loop_split_edge_with.
267 2005-04-06 Paolo Bonzini <bonzini@gnu.org>
269 * config/rs6000/altivec.md (UNSPEC_VSLW, UNSPEC_SUBS,
270 UNSPEC_SET_VSCR): New constants, used throughout.
272 (altivec_vspltisb, altivec_vsplitish, altivec_vsplitisw):
274 (altivec_vspltis<VI_char>): ... this pattern, using
275 a QImode const_int_operand for the immediate.
276 (abs<mode>2, absv4sf2, altivec_abss_<mode>): Rewrite as
279 2005-04-06 Ralf Corsepius <ralf.corsepius@rtems.org>
282 * config/avr/t-avr (AR_FOR_TARGET,RANLIB_FOR_TARGET): Remove.
284 2005-04-06 Kelley Cook <kcook@gcc.gnu.org>
286 * Makefile.in (LIBGCC2_CFLAGS): Compile with -pipe.
288 2005-04-06 Ben Elliston <bje@au.ibm.com>
290 * gcc.c: Correct comment about DEFAULT_SWITCH_TAKES_ARG and
291 DEFAULT_WORD_SWITCH_TAKES_ARG which incorrectly reported these
292 macros as living in "this file" and not gcc.h.
294 2005-04-06 Ben Elliston <bje@au.ibm.com>
296 * doc/invoke.texi (Optimize Options): Mention -ftree-lrs, not
297 -ftree-live_range_split. Perhaps renamed at some point?
299 2005-04-06 Zdenek Dvorak <dvorakz@suse.cz>
302 * tree-ssa-loop-ivopts.c (generic_type_for): New function.
303 (add_candidate_1): Use generic_type_for instead of unsigned_type_for.
305 2005-04-06 Zdenek Dvorak <dvorakz@suse.cz>
307 * tree-flow.h (number_of_iterations_cond): Declaration removed.
308 * tree-ssa-loop-niter.c (number_of_iterations_cond): Made static.
309 (number_of_iterations_special): New function.
310 (number_of_iterations_exit): Use number_of_iterations_special.
311 Use simplify_using_outer_evolutions only at -O3.
312 (number_of_iterations_cond, tree_simplify_using_condition,
313 simplify_using_initial_conditions, loop_niter_by_eval,
314 compare_trees, can_count_iv_in_wider_type_bound,
315 simplify_using_outer_evolutions): Use fold_build.
317 2005-04-05 Thomas Fitzsimmons <fitzsim@redhat.com>
319 * doc/install.texi (Configuration): Document --with-java-home.
321 2005-04-05 Richard Henderson <rth@redhat.com>
325 * config/i386/i386.c (print_operand): Handle vector zeros.
326 (ix86_split_to_parts): Handle CONST_VECTOR.
327 (ix86_hard_regno_mode_ok): Allow MMX modes in general regs.
328 (ix86_modes_tieable_p): Use ix86_hard_regno_mode_ok to decide
329 what modes to tie for MMX and SSE registers.
330 * config/i386/i386.h (MMX_REG_MODE_P): Remove.
331 * config/i386/i386.md: Extend move 0 -> xor peephole to apply
332 to vector modes as well.
333 * config/i386/predicates.md (const0_operand): Handle VOIDmode
334 properly as an input mode.
336 2005-04-05 Andrew MacLeod <amacleod@redhat.com>
338 * tree-ssa-operands.c (verify_abort): Use %p for pointers.
340 2005-04-05 Andrew MacLeod <amacleod@redhat.com>
342 * tree-pretty-print.c (dump_generic_node): Use %p for pointer.
344 2005-04-05 Jakub Jelinek <jakub@redhat.com>
346 * config/i386/i386.c (init_cumulative_args): For -m32 -mfpmath=sse
347 and local functions, set sse_nregs to 8 and float_in_sse.
348 (function_arg_advance, function_arg): If float_in_sse, pass
349 SFmode and DFmode arguments in SSE registers.
350 * config/i386/i386.h (CUMULATIVE_ARGS): Add float_in_sse field.
352 * config/i386/i386.c (ix86_value_regno): Only optimize local functions
355 2005-04-05 Paolo Bonzini <bonzini@gnu.org>
357 * config/i386/i386-protos.h (ix86_function_value): Accept two
358 arguments, like the target macro.
359 * config/i386/i386.h (FUNCTION_VALUE): Pass both arguments.
360 * config/i386/i386.c (ix86_function_value): Accept the second
361 argument of the target macro.
362 (ix86_function_ok_for_sibcall): Pass a function pointer to
364 (ix86_function_value, ix86_libcall_value) [!TARGET_64BIT]: Adjust
365 call to ix86_value_regno).
366 (ix86_value_regno): Add support for returning floating point values
369 2005-04-05 Jakub Jelinek <jakub@redhat.com>
371 PR tree-optimization/20076
372 * tree-inline.c (inline_forbidden_p_1): Prevent inlining functions
373 that call __builtin_return or __builtin_apply_args.
375 2005-04-05 Andrew MacLeod <amacleod@redhat.com>
377 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use update_stmt.
378 Use immediate use iterator.
379 (stmt_is_bumper_for_loop): Use immediate use iterator.
380 * predict.c (strip_builtin_expect): Use update_stmt.
381 * tree-cfg.c (update_modified_stmts): New. Call update_stmt_if_modified
382 on all elements of a STATEMENT_LIST.
383 (bsi_insert_before, bsi_insert_after): Call update_modified_stmts.
384 (bsi_remove): Remove imm_use links and mark the stmt as modified.
385 (bsi_replace): Mark stmt as modified and the update it.
386 * tree-complex.c (update_complex_assignment): Call mark_stmt_modified.
387 (expand_complex_libcal): Call update_stmt.
388 (expand_complex_comparison): Call mark_stmt_modified.
389 (expand_complex_operations_1): Call update_stmt_if_modified.
390 (expand_vector_operations_1): Call mark_stmt_modified.
391 * tree-dfa.c (compute_immediate_uses, free_df_for_stmt, free_df,
392 compute_immediate_uses_for_phi, compute_immediate_uses_for_stmt,
393 add_immediate_use, redirect_immediate_use,
394 redirect_immediate_uses, dump_immediate_uses, debug_immediate_uses,
395 dump_immediate_uses_for, debug_immediate_uses_for): Delete.
396 (mark_new_vars_to_rename): Call update_stmt.
397 * tree-dump.c (dump_option_value_in): Add "stmtaddr".
398 * tree-flow-inline.h (modify_stmt): Rename to mark_stmt_modified.
400 (unmodify_stmt): Delete.
401 (update_stmt): New. Force an update of a stmt.
402 (update_stmt_if_modified): update a stmt if it is out of date.
403 (get_stmt_operands): Verify stmt is NOT modified.
404 (stmt_modified_p): Update comment.
405 (delink_imm_use): Remove a use node from its immuse list.
406 (link_imm_use_to_list): Link a use node to a specific list.
407 (link_imm_use): Link a node to the correct list.
408 (set_ssa_use_from_ptr): Set a use node to a specific value, and insert
409 it in the correct list, if appropriate.
410 (link_imm_use_stmt): Link a use node, and set the stmt pointer.
411 (relink_imm_use): Link a use node in place of another node in a list.
412 (relink_imm_use_stmt): LInk a node in place of another node, and set
414 (end_safe_imm_use_traverse): New. Terminate a safe immuse iterator.
415 (end_safe_imm_use_p): New. Check for the end of a safe immuse iterator.
416 (first_safe_imm_use): New. Initialize a safe immuse iterator.
417 (next_safe_imm_use): New. Proceed to next safe immuse iterator value.
418 (end_readonly_imm_use_p): New. Check for end of a fast immuse iterator.
419 (first_readonly_imm_use): New. Initialize a fast immuse iterator.
420 (next_readonly_imm_use): New. Get the next fast immuse iterator value.
421 (has_zero_uses): New. Return true if there are no uses of a var.
422 (has_single_use): New. Return true if there is only a single use of a
424 (single_imm_use): New. Return the simgle immediate use.
425 (num_imm_uses): New. Return the number of immediate uses.
426 (get_v_must_def_ops): Use is now a pointer.
427 (use_operand_p, get_v_may_def_op_ptr, get_vuse_op_ptr,
428 get_v_must_def_kill_ptr, get_phi_arg_def_ptr): Return the address of
430 (get_immediate_uses, num_immediate_uses, immediate_use): Delete.
431 (delink_stmt_imm_use): Delink all immuses from a stmt.
432 (phi_arg_index_from_use): New. Return a phi arg index for a use.
433 * tree-flow.h (struct dataflow_d): Delete.
434 (immediate_use_iterator_d): New. Immediate use iterator struct.
435 (FOR_EACH_IMM_USE_FAST): New. Macro for read only immuse iteration.
436 (FOR_EACH_IMM_USE_SAFE): New. Macro for write-safe immuse iteration.
437 (BREAK_FROM_SAFE_IMM_USE): New. Macro for earlyu exit from write-safe
439 (struct stmt_ann_d): Remove dataflow_t from struct.
440 * tree-if-conv.c (tree_if_conversion). Don't call free_df.
441 (if_convertible_phi_p): Use FAST immuse iterator.
442 (if_convertible_loop_p): Don't call compute_immediate_uses.
443 (replace_phi_with_cond_modify_expr): Call update_stmt.
444 * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites): Call
445 update_stmt_if_modified.
446 (rewrite_all_into_ssa): Initialize ssa operands.
447 * tree-loop-linear.c (linear_transform_loops): Don't call free_df or
448 compute_immediate_uses.
449 * tree-optimize.c (execute_todo): Call verify_ssa whenever the
450 ssa_property is available.
451 (execute_one_pass): Change parameters passed to execute_todo.
452 * tree-outof-ssa.c (rewrite_trees): Don't call modify_stmt.
453 (remove_ssa_form): Call fini_ssa_operands.
454 (insert_backedge_copies): Delete call to modify_stmt.
455 * tree-phinodes.c (make_phi_node): Initialize use nodes.
456 (release_phi_node): Delink any use nodes before releasing.
457 (resize_phi_node): Relink any use nodes.
458 (remove_phi_arg_num): Delink the use node.
459 (remove_phi_node): Release the ssa_name AFTER releasing the phi node.
460 (remove_all_phi_nodes_for): Release phi node first.
461 * tree-pretty-print.c (dump_generic_node): Print stmt address.
462 * tree-sra.c (mark_all_v_defs): Call update_stmt_if_modified.
463 (scalarize_use, scalarize_copy): Call update_stmt.
464 * tree-ssa-alias.c (compute_may_aliases): Update all modified stmts.
465 (compute_points_to_and_addr_escape): Call mark_stmt_modified.
466 * tree-ssa-cpp.c (need_imm_uses_for): Delete.
467 (ccp_initialize): Remove call to compute_immediate_uses.
468 (substitute_and_fold, execute_fold_all_builtins): Call update_stmt.
469 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Update all modified
471 (simplify_cond_and_lookup_avail_expr): Call mark_stmt_modified.
472 (simplify_switch_and_lookup_avail_expr): Call mark_stmt_modified.
473 (eliminate_redundant_computations): Call mark_stmt_modified.
474 (cprop_operand): Call mark_stmt_modified.
475 (optimize_stmt): Call update_stmt_if_modified and mark_stmt_modified.
476 * tree-ssa-dse.c (fix_phi_uses, fix_stmt_v_may_defs): Delete.
477 (dse_optimize_stmt): Use new immuse interface.
478 (tree_ssa_dse): Remove calls to compute_immediate_uses and free_df.
479 * tree-ssa-forwprop.c (need_imm_uses_for): Delete.
480 (substitute_single_use_vars): Use new immuse interface.
481 (tree_ssa_forward_propagate_single_use_vars): Remove calls to free_df
482 and compute_immediate_uses.
483 * tree-ssa-loop-im.c (single_reachable_address): Use new immuse
485 (rewrite_mem_refs): Call update_stmt.
486 (determine_lsm): Remove call to compute_imm_uses and free_df.
487 * tree-ssa-loop-ivcanon.c (create_canonical_iv): Call update_stmt.
488 (try_unroll_loop_completely): Call update_stmt.
489 * tree-ssa-loop-ivopts.c (rewrite_address_base): Call update_stmt.
490 (rewrite_use_compare): Call update_stmt.
491 (compute_phi_arg_on_exit): Insert each stmt before trying to process.
492 (rewrite_use) : Call update_stmt.
493 * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Add arg to call.
494 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Call
496 * tree-ssa-operands.c (NULL_USE_OPERAND_P): Remove declaration.
497 (allocate_use_optype, allocate_vuse_optype): Adjust allocation size.
498 (free_uses, free_vuses, free_v_may_defs, free_v_must_defs): Delink
500 (initialize_vuse_operand): New. Initialize a vuse operand.
501 (initialize_v_may_def_operand): New. Initialize a maydef operand.
502 (initialize_v_must_def_operand): New. Initialize a mustdef operand.
503 (finalize_ssa_defs): Use stmt parameter.
504 (correct_use_link): Ensure a use node is in the correct list, and has
505 the correct stmt pointer.
506 (finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_vuses,
507 finalize_ssa_v_must_defs): Also initialize use nodes.
508 (finalize_ssa_stmt_operands): Pass extra stmt operands.
509 (build_ssa_operands): Seperate parsing from final operand construction.
510 (parse_ssa_operands): New. Parse entry point for operand building.
511 (swap_tree_operands): New. Swap 2 tree operands.
512 (update_stmt_operands): Ranamed from get_stmt_operands. Always builds
514 (get_expr_operands): Call swap_tree_operands when needed.
515 (copy_virtual_operands): Use initialize routines for virtual use ops.
516 (create_ssa_artficial_load_stmt): Add extra stmt parameter.
517 (verify_abort): New. Issue imm_use error.
518 (verify_imm_links): New Verify imm_use links for a var.
519 (dump_immediate_uses_for): New. Dump imm_uses for a var to file.
520 (dump_immediate_uses): New. Dump imm_uses for all vars to file.
521 (debug_immediate_uses): New. Dump imm_uses for all vars to stderr.
522 (debug_immediate_uses_for): New. Dump imm_uses for a var to stderr.
523 * tree-ssa-operands.h (struct use_operand_ptr): Delete.
524 (NULL_USE_OPERAND_P) Define.
525 (use_optype_d, v_def_use_operand_type, vuse_optype_d): Add immediate
527 (struct vuse_operand_type): New struct.
528 (SET_USE): Call set_ssa_use_from_ptr.
530 (PHI_ARG_INDEX_FROM_USE): Define.
531 * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Set the phi
532 argument via SET_USE, not PHI_ARG_DEF_TREE.
533 * tree-ssa-pre.c (eliminate): Call update_stmt.
534 * tree-ssa-propagate.c (cfg_blocks_get): Use imm_use iterators. Don't
536 * tree-ssa-sink.c (all_immediate_uses_same_place): Use imm_use iterator.
537 (nearest_common_dominator_of_uses): Use imm_use iterator.
538 (statement_sink_location): Use imm_use iterator and interface.
539 (execute_sink_code): Don't call compute_immediate_uses or free-df.
540 * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis): Use
541 PHI_ARG_DEF, not PHI_ARG_DEF_TREE.
542 * tree-ssa.c (verify_use, verify_phi_args): Verify some imm_use info.
543 (verify_ssa): Ensure no stmt is marked modify after optimization pass
544 if new parameter is true.
545 (init_tree_ssa): Don't initialize operand cache here.
546 (delete_tree_ssa): Don't destroy operand cache here.
547 (propagate_into_addr): Pass in a use pointer, return true if anything
549 (replace_immediate_uses): Use imm_use iterator, call update_stmt.
550 (check_phi_redundancy): Use imm_use iterator.
551 (kill_redundant_phi_nodes): Don't call compute_immediate_uses or
553 * tree-ssanames.c (make_ssa_name): Initialize imm_use node.
554 (release_ssa_name): Delink node and all elements in its imm_use list.
555 * tree-tailcall.c (adjust_return_value): Call update_stmt.
556 * tree-vect-analyze.c (vect_stmt_relevant_p): Use imm_use iterator.
557 * tree-vectorizer.c (need_imm_uses_for): Delete.
558 (vectorize_loops): Dont call compute_immediate_uses or free_df.
559 * tree.h (struct ssa_imm_use_d): Define.
560 (SSA_NAME_IMM_USE_NODE): Define.
561 (struct tree_ssa_name): Add imm_use node.
563 (PHI_ARG_IMM_USE_NODE): Define.
564 (struct phi_arg_d): Add imm_use node.
565 (struct tree_phi_node): Remove struct dataflow_d element.
566 (TDF_STMTADDR): Define.
568 2005-04-05 Dale Johannesen <dalej@apple.com>
570 * doc/invoke.texi (Optimization Options): Remove
571 duplicate -fcse-follow-jumps. Add -fweb.
572 (-ftree-lim): Fix spelling (-ftree-loop-im, invariants).
573 (-fivcanon): Fix spelling (-ftree-loop-ivcanon).
575 2005-04-05 Per Bothner <per@bothner.com>
577 * tree-ssa.c (execute_early_warn_uninitialized): Pass context node
578 to talk_tree as 'data' parameter, rather than EXPR_LOCUS.
579 (warn_uninit): Get EXPR_LOCUS from context now instead.
580 This fixes a USE_MAPPED_LOCATION testsuite failure.
582 * tree-ssa.c (warn_uninitialized_var): Remove useless local.
584 2005-04-05 Per Bothner <per@bothner.com>
586 * c-decl.c (finish_function): If USE_MAPPED_LOCATION set the location
587 of the artification 'return 0' in main() to BUILTINS_LOCATION.
588 * tree-cfg.c (remove_bb): Check that location isn't BUILTINS_LOCATION
591 2004-04-05 Devang Patel <dpatel@apple.com>
593 * config/rs600/altivec.md (altivec_vsr<VI_char>): Rename to ..
594 (lhsr<mode>3): ... new name.
595 (altivec_vsra<VI_char>): Rename to ..
596 (ashr<mode>3): ... new name.
597 * config/rs6000/rs6000.c (builtin_description): Rename shift
600 2004-04-05 Paolo Bonzini <bonzini@gnu.org>
602 * combine.c (RTL_HOOKS_GEN_LOWPART_NO_EMIT): Use
603 gen_lowpart_for_combine.
604 * cse.c (gen_lowpart_if_possible): Move...
605 * rtlhooks.c (gen_lowpart_if_possible): ... here. Also try
607 (gen_lowpart_no_emit_general): Use it.
609 2005-04-05 Eric Botcazou <ebotcazou@libertysurf.fr>
611 * config/sparc/sparc.c (TARGET_ASM_FILE_END): Undefine before
614 2005-04-05 Paolo Bonzini <bonzini@gnu.org>
616 * system.h: Fix typo.
618 2005-04-05 Bernd Schmidt <bernd.schmidt@analog.com>
620 * config/bfin/bfin-modes.def: New file.
621 * config/bfin/bfin-protos.h: New file.
622 * config/bfin/bfin.c: New file.
623 * config/bfin/bfin.h: New file.
624 * config/bfin/bfin.md: New file.
625 * config/bfin/bfin.opt: New file.
626 * config/bfin/crti.s: New file.
627 * config/bfin/crtn.s: New file.
628 * config/bfin/elf.h: New file.
629 * config/bfin/lib1funcs.asm: New file.
630 * config/bfin/predicates.md: New file.
631 * config/bfin/t-bfin: New file.
632 * config/bfin/t-bfin-elf: New file.
633 * doc/extend.texi (exception_handler, kspisusp, nesting, nmi_handler):
634 Document new attributes.
635 (interrupt, interrupt_handler, saveall): Update documentation for
637 * doc/install.texi (Specific): Add entry for the Blackfin.
638 * doc/invoke.texi (Blackfin Options): New section.
639 * doc/md.texi (Blackfin family): New section to document constraints.
640 * config.gcc: Add bfin*-* and bfin*-elf configurations.
642 2005-04-05 Olivier Hainque <hainque@adacore.com>
644 * config/mips/iris6.h (DWARF_FRAME_RETURN_COLUMN): Redefine to
645 match what the system unwinder expects.
646 * config/mips/mips.c (mips_frame_set): If we're saving the return
647 address register and the dwarf return address column number differs
648 from the hard register number, adjust the note reg to refer to the
651 2004-04-05 Richard Sandiford <rsandifo@redhat.com>
653 * config/mn10300/mn10300-protos.h (mn10300_override_options): Declare.
654 * config/mn10300/mn10300.h (target_flags, TARGET_MULT_BUG)
655 (TARGET_SWITCHES, TARGET_DEFAULT): Delete.
656 (processor_type): New enum.
657 (mn10300_processor): New variable.
658 (TARGET_AM33, TARGET_AM33_2): Redefine in terms of mn10300_processor.
659 (PROCESSOR_DEFAULT, OVERRIDE_OPTIONS): New macros.
660 * config/mn10300/linux.h (TARGET_SWITCHES, TARGET_DEFAULT): Delete.
661 (PROCESSOR_DEFAULT): New macro.
662 * config/mn10300/mn10300.c (mn10300_processor): New variable.
663 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
664 (mn10300_handle_option, mn10300_override_options): New functions.
665 * config/mn10300/mn10300.opt: New file.
667 2005-04-05 Eric Botcazou <ebotcazou@libertysurf.fr>
668 Sebastian Pop <sebastian.pop@cri.ensmp.fr>
670 PR tree-optimization/19903
671 * tree-chrec.c (chrec_convert): Return chrec_dont_know for constants
672 that don't fit in their type after conversion.
674 2005-04-05 Uros Bizjak <uros@kss-loka.si>
677 * config/i386/i386.md (frndintxf2_floor, frndintxf2_ceil)
678 (frndintxf2_trunc, frndintxf2_mask_pm): Add FLAGS_REG clobber.
679 Allocate local stack slots here. Set ix86_optimize_mode_switching.
680 flag here. Implement using define_insn_and_split.
681 (frndintxf2_floor_i387, frndintxf2_ceil_i387, frndintxf2_trunc_i387)
682 (frndintxf2_mask_pm_i387): New insn patterns.
683 (floorsf2, floordf2, floorxf2): Remove local stack slot allocations.
684 Do not set ix86_optimize_mode_switching flag.
685 (ceilsf2, ceildf2, ceilxf2): Same.
686 (btruncsf2, btruncdf2, btruncxf2): Same.
687 (nearbyintsf2, nearbyintdf2, nearbyintxf2): Same.
689 2005-04-05 Ian Lance Taylor <ian@airs.com>
692 * config/i386/cygming.h (ASM_OUTPUT_EXTERNAL): Pass DECL to
693 i386_pe_record_external_function.
694 (i386_pe_record_external_function): Update declaration.
695 * config/i386/winnt.c (struct extern_list): Add decl field.
696 (i386_pe_record_external_function): Add decl parameter.
697 (i386_pe_file_end): Check TREE_ASM_WRITTEN on decl, not
699 * config/i386/i386-protos.h (i386_pe_record_external_function):
702 2005-04-05 Kazu Hirata <kazu@cs.umass.edu>
704 * config/m68k/m68k-protos.h: Add a prototype for
705 valid_dbcc_comparison_p_2.
706 * config/m68k/m68k.c (not_sp_operand, symbolic_operand,
707 extend_operator, const_uint32_operand, const_sint32_operand,
708 general_src_operand, nonimmediate_src_operand,
709 memory_src_operand, post_inc_operand, pre_dec_operand,
710 pcrel_address): Move to predicates to predicates.md.
711 * config/m68k/m68k.h (PREDICATE_CODES): Remove.
712 * config/m68k/m68k.md: Include predicates.md.
713 * config/m68k/predicates.md: New.
715 2005-04-04 Roger Sayle <roger@eyesopen.com>
717 * config/i386/i386.md (*truncdfsf2_i387_1): New pattern.
719 * fold-const.c (maybe_lvalue_p): Delete orphaned comment.
721 2005-04-04 Ian Lance Taylor <ian@airs.com>
723 * c-typeck.c (struct c_switch): Rename switch_stmt field to
725 (c_start_case): Build SWITCH_EXPR, not SWITCH_STMT.
726 (do_case): Use SWITCH_COND rather than SWITCH_STMT_COND.
727 (c_finish_case): Use SWITCH_BODY rather than SWITCH_STMT_BODY.
728 Call c_do_switch_expr_warnings rather than c_do_switch_warnings.
729 * c-common.c (c_do_switch_warnings_1): New static function broken
730 out of c_do_switch_warnings.
731 (c_do_switch_warnings): Call c_do_switch_warnings_1.
732 (c_do_switch_expr_warnings): New function.
733 * c-common.h (c_do_switch_expr_warnings): Declare.
735 2005-04-04 David Edelsohn <edelsohn@gnu.org>
736 Daniel Jacobowitz <dan@codesourcery.com>
738 * tree-eh.c (tree_could_trap_p): Allow non-constant floating point
740 * rtlanal.c (may_trap_p): Same.
742 2005-04-04 Dale Johannesen <dalej@apple.com>
744 * ChangeLog: remove reference to ChangeLog.12.
746 2005-04-05 Hans-Peter Nilsson <hp@axis.com>
748 CRIS epilogue as RTL.
749 * config/cris/cris.md: Change all 0 in unspec 0 to
751 (CRIS_UNSPEC_PLT, CRIS_UNSPEC_FRAME_DEALLOC): New constants.
752 ("*cris_load_multiple", "cris_frame_deallocated_barrier"): New
754 ("return"): Change to define_expand. Call cris_expand_return for
756 ("*return_expanded"): New pattern.
757 ("epilogue"): New define_expand.
758 * config/cris/cris.h (PREDICATE_CODES): Add
759 cris_load_multiple_op.
760 * config/cris/cris.c (ASSERT_PLT_UNSPEC): Correct test for unspec
762 (enum cris_retinsn_type): New.
763 (struct machine_function): New member return_type.
764 (TARGET_ASM_FUNCTION_EPILOGUE): Don't override.
765 (cris_target_asm_function_epilogue): Remove, moving RTLified
767 (cris_expand_epilogue): New function.
768 (cris_reg_saved_in_regsave_area, cris_movem_load_rest_p,
769 (cris_gen_movem_load, cris_load_multiple_op)
770 (cris_return_address_on_stack_for_return, cris_expand_return): New
772 (cris_target_asm_function_prologue)
773 (cris_initial_frame_pointer_offset): Call
774 cris_reg_saved_in_regsave_area instead of complicated expression.
775 Call cris_return_address_on_stack instead of an expression.
776 (cris_print_operand) <case 'o', case 'O'>: New cases.
777 (cris_return_address_on_stack): Change return-type to bool.
778 (cris_simple_epilogue): Ditto. Return false if registers are
780 * config/cris/cris-protos.h (cris_simple_epilogue)
781 (cris_return_address_on_stack): Adjust prototype return type.
782 (cris_gen_movem_load, cris_expand_epilogue, cris_expand_return)
783 (cris_return_address_on_stack_for_return): New prototypes.
785 2005-04-04 Kazu Hirata <kazu@cs.umass.edu>
787 * config/frv/frv.h (PREDICATE_CODES): Add CONST to
788 gpr_or_int12_operand.
790 * config/frv/frv-protos.h: Add a prototype to
791 frv_legitimate_memory_operand and frv_const_unspec_p.
792 (frv_unspec): Move from frv.c.
793 * config/frv/frv.c (frv_unspec): Move to frv-protos.h.
794 (frv_const_unspec_p, frv_legitimate_memory_operand_): Export.
795 (ldd_address_operand, fdpic_fptr_operand, frv_load_operand,
796 gpr_or_fpr_operand, gpr_or_int12_operand,
797 gpr_fpr_or_int12_operand, fpr_or_int6_operand,
798 gpr_or_int10_operand, gpr_or_int_operand, int12_operand,
799 int6_operand, int5_operand, uint5_operand, uint4_operand,
800 uint1_operand, int_2word_operand, uint16_operand,
801 upper_int16_operand, integer_register_operand,
802 gpr_no_subreg_operand, fpr_operand, even_reg_operand,
803 odd_reg_operand, even_gpr_operand, odd_gpr_operand,
804 quad_fpr_operand, even_fpr_operand, odd_fpr_operand,
805 dbl_memory_one_insn_operand, dbl_memory_two_insn_operand,
806 move_destination_operand, movcc_fp_destination_operand,
807 frv_function_symbol_referenced_p, move_source_operand,
808 condexec_dest_operand, condexec_source_operand,
809 reg_or_0_operand, lr_operand, fdpic_operand, got12_operand,
810 const_unspec_operand, gpr_or_memory_operand,
811 gpr_or_memory_operand_with_scratch, fpr_or_memory_operand,
812 icc_operand, fcc_operand, cc_operand, icr_operand,
813 fcr_operand, cr_operand, call_operand, sibcall_operand,
814 symbolic_operand, relational_operator,
815 integer_relational_operator, float_relational_operator,
816 ccr_eqne_operator, minmax_operator,
817 condexec_si_binary_operator, condexec_si_media_operator,
818 condexec_si_divide_operator, condexec_si_unary_operator,
819 condexec_sf_conv_operator, condexec_sf_add_operator,
820 condexec_memory_operand, intop_compare_operator, acc_operand,
821 even_acc_operand, quad_acc_operand, accg_operand: Move to
823 * config/frv/frv.h (PREDICATE_CODES): Remove.
824 * config/frv/frv.md: Include predicates.md.
825 * config/frv/predicates.md: New.
827 2004-04-04 Richard Sandiford <rsandifo@redhat.com>
830 * Makefile.in (tree-ssa-loop-ivopts.o): Depend on langhooks.h.
831 * tree-ssa-loop-ivopts.c: Include langhooks.h.
832 (add_standard_iv_candidates_for_size): New function, extracting code
833 from add_standard_iv_candidates and parameterizing it by type size.
834 (add_standard_iv_candidates): Use add_standard_iv_candidates_for_size.
836 2004-04-04 Richard Sandiford <rsandifo@redhat.com>
838 * system.h (GCOV_SIZE_TYPE): Unposion.
839 * gcov-io.h (GCOV_TYPE_NODE): Delete, replacing with...
840 (GCOV_TYPE_SIZE): ...this new macro.
841 * coverage.h (get_gcov_type, GCOV_TYPE_NODE): Declare.
842 * coverage.c (get_gcov_type, get_gcov_unsigned_t): New functions.
843 (rtl_coverage_counter_ref): Use GCOV_TYPE_SIZE.
844 (build_fn_info_type, build_fn_info_value, build_ctr_info_type)
845 (build_ctr_info_value, build_gcov_info): Use get_gcov_unsigned_t
846 instead of unsigned_intSI_type_node.
847 * rtl-profile.c (rtl_gen_interval_profiler, rtl_gen_pow2_profiler)
848 (rtl_gen_one_value_profiler_no_edge_manipulation)
849 (rtl_gen_const_delta_profiler): Use GCOV_TYPE_SIZE.
850 * value-prof.c: Include coverage.h.
852 2005-04-02 Daniel Berlin <dberlin@dberlin.org>
853 Diego Novillo <dnovillo@redhat.com>
855 Fix PR tree-optimization/20703
856 Fix PR tree-optimization/20725
858 * tree-ssa-pre.c (phi_translate): Handle tcc_comparison.
859 (create_expression_by_pieces): Ditto.
860 (valid_in_set): Ditto. Also handle tcc_declaration.
861 (find_or_generate_expression): Handle comparison class.
862 (insert_into_preds_of_block): Ditto.
864 (create_value_expr_from): Handle comparison class, recursively
865 handle reference nodes.
866 (compute_avail): Handle comparison classes, rewrite a little cleaner.
867 (execute_pre): Fix spacing.
868 (do_fre): Renamed to execute_fre.
870 2005-04-04 Eric Botcazou <ebotcazou@libertysurf.fr>
872 * doc/invoke.texi (SPARC options): Document that
873 -mlittle-endian is not supported on Linux either.
875 2005-04-04 Eric Botcazou <ebotcazou@libertysurf.fr>
879 * config.gcc (Obsolete configurations): Remove
880 sparclite-*-coff*, sparclite-*-elf* and sparc86x-*-elf*.
881 (sparclite-*-coff*): Delete.
882 (sparclite-*-elf*): Likewise.
883 (sparc86x-*-elf*): Likewise.
884 (target_cpu_default) <sparc*-*-*>: Remove sparc86x.
885 * config/sparc/lite.h: Delete.
886 * config/sparc/litecoff.h: Likewise.
887 * config/sparc/liteelf.h: Likewise.
888 * config/sparc/sp86x-elf.h: Likewise.
889 * config/sparc/t-sparclite: Likewise.
890 * config/sparc/t-sp86x: Likewise.
892 2005-04-04 Adrian Straetling <straetling@de.ibm.com>
894 * config/s390/s390-protos.h: (s390_comparison,
895 s390_alc_comparison, s390_slb_comparison, const0_operand,
896 consttable_operand, larl_operand, s_operand,
897 shift_count_operand, bras_sym_operand, load_multiple_operation,
898 store_multiple_operation, s390_plus_operand): Remove prototypes.
899 (s390_legitimate_address_without_index_p): New prototype.
900 * config/s390/s390.c: (SYMBOL_FLAG_ALIGN1, DISP_IN_RANGE): Move
902 (s390_comparison, s390_alc_comparison, s390_slb_comparison,
903 const0_operand, consttable_operand, larl_operand, s_operand,
904 shift_count_operand, bras_sym_operand, load_multiple_operation,
905 store_multiple_operation, s390_plus_operand): Move to
907 (check_mode): Remove.
908 (s390_branch_condition_mask): Remove 'static'. Move prototype to
910 (s390_legitimate_address_without_index_p): New.
911 * config/s390/s390.h (PREDICATE_CODES): Remove.
912 * config/s390/s390.md: Include predicates.md.
913 * config/s390/predicates.md: New.
915 2005-04-04 Eric Botcazou <ebotcazou@libertysurf.fr>
918 * config/sparc/sparc.h (NEED_INDICATE_EXEC_STACK): Define to 0.
919 * config/sparc/linux.h (TARGET_ASM_FILE_END): Delete.
920 (NEED_INDICATE_EXEC_STACK): Define to 1.
921 * config/sparc/linux64.h (TARGET_ASM_FILE_END): Delete.
922 (NEED_INDICATE_EXEC_STACK): Define to 1.
923 * config/sparc/sparc.c (TARGET_ASM_FILE_END): Set to sparc_file_end.
924 (add_pc_to_pic_symbol): Rename into pic_helper_symbol.
925 (add_pc_to_pic_symbol_name): Rename into pic_helper_symbol_name.
926 (pic_helper_emitted_p): New global.
927 (emit_pic_helper): New function extracted from...
928 (load_pic_register): ...here. Add 'delay_pic_helper' parameter.
929 Do not call emit_pic_helper if delay_pic_helper is true.
930 (sparc_expand_prologue): Pass 'false' to load_pic_register.
931 (sparc_output_mi_thunk): Pass 'true' to load_pic_register.
932 (sparc_file_end): New function.
934 2005-04-04 Kazu Hirata <kazu@cs.umass.edu>
936 * config/mcore/mcore-protos.h: Remove the prototypes for
937 mcore_arith_reg_operand, mcore_general_movsrc_operand,
938 mcore_general_movdst_operand, mcore_reload_operand,
939 mcore_arith_J_operand, mcore_arith_K_operand,
940 mcore_arith_K_operand_not_0, mcore_arith_M_operand,
941 mcore_arith_K_S_operand, mcore_arith_imm_operand,
942 mcore_arith_any_imm_operand, mcore_arith_O_operand,
943 mcore_literal_K_operand, mcore_addsub_operand,
944 mcore_compare_operand, mcore_load_multiple_operation,
945 mcore_store_multiple_operation, mcore_call_address_operand.
946 Add a prototype for const_ok_for_mcore.
947 * config/mcore/mcore.c (mcore_call_address_operand,
948 mcore_general_movsrc_operand, mcore_general_movdst_operand,
949 mcore_arith_reg_operand, mcore_reload_operand,
950 mcore_arith_J_operand, mcore_arith_K_operand,
951 mcore_arith_K_operand_not_0, mcore_arith_K_S_operand,
952 mcore_arith_M_operand, mcore_arith_imm_operand,
953 mcore_arith_any_imm_operand, mcore_arith_O_operand,
954 mcore_literal_K_operand, mcore_addsub_operand,
955 mcore_compare_operand, mcore_load_multiple_operation,
956 mcore_store_multiple_operation): Move to predicates.md.
957 (const_ok_for_mcore): Export.
958 * config/mcore/mcore.h (PREDICATE_CODES): Remove.
959 * config/mcore/mcore.md: Include predicates.md.
960 * config/mcore/predicates.md: New.
962 * config/mcore/predicates.md: Fix a comment typo.
964 2005-04-04 Andreas Krebbel <krebbel1@de.ibm.com>
965 Adrian Straetling <straetling@de.ibm.com>
967 * config/s390/2064.md ("z_mul", "z_inf"): New insn reservations.
968 * config/s390/2084.md ("x_mul_hi", "x_mul_sidi", "x_div"): Likewise.
969 * config/s390/s390.md ("imulhi", "imulsi", "imuldi"): Added to "type"
971 ("imul"): Removed from "type" attribute.
972 ("*muldi3_sign", "muldi3"): Changed type to imuldi.
973 ("mulsi3/1", "mulsi3/3", "mulsi/4", "mulsidi3", "umulsidi3"):
974 Changed type to imulsi.
975 ("*mulsi3_sign", "mulsi3/2"): Changed type to imulhi.
977 2005-04-04 Richard Sandiford <rsandifo@redhat.com>
979 * config/mcore/mcore.h (target_flags, HARDLIT_BIT, ALIGN8_BIT, DIV_BIT)
980 (RELAX_IMM_BIT, W_FIELD_BIT, OVERALIGN_FUNC_BIT, CGDATA_BIT)
981 (SLOW_BYTES_BIT, LITTLE_END_BIT, M340_BIT, TARGET_HARDLIT)
982 (TARGET_DIV, TARGET_RELAX_IMM, TARGET_W_FIELD, TARGET_OVERALIGN_FUNC)
983 (TARGET_CG_DATA, TARGET_SLOW_BYTES, TARGET_LITTLE_END, TARGET_M340)
984 (TARGET_SWITCHES, mcore_stack_increment_string)
985 (TARGET_OPTIONS): Delete.
986 (TARGET_DEFAULT, OPTIMIZATION_OPTIONS): Use MASK_* constants rather
987 than *_BIT constants.
988 (TARGET_8ALIGN): #undef old definition before redefining to 1.
989 * config/mcore/mcore.c (mcore_stack_increment_string): Delete.
990 (TARGET_DEFAULT_TARGET_FLAGS): Override default to TARGET_DEFAULT.
991 (mcore_override_options): Delete mcore_stack_increment code.
992 Change use of M340_BIT to MASK_M340.
993 * config/mcore/mcore.opt: New file.
995 2005-04-04 Ian Lance Taylor <ian@airs.com>
997 * config/arm/arm.c (replace_symbols_in_block): Remove static
1000 2005-04-04 Kazu Hirata <kazu@cs.umass.edu>
1002 * config/fr30/fr30-protos.h: Remove the prototypes for
1003 stack_add_operand, add_immediate_operand,
1004 high_register_operand, low_register_operand, call_operand,
1005 di_operand, and nonimmediate_di_operand.
1006 * config/fr30/fr30.c (stack_add_operand,
1007 add_immediate_operand, high_register_operand,
1008 low_register_operand, call_operand, di_operand,
1009 nonimmediate_di_operand): Move to predicates.md.
1010 * config/fr30/fr30.h (PREDICATE_CODES): Remove.
1011 * config/fr30/fr30.md: Include predicates.md.
1012 * config/fr30/predicates.md: New.
1014 * config/mcore/mcore.h (PREDICATE_CODES): Add SYMBOL_REF and
1015 LABEL_REF to mcore_general_movsrc_operand. Add SYMBOL_REF to
1016 mcore_call_address_operand.
1018 * config/sh/sh.h (PREDICATE_CODES): Add CONST to
1019 general_movsrc_operand.
1021 2005-04-04 Alan Modra <amodra@bigpond.net.au>
1023 * passes.c (rest_of_handle_final): NULL unlikely_text_section_name
1026 2005-04-04 Richard Earnshaw <richard.earnshaw@arm.com>
1029 * arm.c (arm_select_cc_mode): Return CC_Zmode when comparing against
1032 2005-04-04 Richard Henderson <rth@redhat.com>
1033 Jakub Jelinek <jakub@redhat.com>
1035 PR rtl-optimization/16104
1036 * fold-const.c (fold_unary): Fix folding of vector conversions.
1038 2005-04-04 Richard Sandiford <rsandifo@redhat.com>
1040 * config.gcc (xstormy16-*-elf): Set extra_options.
1041 * config/stormy16/stormy16.h (target_flags, TARGET_SWITCHES): Delete.
1042 * config/stormy16/stormy16.opt: New file.
1044 2005-04-04 Richard Sandiford <rsandifo@redhat.com>
1046 * config/pdp11/pdp11.h (target_flags, TARGET_SWITCHES, TARGET_DEFAULT)
1047 (TARGET_FPU, TARGET_SOFT_FLOAT, TARGET_AC0, TARGET_NO_AC0, TARGET_45)
1048 (TARGET_BCOPY_BUILTIN, TARGET_INT16, TARGET_INT32, TARGET_FLOAT32)
1049 (TARGET_FLOAT64, TARGET_ABSHI_BUILTIN, TARGET_BRANCH_EXPENSIVE)
1050 (TARGET_BRANCH_CHEAP, TARGET_SPLIT, TARGET_NOSPLIT)
1051 (TARGET_UNIX_ASM): Delete.
1052 (TARGET_40_PLUS): Redefine in terms of TARGET_40 and TARGET_45.
1053 * config/pdp11/2bsd.h (TARGET_UNIX_ASM_DEFAULT): Use MASK_UNIX_ASM.
1054 * config/pdp11/pdp11.c (pdp11_handle_option): New function.
1055 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
1056 * config/pdp11/pdp11.opt: New file.
1058 2005-04-03 Roger Sayle <roger@eyesopen.com>
1059 Alexandre Oliva <aoliva@redhat.com>
1062 * fold-const.c (non_lvalue): Split tests into...
1063 (maybe_lvalue_p): New function.
1064 (fold_cond_expr_with_comparison): Preserve lvalue-ness for the
1065 C++ front-end prior to lowering into gimple form.
1067 2005-04-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1069 * builtins.def (BUILT_IN_STPNCPY, BUILT_IN_STRCASECMP,
1070 BUILT_IN_STRNCASECMP): New.
1071 * doc/extend.texi: Document stpncpy, strcasecmp, strncasecmp
1074 2005-04-03 Richard Earnshaw <richard.earnshaw@arm.com>
1077 * arm.md (addsi3_compare0_for_combiner): Delete.
1078 (addsi3_compare0_scratch_for_combiner): Delete.
1079 (cmpsi_neg_shiftsi): Delete.
1080 (compare_negsi_si): New pattern.
1081 (cmpsi_negshiftsi_si): New pattern.
1082 (negated_cbranchsi4): Restrict to equality_operator.
1084 * arm.md (movhi_insn_arch4): delete trailing white space from assembler
1087 2005-04-03 Kazu Hirata <kazu@cs.umass.edu>
1089 * cfghooks.c, cfgrtl.c, modulo-sched.c, config/i386/winnt.c:
1092 * doc/install.texi: Fix a typo.
1094 2005-04-03 Steven Bosscher <stevenb@suse.de>
1097 * bb-reorder.c (duplicate_computed_gotos): Do not unfactor
1098 a computed goto if the edge to the computed goto block has
1099 incoming abnormal edges. Clarify how the function works.
1101 2005-04-03 Nathan Sidwell <nathan@codesourcery.com>
1103 * params.c (set_param_value): Use gcc_assert & gcc_unreachable.
1104 * passes.c (open_dump_file, rest_of_handle_final): Likewise.
1105 * postreload-gcse.c (expr_equiv_p, oprs_unchanged_p,
1106 hash_scan_set, reg_set_between_after_reload_p,
1107 reg_used_between_after_reload_p, get_avail_load_store_reg,
1108 eliminate_partially_redundant_load): Likewise.
1109 * postreload.c (reload_cse_simplify_set,
1110 reload_combine_note_use): Likewise.
1111 * predict.c (predict_insn, expected_value_to_br_prob,
1112 propagate_freq, expensive_function_p): Likewise.
1113 * print-rtl.c (print_rtx): Likewise.
1114 * profile.c (instrument_edges, instrument_values,
1115 compute_branch_probabilities, branch_prob, union_groups,
1116 tree_register_profile_hooks, rtl_register_profile_hooks): Likewise.
1117 * protoize.c (in_system_include_dir, file_could_be_converted,
1118 file_normally_convertible, gen_aux_info_file, seek_to_line,
1119 do_cleaning): Likewise.
1120 * tree-ssa-alias.c (collect_points_to_info_r): Likewise.
1121 * tree-ssa-ccp.c (execute_fold_all_builtins): Likewise.
1122 * tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise.
1124 2005-04-03 Mostafa Hagog <mustafa@il.ibm.com>
1126 * cfg.c (clear_bb_flags): Don't clear BB_DISABLE_SCHEDULE.
1127 * modulo-sched.c (undo_replace_buff_elem): New structure.
1128 (kernel_number_of_cycles, ps_unschedule_node,
1129 undo_generate_reg_moves,free_undo_replace_buff,
1130 undo_permute_partial_schedule, loop_single_full_bb_p,
1131 SIMPLE_SMS_LOOP_P, loop_canon_p, canon_loop,
1132 build_loops_structure, get_sched_window): New.
1133 (generate_reg_moves): Return undo_replace_buff_elem and other
1135 (generate_prolog_epilog): Remove old loop versioning.
1136 (sms_schedule): Use loop information and loop_version.
1137 (sms_schedule_by_order): Split part of it to get_sched_window.
1138 * passes.c (rest_of_handle_sms): call cfg_layout_initialize
1139 cfg_layout_finalize and free_dominance_info before/after SMS.
1141 2005-04-03 Mostafa Hagog <mustafa@il.ibm.com>
1143 * cfghooks.c (lv_flush_pending_stmts,
1144 cfg_hook_duplicate_loop_to_header_edge, extract_cond_bb_edges,
1145 lv_adjust_loop_header_phi, lv_add_condition_to_bb): New.
1146 * cfghooks.h (cfg_hook_duplicate_loop_to_header_edge,
1147 lv_add_condition_to_bb,
1148 lv_adjust_loop_header_phi, extract_cond_bb_edges,
1149 flush_pending_stmts): New in cfg_hooks structure.
1150 (cfg_hook_duplicate_loop_to_header_edge, lv_flush_pending_stmts,
1151 extract_cond_bb_edges, lv_adjust_loop_header_phi,
1152 lv_add_condition_to_bb): New declarations.
1153 * cfgloop.h (duplicate_loop_to_header_edge): Change return type to
1155 (loop_version): Declare.
1156 * cfgloopmanip.c (cfghooks.h): Include.
1157 (duplicate_loop_to_header_edge): Change return type to bool.
1158 (loop_version, lv_adjust_loop_entry_edge): Move here.
1159 * cfgrtl.c (cfgloop.h): Include.
1160 (rtl_verify_flow_info_1): Fix.
1161 (rtl_lv_add_condition_to_bb, rtl_extract_cond_bb_edges): New.
1162 (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Add hooks to
1164 * tree-cfg.c (tree_lv_adjust_loop_header_phi,
1165 tree_lv_add_condition_to_bb): New.
1166 (tree_cfg_hooks): Add new hooks to initialization.
1167 * tree-ssa-loop-manip.c (lv_adjust_loop_header_phi,
1168 lv_adjust_loop_entry_edge, tree_ssa_loop_version): Remove.
1170 2005-04-03 Kazu Hirata <kazu@cs.umass.edu>
1172 * config/stormy16/stormy16.h (PREDICATE_CODES): Add SUBREG to
1173 xstormy16_below100_or_register,
1174 xstormy16_splittable_below100_or_register, and
1175 nonimmediate_nonstack_operand.
1177 * config/stormy16/stormy16-protos.h: Remove the prototypes for
1178 xstormy16_ineqsi_operator, equality_operator,
1179 inequality_operator, shift_operator,
1180 xstormy16_below100_operand, xstormy16_below100_or_register,
1181 xstormy16_splittable_below100_or_register,
1182 xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand.
1183 * config/stormy16/stormy16.c (xstormy16_ineqsi_operator,
1184 equality_operator, inequality_operator,
1185 xstormy16_below100_operand, xstormy16_below100_or_register,
1186 xstormy16_splittable_below100_or_register,
1187 xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand,
1188 nonimmediate_nonstack_operand, shift_operator): Move to
1190 * config/stormy16/stormy16.h (PREDICATE_CODES): Remove.
1191 * config/stormy16/stormy16.md: Include predicates.md.
1192 * config/stormy16/predicates.md: New.
1194 2005-04-02 Kazu Hirata <kazu@cs.umass.edu>
1196 * config/iq2000/iq2000.c (uns_arith_operand, arith_operand,
1197 small_int, large_int, reg_or_0_operand, simple_memory_operand,
1198 equality_op, cmp_op, pc_or_label_operand, call_insn_operand,
1199 move_operand, power_of_2_operand): Move to predicates.md.
1200 * config/iq2000/iq2000.h (SPECIAL_MODE_PREDICATES,
1201 PREDICATE_CODE): Remove.
1202 * config/iq2000/iq2000.md: Include predicates.md.
1203 * config/iq2000/predicates.md: New.
1205 2005-04-02 Richard Sandiford <rsandifo@redhat.com>
1207 * config/m68hc11/m68hc11.h (target_flags, MASK_SHORT)
1208 (MASK_AUTO_INC_DEC, MASK_M6811, MASK_M6812, MASK_M68S12)
1209 (MASK_NO_DIRECT_MODE, MASK_MIN_MAX, MASK_LONG_CALLS)
1210 (TARGET_SHORT, TARGET_M6811, TARGET_M6812, TARGET_M68S12)
1211 (TARGET_AUTO_INC_DEC, TARGET_MIN_MAX, TARGET_NO_DIRECT_MODE)
1212 (TARGET_LONG_CALLS, TARGET_SWITCHES, TARGET_OPTIONS)
1213 (SUBTARGET_SWITCHES, SUBTARGET_OPTIONS, m68hc11_regparm_string)
1214 (m68hc11_reg_alloc_order, m68hc11_soft_reg_count)
1215 (TARGET_M68HC11): Delete.
1216 (TARGET_DEFAULT): Change the default setting from MASK_M6811 to 0.
1217 * config/m68hc11/m68hc12.h (TARGET_M68HC12): Delete.
1218 * config/m68hc11/m68hc11.c (m68hc11_regparm_string)
1219 (m68hc11_reg_alloc_order, m68hc11_soft_reg_count)
1220 (nb_soft_regs): Delete.
1221 (TARGET_DEFAULT_TARGET_FLAGS): Override default with TARGET_DEFAULT.
1222 (m68hc11_override_options): Remove the code that caters for MASK_M6811
1223 and MASK_M6812 being set simultaneously. Change the code that sets
1224 the default m68hc11_soft_reg_count to use integers instead of strings.
1225 (m68hc11_conditional_register_usage, hard_regno_mode_ok): Use
1226 m68hc11_soft_reg_count (which now has an int type) as the number
1228 * config/m68hc11/m68hc11.opt: New file.
1230 2005-04-02 Kazu Hirata <kazu@cs.umass.edu>
1232 * config/fr30/fr30.h (PREDICATE_CODES): Remove
1233 fp_displacement_operand, sp_displacement_operand.
1235 * config/m68hc11/m68hc11-protos.h: Add a prototype for
1237 Remove the prototypes for tst_operand, cmp_operand,
1238 stack_register_operand, d_register_operand,
1239 hard_addr_reg_operand, splitable_operand,
1240 m68hc11_logical_operator, m68hc11_arith_operator,
1241 m68hc11_non_shift_operator, m68hc11_shift_operator,
1242 m68hc11_unary_operator, m68hc11_eq_compare_operator,
1243 non_push_operand, hard_reg_operand, and
1244 reg_or_some_mem_operand.
1245 * config/m68hc11/m68hc11.c (m68hcc_auto_inc_p): Make it
1247 (tst_operand, cmp_operand, non_push_operand,
1248 splitable_operand, reg_or_some_mem_operand,
1249 stack_register_operand, d_register_operand,
1250 hard_addr_reg_operand, hard_reg_operand,
1251 m68hc11_eq_compare_operator, m68hc11_logical_operator,
1252 m68hc11_arith_operator, m68hc11_non_shift_operator,
1253 m68hc11_shift_operator, m68hc11_unary_operator): Move to
1255 * config/m68hc11/m68hc11.h (PREDICATE_CODES): Remove.
1256 * config/m68hc11/m68hc11.md: Include predicates.md.
1257 * config/m68hc11/predicates.md: New.
1259 2005-04-02 Alexandre Oliva <aoliva@redhat.com>
1262 * dwarf2out.c (add_abstract_origin_attribute): Revert accidental
1263 change checked in along with 2005-03-03's patch for debug/20253.
1264 * tree-inline.c (remap_type): Remap TYPE_STUB_DECL.
1265 (remap_decl): Insert type decl in map earlier.
1267 2005-04-02 Alexandre Oliva <aoliva@redhat.com>
1269 PR tree-optimization/20640
1270 * tree-ssa-dce.c (remove_dead_stmt): Don't redirect edge to
1271 post-dominator if it has phi nodes.
1272 (eliminate_unnecessary_stmts): Remove dead phis in all blocks
1273 before dead statements.
1275 2005-04-02 Alexandre Oliva <aoliva@redhat.com>
1278 * final.c (alter_subreg): Don't call subreg_regno for a non-REG.
1280 2005-04-02 Alexandre Oliva <aoliva@redhat.com>
1282 PR rtl-optimization/20290
1283 * loop.c (for_each_insn_in_loop): Don't assume the loop body runs
1284 in every iteration if the entry point is the exit test.
1286 2005-04-02 Hans-Peter Nilsson <hp@axis.com>
1288 * config/cris/cris.md (attribute "length"): Define.
1290 2005-04-02 Geoffrey Keating <geoffk@apple.com>
1292 * config/rs6000/predicates.md (indexed_or_indirect_operand): New.
1293 (word_offset_memref_operand): New.
1294 * config/rs6000/rs6000-protos.h (word_offset_memref_operand): Delete.
1295 (indexed_or_indirect_operand): Delete.
1296 * config/rs6000/rs6000.c (word_offset_memref_operand): Delete.
1297 (indexed_or_indirect_operand): Delete.
1299 * config/rs6000/t-darwin8: Comment out ppc64 multilib.
1302 * config/rs6000/rs6000.md (fix_truncdfsi2): Make destination
1305 * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Add -pipe.
1306 * config/t-darwin (TARGET_LIBGCC2_CFLAGS): Likewise.
1308 2005-04-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
1310 * gcc/config/vax/vax.md: Spellcheck, fix whitespace.
1312 2005-04-01 Ian Lance Taylor <ian@airs.com>
1314 * gcc.c: Don't include <sys/resource.h> or declare getrusage.
1315 (rus, prus): Remove static variables.
1316 (execute): Use pex_run/pex_get_status rather than pexecute/pwait.
1317 (process_command): Permit report_times and use_pipes together.
1319 2005-04-01 Joseph S. Myers <joseph@codesourcery.com>
1321 * c-decl.c (validate_proto_after_old_defn): Look at
1322 TYPE_MAIN_VARIANT of argument types.
1324 2005-04-01 Paul Brook <paul@codesourcery.com>
1326 * config/arm/arm.c (thumb_call_via_label): Include space for SP.
1327 (arm_output_function_epilogue): Allow call_via_SP.
1328 (thumb_call_via_reg, arm_file_end): Ditto.
1329 * config/arm/arm.h (struct machine_function): Include space for SP.
1330 (thumb_call_via_label): Update declaration.
1332 2005-04-01 Ian Lance Taylor <ian@airs.com>
1334 * final.c (final_scan_insn): Revert part of 2005-03-30 patch: when
1335 doing a peephole optimization, once again put any notes in the
1338 2005-04-01 Kazu Hirata <kazu@cs.umass.edu>
1340 * bb-reorder.c, fold-const.c, varasm.c: Fix comment typos.
1342 2005-04-01 Nathan Sidwell <nathan@codesourcery.com>
1344 * local-alloc.c (update_equiv_regs): Use gcc_assert, gcc_unreachable.
1345 (block_alloc, find_free_reg): Likewise.
1346 * loop-doloop.c (doloop_modify): Likewise.
1347 * loop-invariant.c (record_use): Likewise.
1348 * loop-iv.c (get_biv_step_1, get_biv_step, iv_analyze,
1349 get_iv_value, canon_condition, eliminate_implied_condition,
1350 eliminate_implied_condition, simplify_using_initial_values,
1351 shorten_into_mode, canonicalize_iv_subregs,
1352 iv_number_of_iterations): Likewise.
1353 * loop-unroll.c (expand_var_during_unrolling): Likewise.
1354 * loop-unswitch.c (compare_and_jump_seq, unswitch_single_loop,
1355 unswitch_loop): Likewise.
1356 * loop.c (INSN_LUID, loop_optimize, rtx_equal_for_loop_p,
1357 move_movables, replace_call_address, find_and_verify_loops,
1358 rtx_equal_for_prefetch_p, fold_rtx_mult_add, loop_iterations,
1359 record_giv, final_giv_value, general_induction_var,
1360 simplify_giv_expr, extension_within_bounds_p, try_copy_prop,
1361 loop_giv_dump): Likewise.
1363 * gcov-io.h (GCOV_CHECK, GCOV_CHECK_READING,
1364 GCOV_CHECK_WRITING): Remove.
1365 (gcov_position, gcov_rewrite): Use gcc_assert.
1366 * gcov-io.c (gcov_open, gcov_write_words, gcov_write_length,
1367 gcov_read_words, gcov_sync, gcov_seek): Use gcc_assert.
1368 * libgcov.c (__gcov_merge_single, __gcov_merge_delta): Use
1371 2005-04-01 Kazu Hirata <kazu@cs.umass.edu>
1373 * tree-inline.c: Fix a typo.
1375 2005-04-01 Nathan Sidwell <nathan@codesourcery.com>
1377 * configure.ac (enable-checking): Explicitly set all variables for
1378 collective switch values. Alphabetize variables. Rename
1379 ac_checking_valgrind to ac_valgrind_checking. Allow 'none' as
1381 * doc/install.texi (enable-checking): Update documentation.
1382 * configure: Rebuilt.
1384 2005-04-01 Kazu Hirata <kazu@cs.umass.edu>
1386 * tree-inline.c (copy_body_r): Use CONSTANT_CLASS_P where
1389 2005-04-01 Richard Earnshaw <richard.earnshaw@arm.com>
1391 * arm.c (adjacent_mem_locations): Reject volatile memory refs.
1392 Also reject cases where this pattern will cause load delay stalls
1393 unless optimizing for size and it will produce a shorter sequence.
1394 * arm.md (arith_adjacent_mem): Make better use of ldm addressing
1395 variants to avoid pre-adjusting the base when possible.
1397 2005-04-01 Richard Earnshaw <richard.earnshaw@arm.com>
1399 * arm.md (minmax_arithsi): Reject all eliminable registers, not just
1400 the frame and argument pointers.
1401 (strqi_preinc, strqi_predec, loadqi_preinc, loadqi_predec): Likewise.
1402 (loadqisi_preinc, loadqisi_predec, strsi_preinc): Likewise.
1403 (strsi_predec, loadsi_preinc, loadsi_predec): Likewise.
1404 (strqi_shiftpreinc, strqi_shiftpredec, loadqi_shiftpreinc): Likewise.
1405 (loadqi_shiftpredec, strsi_shiftpreinc, strsi_shiftpredec): Likewise.
1406 (loadsi_shiftpreinc, loadsi_shiftpredec): Likewise.
1408 2005-04-01 Danny Smith <dannysmith@users.sourceforge.net>
1410 * config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Define,
1411 with entry for selectany attribute.
1412 * config/i386/i386-protos.h (ix86_handle_selectany_attribute):
1414 * config/i386/winnt.c (ix86_handle_selectany_attribute): Define.
1415 (i386_pe_asm_named_section): Handle sections generated by
1416 selectany attribute.
1417 * doc/extend.texi (selectany): Document attribute.
1419 2005-04-01 Paolo Bonzini <bonzini@gnu.org>
1420 Jan Hubicka <jh@suse.cz>
1422 * config/i386/i386.c (ix86_decompose_address): Look inside SUBREGs
1423 to fix addresses involving EBP and ESP.
1424 (aligned_operand, legitimate_address_p, ix86_address_cost): Be prepared
1425 for SUBREGed registers.
1426 (legitimate_address_p): Accept SUBREGed registers.
1428 2005-04-01 Jakub Jelinek <jakub@redhat.com>
1431 * dwarf2out.c (gen_type_die_for_member): Handle FIELD_DECL.
1432 (dwarf2out_imported_module_or_decl): Use gen_type_die_for_member
1435 2005-04-01 Kazu Hirata <kazu@cs.umass.edu>
1437 * doc/contrib.texi, doc/invoke.texi, doc/tm.texi: Fix typos.
1439 2005-04-01 James E Wilson <wilson@specifixinc.com>
1442 * dwarf2out.c (rtl_for_decl_init): New function.
1443 (rtl_for_decl_location): Extracted from here.
1444 (tree_add_const_value_attribute): Call rtl_for_decl_init and
1445 add_const_value_attribute. Delete initializer_constant_valid_p call.
1447 2005-04-01 Kazu Hirata <kazu@cs.umass.edu>
1449 * cgraphunit.c, dbxout.c, flow.c, gcse.c, gimplify.c,
1450 lambda-code.c, loop.c, machmode.def, mips-tfile.c,
1451 modulo-sched.c, passes.c, postreload-gcse.c, tree-eh.c,
1452 tree-ssa-ccp.c, varasm.c, config/frv/frv.c, config/frv/frv.h,
1453 config/frv/frv.md, config/i386/i386.c, config/i386/i386.h,
1454 config/i386/i386.md, config/rs6000/predicates.md,
1455 config/rs6000/rs6000.c, config/s390/fixdfdi.h,
1456 config/s390/s390.c, config/stormy16/stormy16.c,
1457 config/stormy16/stormy16.md, config/vax/vax.md: Fix comment
1460 2005-04-01 Joseph S. Myers <joseph@codesourcery.com>
1463 * gimplify.c (gimplify_expr): Create a temporary for lvalue
1464 COND_EXPR and CALL_EXPR.
1466 2005-03-31 Vladimir Makarov <vmakarov@redhat.com>
1469 * genautomata.c (first_cycle_unit_presence): Check all alternative
1470 states for unit presence.
1472 * doc/md.texi: Remove remark about impossibility to query unit
1473 presence in non nondeterministic automaton state.
1475 * config/ia64/ia64.c (get_template): Change order of unit querying.
1477 2005-03-31 Kazu Hirata <kazu@cs.umass.edu>
1479 * tree-ssa-dom.c (cprop_into_successor_phis): Remove an
1482 2005-03-31 Zdenek Dvorak <dvorakz@suse.cz>
1484 * cfgloopanal.c (mark_loop_exit_edges): Clean EDGE_LOOP_EXIT
1485 flag for edges outside any loops.
1487 2005-03-31 Janis Johnson <janis187@us.ibm.com>
1489 * doc/sourcebuild.texi (Test Directives): Describe cleanup-* procs.
1491 2005-03-31 Kazu Hirata <kazu@cs.umass.edu>
1493 * tree-ssa-alias.c: Follow spelling conventions.
1494 * doc/tree-ssa.texi: Fix a typo.
1496 2005-03-31 J"orn Rennecke <joern.rennecke@st.com>
1498 * postreload-gcse.c: Include target.h.
1499 (gcse_after_reload_main): Return early if we cannot modify jumps.
1500 * Makefile.in (postreload-gcse.o): Depend on $(TARGET_H).
1502 2005-03-31 David Edelsohn <edelsohn@gnu.org>
1504 * tree-ssa-loop-im.c (stmt_cost): Add RDIV_EXPR to list of
1505 expensive operations.
1507 2005-03-31 Ian Lance Taylor <ian@airs.com>
1509 * collect2.c (lderrout): New variable.
1510 (collect_exit): Dump ldout to stdout. Dump and unlink lderrout,
1511 if it is set, to stderr.
1512 (handler): Unlink lderrout if it is set.
1513 (dump_file): Add "to" parameter. Change all callers.
1514 (main): Initialize lderrout.
1515 (collect_execute): Add errname parameter. Change all callers.
1516 Rename redir parameter to outname. Never pass
1517 PEX_STDERR_TO_STDOUT to pex_run.
1518 * collect2.h (collect_execute, dump_file): Update declarations.
1519 * tlink.c (tlink_execute): Add errname parameter. Change all
1521 (do_tlink): Check lderrout as well as ldout.
1523 2005-03-31 Caroline Tice <ctice@apple.com>
1525 * Makefile.in (varasm.o): Add basic-block.h to list of requirements.
1526 (bb-reorder.o): Add errors.h to list of requirements.
1527 (STAGEFEEDBACK_FLAGS_TO_PASS): Add -freorder-blocks-and-partition to
1528 profiledbootstrap flags.
1529 * bb-reorder.c (errors.h): Add new include.
1530 (struct bbro_basic_block_data_def): Add new field, in_trace.
1531 (add_unlikely_executed_notes): Remove function.
1532 (mark_bb_for_unlikely_executed_section): Remove function.
1533 (insert_section_boundary_note): New function.
1534 (verify_hot_cold_block_grouping): New function.
1535 (push_to_next_round_p): Remove variables and tests that push all
1536 cold blocks to last round.
1537 (find_traces): Remove code that added extra round of trace finding
1538 when doing partitioning.
1539 (find_traces_1_round) : Remove variable last_round; add code to
1540 update new struct field, in_trace; correct trace_length where it was
1541 incorrect before (after call to copy_bb); change code that pushed all
1542 cold blocks to last round. Instead verify that all blocks going into
1543 a trace belong in the same partition.
1544 (connect_traces): Modify to connect the traces in two passes, if the
1545 function contains both hot and cold blocks. The first pass connects
1546 all the traces for blocks in the partition that the first block in
1547 the function belongs to; the second pass connnects all the traces
1548 containing blocks that belong in the other partition.
1549 (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
1550 code that automatically put the first block in a function into the
1551 hot partition if the function had any hot blocks.
1552 (fix_crossing_unconditional_branches): Check number of succ edges
1553 before attempting to get one.
1554 (fix_edges_for_rarely_executed_code): Update comment describing
1556 (reorder_basic_blocks): Add code to initialize new field (in_trace);
1557 remove call to add_unlikely_executed_notes; add call to
1558 verify_hot_cold_block_grouping.
1559 (duplicate_computed_gotos): Don't change computed goto if it's a
1561 (partition_hot_cold_basic_blocks): Update function comment.
1562 * cfgcleanup.c (try_simplify_condjump): Remove redundacy from
1564 (try_forward_edges): Likewise.
1565 (merge_blocks_move_predecessor_nojumps): Likewise.
1566 (merge_blocks_move_successor_nojumps): Likewise.
1567 (merge_blocks_move): Likewise.
1568 (try_crossjump_bb): Likewise.
1569 * cfglayout.c (update_unlikely_executed_notes): Remove function.
1570 (fixup_reorder_chain): Remove code for adding UNLIKELY_EXECUTED_CODE
1571 notes to cold bb's; remove call to update_unlikely_executed_notes.
1572 (duplicate_insn_chain): change NOTE_INSN_UNLIKELY_EXECUTED_CODE to
1573 NOTE_INSN_SWITCH_TEXT_SECTIONS.
1574 * cfglayout.h (scan_ahead_for_unlikely_executed_note): Remove
1575 function declaration.
1576 * cfgrtl.c (can_delete_note_p): Remove UNLIKELY_EXECUTED_CODE note
1578 (rtl_can_merge_blocks): Remove redundancy from condition.
1579 (try_redirect_by_replacing_jump): Likewise.
1580 (force_nonfallthru_and_redirect): Remove code for adding
1581 UNLIKELY_EXECUTED_CODE notes to cold bb's.
1582 (commit_one_edge_insertion): Likewise.
1583 (cfg_layout_can_merge_blocks_p): Remove redundancy from condition.
1584 * dbxout.c (FORCE_TEXT): Replace function_section with
1585 current_function_section.
1586 (struct dbx_debug_h): Add do_nothing function for new debug_hooks
1587 function, switch_text_section.
1588 (struct xcoff_debug): Likewise.
1589 (dbxout_function_end): Add code to put out label diffs for both
1590 hot and cold sections.
1591 * debug.c (struct do_nothing_debug_hooks): Add do_nothing function
1592 for new debug_hooks funciton, switch_text_section..
1593 * debug.h (struct gcc_debug_hooks): Add new function to debug_hooks,
1594 switch_text_section.
1595 * dwarf2out.c (struct dw_fde_struct): Add five new fields:
1596 dw_fde_hot_section_label, dw_fde_hot_section_end_label,
1597 dw_fde_unlikely_section_label, dw_fde_unlikely_section_end_label and
1598 dw_fde_switched_sections.
1599 (output_call_frame_info): Add test to see if function switches text
1600 sections in the middle; if so, use appropriate extra hot and cold
1601 section labels to compute size deltas for the hot and cold sections.
1602 (dwarf2out_begin_prologue): Add code to initialize new fields in
1604 (dwarf2out_switch_text_section): New function (invoked through
1605 debug_hook); updates new fields in dw_fde_struct appropriately and
1606 increments separate_line_info_table_in_use.
1607 (dwarf2_debug_hooks): Initialize switch_text_section function to be
1608 dwarf2out_switch_text_section.
1609 (struct var_loc_node): Add new field, section_label.
1610 (output_aranges): Add code to check whether in hot or cold section and
1611 use the appropriate label in calculating deltas.
1612 (output_ranges): Likewise.
1613 (output_line_info): Add code to check which section we're in and
1614 use appropriate hot/cold label.
1615 (add_location_or_constant_value_attribute): Likewise.
1616 (gen_subprogam_die): Modify arange attributes to use correct labels.
1617 (dwarf2out_begin_block): Change call to function_section into call to
1618 current_function_section.
1619 (dwarf2out_end_block): Likewise.
1620 (dwarf2out_source_line): Likewise.
1621 (dwarf2out_var_location): Add code to check whether in hot or cold
1622 section and use the appropriate label.
1623 * except.c (output_function_exception_table): Change call to
1624 function_section into call to current_function_section.
1625 * final.c (profile_function): Likewise.
1626 (scan_ahead_for_unlikely_executed_note): Remove function.
1627 (final_scan_insn): Remove calls to
1628 scan_ahead_for_unlikely_executed_note, and related code for switching
1629 to cold section, except for the single time
1630 NOTE_INSN_SWITCH_TEXT_SECTIONS may be encountered; add calls to
1631 debug_hooks->switch_text_sections; replace appropriate calls to
1632 function_section with calls to current_function_section.
1633 * ifcvt.c (find_if_case_1): Remove redundancy from condition, add
1634 test_bb to condition.
1635 (find_if_case_2): Likewise.
1636 * insn-notes.def: Change NOTE_INSN_UNLIKELY_EXECUTED_CODE to
1637 NOTE_INSN_SWITCH_TEXT_SECTIONS. Update comment appropriately.
1638 * opts.c (decode_options): Change warning about hot/cold partitioning
1639 with exceptionss to inform (so as not to cause bootstrap failures);
1640 remove warning about partitioning with DWARF debug info.
1641 * output.h (current_function_section): Add new function decl.
1642 (insert_section_boundary_note): Likewise.
1643 (enum in_section): Move this declaration here from varasm.c.
1644 (unlikely_section_label): Likewise.
1645 (unlikely_text_section_name): Likewise.
1646 (last_text_section_name): New global variable.
1647 (last_text_section): Likewise.
1648 (hot_section_label): Likewise.
1649 (hot_section_end_label): Likewise.
1650 (cold_section_end_label): Likewise.
1651 * passes.c (rest_of_handle_final): Free unlikely_text_section_name.
1652 * print-rtl.c (print_rtx): Change NOTE_INSN_UNLIKELY_EXECUTED_CODE
1653 to NOTE_INSN_SWITCH_TEXT_SECTIONS.
1654 * reg-stack.c (emit_swap_insn): Remove UNLIKELY_EXECUTED_CODE note
1655 insn from consideration.
1656 * sdbout.c (sdb_debug_hooks): Add do_nothing for new function,
1657 switch_text_section.
1658 * varasm.c (basic-block.h): Add new include.
1659 (unlikely_section_label_printed): Remove global variable.
1660 (unlikely_section_label): Make global variable not be static any more.
1661 (unlikely_text_section_name): Likewise.
1662 (hot_section_end_label): New global variable (not static)
1663 (first_function_block_is_cold): Likewise.
1664 (hot_section_label): Likewise.
1665 (cold_section_end_label): Likewise..
1666 (last_text_section): New global variable, not static.
1667 (last_text_section_name): New global variable, not static.
1668 (initialize_cold_section_name): New function.
1669 (enum in_section): Move declaration to output.h.
1670 (text_section): Update last_text_section.
1671 (unlikely_text_section): Replace code to determine cold section name
1672 with call to initialize_cold_section_name; Add code to update
1673 last_text_section; remove code for printing out label.
1674 (named_section_real): Add code to update last_text_section and
1675 last_text_section_name as appropriate.
1676 (function_section): Change test for 'unlikely' to depend on
1677 first_function_block_is_cold (moved old test to
1678 current_function_section).
1679 (current_function_section): New function.
1680 (assemble_start_function): Move code that frees
1681 unlikely_text_section_name; initialize hot_section_end_label;
1682 print hot and cold section labels at the start of the function;
1683 set first_function_block_is_cold, if appropriate; initialize l
1684 ast_text_section; add call to insert_section_boundary_note.
1685 (assemble_end_function): Add code to write out hot and cold section
1687 *vmsdbgout.c (vmsdbg_debug_hooks): Add do_nothing for new function,
1688 switch_text_section.
1689 * config/darwin.c (machopic_select_section): Replace incorrect
1690 function in base_funs; update reloc for cold sections if necessary.
1691 * config/darwin.h (SECTION_FUNCTION): Add code to update
1692 last_text_section if appropriate.
1693 (text_unlikely_section): Remove.
1694 * config/sparc/sparc.c (sparc_output_deferred_case_vectors): Likewise.
1695 * config/stormy16/stormy16.c (stormy_16_output_addr_vec): Likewise.
1696 * config/xtensa/xtensa.c (override_options): Turn off hot/cold
1697 partitioning for this architecture.
1699 2005-03-31 Olivier Hainque <hainque@adacore.com>
1701 * dwarf2out.c (dwarf2out_frame_finish): Honor DWARF2_FRAME_INFO
1702 defined and non-zero.
1704 2005-03-31 Gabriel Dos Reis <gdr@integrable-solutions.net>
1707 * doc/invoke.texi (-Wsynth): Don't document, as it now is void of
1710 2005-03-31 Alan Modra <amodra@bigpond.net.au>
1713 * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Remove inline
1714 label operand. Remove (use (unspec..)). Don't emit a label on
1716 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Don't
1717 generate inline label for load_toc_v4_PIC_1b.
1718 (rs6000_emit_load_toc_table): Likewise.
1720 2005-03-31 Kazu Hirata <kazu@cs.umass.edu>
1722 * config.gcc: Obsolete i860-*-sysv4*, ip2k-*-elf,
1723 ns32k-*-netbsdelf*, and ns32k-*-netbsd*.
1725 2005-03-29 Devang Patel <dpatel@apple.com>
1727 * tree-sra.c (decide_block_copy): Disable scalarization of
1730 2005-03-30 Stuart Hastings <stuart@apple.com>
1731 Dale Johannesen <dalej@apple.com>
1733 * Makefile.in (print-tree.o): Depend on tree-iterator.h.
1734 * print-tree.c (print_node): Add case STATEMENT_LIST.
1736 2005-03-31 Alan Modra <amodra@bigpond.net.au>
1738 * config.gcc (cpu_is_64bit): Set for 64-bit powerpc cpus.
1739 (powerpc64-*-linux*): Use it. Rearrange tm_file assignment.
1740 (powerpc-*-linux*): Build a biarch compiler when --enable-targets
1741 is given with "powerpc64*" or "all", or when --with-cpu chooses
1744 2005-03-30 James E. Wilson <wilson@specifixinc.com>
1747 * dwarf2out.c (add_high_low_attributes): New function, extracted from
1748 gen_lexical_block_die.
1749 (gen_lexical_block_die, gen_inlined_subroutine_die): Call it.
1751 2005-03-31 Jan Hubicka <jh@suse.cz>
1753 2004-11-02 Jan Hubicka <jh@suse.cz>
1755 * cgraph.c (cgraph_varpool_node_name): New function.
1756 (dump_cgraph_varpool_node): New function.
1757 (dump_varpool): New function.
1758 * cgraphunit.c (cgraph_optimize): Dump varpool.
1760 2004-10-16 Jan Hubicka <jh@suse.cz>
1762 * cgraph.c (decide_is_variable_needed): New function.
1763 (cgraph_varpool_finalize_decl): Use it.
1764 * cgraphunit.c (cgraph_optimize): Assemble_pending_decls when not doing
1766 * final.c (output_addr_const): Do not call mark_referenced.
1767 * passes.c (rest_of_decl_compilation): ifdef out DECL_RTL_SET_P hack;
1768 always go via cgraph.
1769 * toplev.c (wrapup_global_declarations): Kill non-unit-at-a-time code.
1770 (check_global_declarations): Ifdef out code clearing DECL_RTL.
1771 * tree-optimize.c (execute_inline): Mark functions called.
1772 * i386.c (output_pic_addr_const): Do not call mark_decl_referenced.
1774 2004-10-11 Jan Hubicka <jh@suse.cz>
1776 * cgraph.c (cgraph_varpool_first_unanalyzed_node): New global voriable
1777 (cgraph_varpool_last_needed_node): New static variable.
1778 (enqueue_needed_varpool_node): Break out from ...; add items to the
1779 end of queue; update first pointers.
1780 (cgraph_varpool_mark_needed_node): ... here.
1781 (cgraph_varpool_finalize_decl): Use enqueue_needed_varpool_node.
1782 (cgraph_varpool_assemble_pending_decls): Move to cgraphunit.c
1783 * cgraph.h (cgraph_varpool_node): Add analyzed field.
1784 (cgraph_varpool_first_unanalyzed_node): Declare.
1785 * cgraphunit.c: Include output.h.
1786 (cgraph_varpool_analyze_pending_decls): New function.
1787 (cgraph_varpool_assemble_pending_decls): Move from cgraph.c; bail out
1788 for errors, analyze pending decls.
1789 (cgraph_finalize_compilation_unit): Only analyze decls.
1790 (cgraph_optimize): Assemble the decls after expanding.
1792 2005-03-30 Daniel Berlin <dberlin@dberlin.org>
1794 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Make sure
1795 subvars get marked properly in tags for grouping.
1796 (add_pointed_to_var): Mark only actual pointed to
1797 variables/subvars in addresses needed.
1798 (create_overlap_variables_for): Clear call clobbered on original
1800 * tree-ssa-operands.c (get_asm_expr_operands): Don't let regular
1801 addresable vars with subvars into list.
1802 * tree-ssa.c (verify_ssa_name): Verify original is not used where
1805 2005-03-30 Richard Henderson <rth@redhat.com>
1807 * cgraph.h (struct cgraph_node): Add alias.
1808 * varasm.c (assemble_alias): Set it.
1809 * cgraphunit.c (cgraph_assemble_pending_functions): Check it and
1810 avoid calling cgraph_expand_function.
1812 2005-03-30 Tom Tromey <tromey@redhat.com>
1814 * tree.def (FILE_TYPE): Removed.
1815 * typeclass.h (enum type_class): Removed file_type_class.
1816 * dwarf2out.c (is_base_type): Updated.
1817 (gen_type_die): Likewise.
1818 * dbxout.c (dbxout_type): Updated.
1819 * builtins.c (type_to_class): Updated.
1820 * tree.c (type_contains_placeholder_1): Updated.
1821 * config/sparc/sparc.c (sparc_type_code): Updated.
1822 * config/ia64/ia64.c (hfa_element_mode): Updated.
1823 * expr.c (count_type_elements): Updated.
1824 * stor-layout.c (layout_type): Updated.
1825 * tree-inline.c (remap_type): Updated.
1826 * tree-pretty-print.c (dump_generic_node): Updated.
1828 2005-03-30 Fariborz Jahanian <fjahanian@apple.com>
1830 * builtins.c (expand_builtin_powi): Fix mode of
1831 2nd argument to match int.
1832 * libgcc2.h (__powisf2, __powidf2, __powixf2, __powitf2): Change
1833 2nd argument type to int.
1834 * libgcc2.c: Change prototype of __powi* functions to use
1837 2005-03-30 Dale Johannesen <dalej@apple.com>
1840 * calls.c (expand_call): Flush pending deferrals before
1843 2005-03-30 Joseph S. Myers <joseph@codesourcery.com>
1847 * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR,
1848 C_DECL_UNDEFINABLE_STMT_EXPR, struct c_label_list, struct
1849 c_label_context, label_context_stack): New.
1850 * c-decl.c (define_label): Check for jumps into statement
1851 expressions. Add label to list of defined labels.
1852 (start_function): Push context on label_context_stack.
1853 (finish_function): Pop context from label_context_stack.
1854 * c-typeck.c (label_context_stack): New.
1855 (c_finish_goto_label): Check for jumps into statement
1856 expressions. Add label to list of jumped to labels.
1857 (struct c_switch): Add blocked_stmt_expr.
1858 (c_start_case): Initialize it.
1859 (do_case): Check it.
1860 (c_finish_case): Verify !blocked_stmt_expr.
1861 (c_begin_stmt_expr): Push context on label_context_stack.
1862 Increment blocked_stmt_expr. Mark labels jumped to from outside
1864 (c_finish_stmt_expr): December blocked_stmt_expr. Mark labels
1865 defined in the statement expression and no longer jumpable to.
1866 Mark labels jumped to from just outside the statement expression
1867 as again definable. Pop context from label_context_stack.
1868 * doc/extend.texi (Statement Exprs): Update.
1870 2005-03-30 Joseph S. Myers <joseph@codesourcery.com>
1873 * c-decl.c (start_function): Check for old_decl being
1876 2005-03-30 Ian Lance Taylor <ian@airs.com>
1878 * final.c (final): Remove prescan parameter. Change all callers.
1879 (final_scan_insn): Remove prescan parameter. Change all callers.
1881 2005-03-30 Kazu Hirata <kazu@cs.umass.edu>
1883 * tree-vectorizer.c: Fix comment typos.
1885 2005-03-30 Sebastian Pop <pop@cri.ensmp.fr>
1887 * tree-scalar-evolution.c (instantiate_parameters_1): Return
1888 as soon as a chrec_dont_know is detected.
1890 2005-03-31 Danny Smith <dannysmith@users.sourceforge.net>
1892 Merge from csl-arm-branch.
1893 2004-02-12 Mark Mitchell <mark@codesourcery.com>
1895 * tlink.c (recompile_files): Do not assume that "rename" can
1896 overwrite an existing file.
1898 2005-03-31 Paolo Bonzini <bonzini@gnu.org>
1900 * gcc/configure.ac (TL_AC_GNU_MAKE_GCC_LIB_PATH): Remove.
1901 * gcc/configure: Regenerate.
1903 2005-03-30 Alan Modra <amodra@bigpond.net.au>
1905 * doc/install.texi: Update binutils requirement for powerpc*-linux.
1907 * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Update comments.
1909 * calls.c (struct arg_data): Update "partial" comment.
1910 (load_register_parameters): Update "nregs" comment.
1912 2005-03-30 Richard Sandiford <rsandifo@redhat.com>
1914 * config/iq2000/iq2000.h (target_flags, MASK_GPOPT, MASK_EMBEDDED_DATA)
1915 (MASK_UNINIT_CONST_IN_RODATA, TARGET_EMBEDDED_DATA, TARGET_SWITCHES)
1916 (TARGET_DEFAULT, TARGET_CPU_DEFAULT, SUBTARGET_TARGET_OPTIONS)
1917 (TARGET_OPTIONS, iq2000_cpu_string, iq2000_arch_string): Delete.
1918 (TARGET_DEBUG_MODE, TARGET_DEBUG_A_MODE, TARGET_DEBUG_B_MODE)
1919 (TARGET_DEBUG_C_MODE, TARGET_DEBUG_D_MODE): Define to 0 rather
1920 than target_flags & 0.
1921 * config/iq2000/iq2000.c (iq2000_cpu_string, iq2000_arch_string)
1922 (iq2000_arch, iq2000_parse_cpu): Delete.
1923 (TARGET_HANDLE_OPTION): Override default.
1924 (iq2000_handle_option): New function.
1925 (override_options): Remove -march= and -mcpu= handling.
1926 * config/iq2000/iq2000.opt: New file.
1928 2005-03-30 Richard Sandiford <rsandifo@redhat.com>
1930 * config/c4x/c4x-protos.h (c4x_rpts_cycles, c4x_cpu_version): Delete.
1931 * config/c4x/c4x.h (SMALL_MEMORY_FLAG, MPYI_FLAG, FAST_FIX_FLAG)
1932 (RPTS_FLAG, C3X_FLAG, TI_FLAG, PARANOID_FLAG, MEMPARM_FLAG, DEVEL_FLAG)
1933 (RPTB_FLAG, BK_FLAG, DB_FLAG, DEBUG_FLAG, HOIST_FLAG)
1934 (LOOP_UNSIGNED_FLAG, FORCE_FLAG, PRESERVE_FLOAT_FLAG)
1935 (PARALLEL_INSN_FLAG, PARALLEL_MPY_FLAG, ALIASES_FLAG, C30_FLAG)
1936 (C31_FLAG, C32_FLAG, C33_FLAG, C40_FLAG, C44_FLAG, TARGET_SWITCHES)
1937 (TARGET_DEFAULT, TARGET_SMALL, TARGET_MPYI, TARGET_FAST_FIX)
1938 (TARGET_RPTS, TARGET_TI, TARGET_PARANOID, TARGET_MEMPARM, TARGET_DEVEL)
1939 (TARGET_RPTB, TARGET_BK, TARGET_DB, TARGET_DEBUG, TARGET_HOIST)
1940 (TARGET_LOOP_UNSIGNED, TARGET_FORCE, TARGET_PRESERVE_FLOAT)
1941 (TARGET_PARALLEL, TARGET_PARALLEL_MPY, TARGET_ALIASES)
1942 (c4x_rpts_cycles_string, c4x_cpu_version_string)
1943 (TARGET_OPTIONS): Delete.
1944 (c4x_rpts_cycles, c4x_cpu_version): Declare.
1945 (TARGET_C3X, TARGET_C30, TARGET_C31, TARGET_C32, TARGET_C33)
1946 (TARGET_C40, TARGET_C44): Redefine in terms of c4x_cpu_version.
1947 * config/c4x/c4x.c (c4x_rpts_cycles_string): Delete.
1948 (c4x_cpu_version_string): Delete.
1949 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
1950 (c4x_handle_option): New function. Map -m3x and -m4x options to the
1951 equivalent -mcpu= option.
1952 (c4x_override_options): Remove -mrpts= and -mcpu= handling from here.
1953 Deal with the extra conditions in the old TARGET_MPYI, TARGET_RPTB,
1954 TARGET_DB, TARGET_PARALLEL and TARGET_PARALLEL_MPY macros by setting
1955 or clearing the appropriate MASK_* bit.
1956 (c4x_file_start): Use c4x_cpu_version.
1957 * config/c4x/c4x.opt: New file.
1959 2005-03-30 Richard Sandiford <rsandifo@redhat.com>
1961 * doc/options.texi: Document the new MaskExists flag.
1962 * opth-gen.awk: Don't output MASK and TARGET macros for Mask(...)
1963 if the option has the MaskExists flag.
1965 2005-03-30 Richard Sandiford <rsandifo@redhat.com>
1967 * opt-functions.awk (flag_set_p, test_flag): New functions.
1968 (switch_flags): Use them.
1969 * opth-gen.awk: Use flag_set_p to check for flags.
1970 * optc-gen.awk: Likewise. Use opt_args to check for Init(...) flags.
1972 2005-03-30 Ian Lance Taylor <ian@airs.com>
1974 * config.host (i[34567]86-*-mingw32*): Don't set
1975 host_can_use_collect2 to no.
1977 2005-03-30 Alan Modra <amodra@bigpond.net.au>
1980 * builtins.c (get_memory_rtx): Expand address exp using EXPAND_NORMAL.
1981 Remove convert_memory_address call duplicating that in memory_address.
1983 2005-03-29 Richard Henderson <rth@redhat.com>
1986 * c-decl.c (c_finish_incomplete_decl): Update complete_array_type call.
1987 (build_compound_literal): Likewise. Propagate decl type into the
1989 (finish_decl): Likewise. Use new return value from complete_array_type
1990 for zero sized arrays.
1991 (complete_array_type): Move ...
1992 * c-common.c (complete_array_type): ... here. Change first argument
1993 to pointer-to-type-node. Consistently use sizetype for the index
1994 except for zero sized arrays. Detect zero sized arrays for pedantic
1995 mode diagnostics. Create a new type node instead of modifying the
1997 * c-tree.h (complete_array_type): Move decl ...
1998 * c-common.h (complete_array_type): ... here.
2000 2005-03-29 Richard Henderson <rth@redhat.com>
2003 * tree-sra.c (generate_element_init_1): Handle RANGE_EXPR.
2005 2005-03-29 Kazu Hirata <kazu@cs.umass.edu>
2007 * builtin-types.def, c-convert.c, c-format.c, ddg.c, debug.c,
2008 debug.h, et-forest.c, et-forest.h, gcov.c, rtl-profile.c,
2009 rtlhooks-def.h, rtlhooks.c, sdbout.c, tree-inline.h,
2010 tree-profile.c, tsystem.h, value-prof.h: Update copyright.
2012 2005-03-29 Eric Christopher <echristo@redhat.com>
2014 * config/mips/mips.c (mips_gimplify_va_arg_expr): Update for
2015 truthvalue conversion removal.
2017 2005-03-29 Ian Lance Taylor <ian@airs.com>
2020 * collect2.c: Never include <vfork.h>.
2021 (VFORK_STRING, vfork): Don't define.
2022 (pid): Remove global variable.
2023 (handler): Call raise instead of kill (getpid(), ...).
2024 (collect_wait): Add pex parameter. Change all callers. Use
2025 pex_get_status rather than pwait.
2026 (do_wait): Add pex parameter. Change all callers.
2027 (collect_execute): Return struct pex_obj * rather than void. Use
2028 pex routines rather than pexecute.
2029 (fork_execute): Get pex_obj from collect_execute, and pass it to
2031 (scan_prog_file): Use pex routines rather than pipe/vfork/exec.
2032 Only declare quit_handler if SIGQUIT is defined.
2033 (scan_libraries): Likewise.
2034 * collect2.h (collect_execute): Update declaration.
2035 (collect_wait): Update declaration.
2036 * tlink.c (tlink_execute): Get pex_obj from collect_execute, and
2037 pass it to collect_wait.
2039 2005-03-29 Joseph S. Myers <joseph@codesourcery.com>
2042 * c-parser.c (c_parser_compound_statement_nostart): Give error
2043 message for EOF instead of just setting parser->error.
2045 2005-03-29 Dorit Naishlos <dorit@il.ibm.com>
2047 * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard): Removed.
2048 (slpeel_update_phi_nodes_for_guard1): New function.
2049 (slpeel_update_phi_nodes_for_guard2): New function.
2050 (slpeel_tree_peel_loop_to_edge): Call above new functions instead
2051 of slpeel_update_phi_nodes_for_guard.
2052 (vectorize_loops): Remove call to loop_closed_rewrite.
2053 * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Remove
2056 2005-03-29 Richard Sandiford <rsandifo@redhat.com>
2058 * config/m32r/little.h (TARGET_ENDIAN_DEFAULT): Delete.
2059 (TARGET_LITTLE_ENDIAN): New macro.
2060 * config/m32r/m32r.h (SUBTARGET_SWITCHES, target_flags)
2061 (TARGET_RELAX_MASK, TARGET_DEBUG_MASK, TARGET_DEBUG)
2062 (TARGET_ALIGN_LOOPS_MASK, TARGET_ALIGN_LOOPS)
2063 (TARGET_LOW_ISSUE_RATE_MASK, TARGET_LOW_ISSUE_RATE)
2064 (TARGET_BRANCH_COST_MASK, TARGET_BRANCH_COST, TARGET_M32RX_MASK)
2065 (TARGET_M32RX, TARGET_M32R2_MASK, TARGET_M32R2, LITTLE_ENDIAN_BIT)
2066 (TARGET_ENDIAN_DEFAULT, SUBTARGET_SWITCHES, TARGET_DEFAULT)
2067 (TARGET_SWITCHES, m32r_model_string, m32r_sdata_string)
2068 (m32r_cache_flush_trap_string, SUBTARGET_OPTIONS)
2069 (TARGET_OPTIONS): Delete.
2070 (M32R_MODEL_DEFAULT, M32R_SDATA_DEFAULT): Turn into enums.
2071 (CACHE_FLUSH_TRAP): Turn into an integer.
2072 (TARGET_LITTLE_ENDIAN): Define to 0 by default.
2073 (INITIALIZE_TRAMPOLINE): Check m32r_cache_trap >= 0 to see if
2074 -mflush-trap is in use.
2075 * config/m32r/m32r.c (m32r_model_string, m32r_sdata_string)
2076 (m32r_cache_flush_trap_string): Delete.
2077 (m32r_model) Initialize to M32R_MODEL_DEFAULT.
2078 (m32r_sdata): Likewise M32R_SDATA_DEFAULT.
2079 (m32r_cache_trap): Likewise CACHE_FLUSH_TRAP.
2080 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2081 (m32r_handle_option): New function. Move -mflush-trap=, -mflush-func=,
2082 -mmodel= and -msdata= handling from...
2083 (m32r_init): ...here.
2084 * config/m32r/m32r.opt: New file.
2086 2005-03-29 Keith Besaw <kbesaw@us.ibm.com>
2088 * tree-ssanames.c (duplicate_ssa_name_ptr_info): New function.
2089 (duplicate_ssa_name): Call duplicate_ssa_name_ptr_info.
2090 * tree-vect-analyze.c (vect_object_analysis): additional parm
2091 pass back a "struct ptr_info_def *" with the points-to info.
2092 (vect_analyze_data_refs): set the STMT_VINFO_PTR_INFO for the
2093 statement using info returned from vect_object_analysis.
2094 * tree-vect-transform.c (update_vuses_to_preheader): New function.
2095 (vect_create_data_ref_ptr): Remove updates to vars_to_rename
2096 for virtual uses and defs when creating a replacement vector
2097 reference. Call duplicate_ssa_name_ptr_info to define points-to
2098 info for vector pointer replacement using STMT_VINFO_PTR_INFO.
2099 (vectorizable_store): copy_virtual_operands and update
2100 definition statements.
2101 (vectorizable_load): copy_virtual_operands. Remove call to
2102 mark_call_clobbered_vars_to_rename for call to "const" builtin.
2103 * tree-vectorizer.c (vectorize_loops): Remove calls to
2104 rewrite_into_ssa and bitmap_clear (vars_to_rename).
2105 (new_stmt_vec_info): initialize STMT_VINFO_PTR_INFO for stmt.
2106 * tree-vectorizer.h (_stmt_vec_info): add field ptr_info and
2107 define macro STMT_VINFO_PTR_INFO for use in accessing.
2108 * tree.h add export of duplicate_ssa_name_ptr_info.
2109 * rs6000.c (altivec_init_builtins): Declare builtin function
2110 __builtin_altivec_mask_for_load to be "const".
2112 2005-03-29 Jakub Jelinek <jakub@redhat.com>
2115 * cgraph.h (struct cgraph_varpool_node): Add alias field.
2116 * cgraph.c (cgraph_varpool_assemble_pending_decls): Don't call
2117 assemble_variable on aliases.
2118 * varasm.c (assemble_alias): Set node->alias.
2119 * toplev.c (wrapup_global_declarations): Don't call
2120 rest_of_decl_compilation on aliases again.
2122 2005-03-29 Paul Brook <paul@codesourcery.com>
2124 * config/arm/arm-protos.h (arm_dbx_register_number): Add prototype.
2125 * config/arm/arm.c (arm_dbx_register_number): New function.
2126 * config/arm/arm.h (IS_FPA_REGNUM, DBX_REGISTER_NUMBER): Define.
2128 2005-03-29 Eric Botcazou <ebotcazou@libertysurf.fr>
2131 * varasm.c (make_decl_rtl) [ASM_DECLARE_REGISTER_GLOBAL]: Use
2132 the DECL_NAME, not the DECL_ASSEMBLER_NAME.
2134 2005-03-29 Dale Johannesen <dalej@apple.com>
2136 * Makefile.in (value-prof.o): New dependencies on $(DIAGNOSTIC_H)
2137 $(TREE_H) and $(COVERAGE_H).
2138 * coverage.c (compute_checksum): Use DECL_NAME not DECL_ASSEMBLER_NAME.
2139 * opts.c (common_handle_option): Enable tree-based value transforms.
2140 * toplev.c (process_options): Ditto.
2141 * value-prof.h (struct histogram_value_t): Redefine. "Adjust" below
2142 refers to references to this type.
2143 * tree-flow.h: (struct stmt_ann_d): Add histograms field.
2144 * rtl-profile.c (rtl_gen_interval_profiler): Adjust. Remove checks
2145 for may_be_more, may_be_less.
2146 (rtl_gen_pow2_profiler): Adjust.
2147 (rtl_gen_one_value_profiler_no_edge_manip): Adjust.
2148 (rtl_gen_one_value_profiler): Adjust.
2149 (rtl_gen_const_delta_profiler): Adjust.
2150 * tree-profile.c (tree_gen_interval_profiler): Implement.
2151 (tree_gen_pow2_profiler): Ditto.
2152 (tree_gen_one_value_profiler): Ditto.
2153 (tree_profiling): New.
2154 (pass_tree_profile): Reference it.
2155 * value-prof.c: Include tree-flow.h, tree-flow-inline.h, diagnostic.h,
2157 (insn_divmod_values_to_profile): Rename to
2158 rtl_divmod_values_to_profile. Adjust.
2159 (insn_values_to_profile): Rename to rtl_values_to_profile. Adjust.
2160 (insn_prefetch_values_to_profile): Adjust.
2161 (rtl_value_profile_transformations): Adjust.
2162 (gen_divmod_fixed_value): Rename to rtl_divmod_fixed_value.
2163 (gen_mod_pow2): Rename to rtl_mod_pow2.
2164 (gen_mod_subtract): Rename to rtl_mod_subtract.
2165 (divmod_fixed_value_transform): Rename to
2166 rtl_divmod_fixed_value_transform.
2167 (mod_pow2_value_transform): Rename to rtl_mod_pow2_value_transform.
2168 (mod_subtract_transform): Rename to rtl_mod_subtract_transform.
2169 (rtl_find_values_to_profile): Adjust.
2170 (tree_value_profile_transformations): Implement.
2171 (tree_divmod_values_to_profile): New.
2172 (tree_values_to_profile): New.
2173 (tree_divmod_fixed_value): New.
2174 (tree_mod_pow2): New.
2175 (tree_mod_subtract): New.
2176 (tree_divmod_fixed_value_transform): New.
2177 (tree_mod_pow2_value_transform): New.
2178 (tree_mod_subtract_transform): New.
2179 (tree_find_values_to_profile): Implement.
2180 * profile.c (instrument_values): Free histograms.
2181 (compute_value_histograms): Adjust. Implement tree version.
2183 2005-03-29 Uros Bizjak <uros@kss-loka.si>
2185 * reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST> case.
2186 * config/i386/i386.c (output_fix_trunc): Add new round_mode
2187 variable. Output "fldcw" depending on round_mode.
2188 * config/i386/i386.md (UNSPEC_FIST): New.
2189 (fistdi2, fistdi2_with_temp, fist<mode>2, fist<mode>2_with_temp):
2190 New isns patterns to implement lrint and llrint built-ins as x87
2192 (fistdi2, fist<mode>2 splitters): New splitters.
2193 (lrint<mode>2): New expanders.
2195 2005-03-28 Ian Lance Taylor <ian@airs.com>
2197 * config/arc/arc.c (arc_output_function_epilogue): Pass prescan as
2198 0 when calling final_scan_insn.
2200 2005-03-28 Jan Hubicka <jh@suse.cz>
2203 * varasm.c (mark_decl_referenced): Do not mark extern inline functions
2206 * tree-inline.c (estimate_num_insns_1): Use declaration to discover argument
2207 types where possible.
2209 2005-03-26 Per Bothner <per@bothner.com>
2211 Make -f[no-]show-column also control non-cpp diagnostics.
2212 * c.opt (fshow-column): Move option from here ...
2213 * common.opt (fshow-column): ... to here.
2214 * diagnostic.c (diagnostic_build_prefix): Only print column number
2215 if flag_show_column.
2217 2005-03-27 Steven Bosscher <stevenb@suse.de>
2219 * vax-protos.h (vax_output_int_move, vax_output_int_add,
2220 vax_output_conditional_branch): New prototypes.
2221 * vax.c (vax_output_int_move, vax_output_int_add): New functions,
2222 extracted from vax.md mov and add patterns.
2223 (vax_output_conditional_branch): New function to output conditional
2224 branch instructions.
2225 * vax.md: Use mode macros for arithmetic and mov patterns.
2226 Use code macros for the jump patterns.
2228 2005-03-26 Andrew Pinski <pinskia@physics.uc.edu>
2230 * Makefile.in (libbackend.o): Depend on version files;
2231 add custom generation command.
2233 2005-03-26 Andrew Pinski <pinskia@physics.uc.edu>
2236 * config/rs6000/rs6000.md (extendsfdf2_fpr): Check to make
2237 sure that we have a REG before getting its REGNO.
2239 2005-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2241 * builtin-types.def (BT_FN_STRING_CONST_STRING_SIZE): New.
2242 * builtins.def (BUILT_IN_STRNDUP): New.
2244 2005-03-25 Pat Haugen <pthaugen@us.ibm.com>
2246 PR tree-optimization/20470
2247 * fold-const.c (fold_cond_expr_with_comparison): Recognize/fold
2250 2005-03-25 Mike Stump <mrs@apple.com>
2252 * config/darwin.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Don't allow 0
2255 2005-03-25 Geoffrey Keating <geoffk@apple.com>
2257 * config/rs6000/darwin-fallback.c: Don't include <ucontext.h>.
2258 Use our own structure definitions.
2260 * config/rs6000/rs6000.md (UNSPEC constants): Add UNSPEC_STFIWX.
2261 (fix_truncdfsi2): Allow registers or memory as destination.
2262 When TARGET_PPC_GFXOPT, generate simplified pattern.
2263 (fix_truncdfsi2_internal): Use define_insn_and_split.
2264 (fix_truncdfsi2_internal_gfxopt): New.
2265 (fctiwz): Don't confuse register allocation by giving it no choices.
2267 * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'Z'.
2268 (EXTRA_MEMORY_CONSTRAINT): Likewise.
2269 * config/rs6000/rs6000.c (indexed_or_indirect_operand): New.
2270 * config/rs6000/rs6000-protos.h (indexed_or_indirect_operand): New.
2272 2005-03-25 Kazu Hirata <kazu@cs.umass.edu>
2274 * dominance.c (free_dominance_info): Speed up by freeing et
2275 data structures without maintaining other nodes.
2276 * et-forest.c (et_free_tree_force): New.
2277 * et-forest.h: Add a prototype for et_free_tree_force.
2279 * tree.c (get_set_constructor_bits,
2280 get_set_constructor_bytes): Remove.
2281 * tree.h: Remove the corresponding prototypes.
2283 2005-03-25 John David Anglin <dave.anglin@nrc-crnc.gc.ca>
2286 * vax.c (vax_rtx_costs_1): Merge with vax_rtx_costs.
2287 (vax_rtx_costs): Return false when passed unsupported rtx's. Handle
2288 FLOAT_EXTEND, FLOAT_TRUNCATE and TRUNCATE. Fix costs for POST_INC,
2289 PRE_DEC, NEG and NOT.
2291 2005-03-25 Kazu Hirata <kazu@cs.umass.edu>
2293 * fold-const.c: Convert uses of fold (build (...)) to
2296 2005-03-25 Zdenek Dvorak <dvorakz@suse.cz>
2298 PR rtl-optimization/20249
2299 * cse.c (insert_regs): Do not record equivalence of registers in
2302 2005-03-24 Kazu Hirata <kazu@cs.umass.edu>
2304 * emit-rtl.c (reverse_comparison): Remove.
2305 * rtl.h: Remove the corresponding prototype.
2307 2005-03-24 James E Wilson <wilson@specifixinc.com>
2309 * doc/install.texi (--enable-altivec): Delete docs.
2311 2005-03-24 David Edelsohn <edelsohn@gnu.org>
2313 * config/rs6000/predicates.md (easy_fp_constant): Return 0 for
2314 SFmode and DFmode before reload when
2315 flag_unsafe_math_optimizations not enabled.
2317 2005-03-24 Geoffrey Keating <geoffk@apple.com>
2319 * c.opt (fvisibility-inlines-hidden): Allow for ObjC++.
2321 * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Add
2322 MASK_128BIT_LONG_DOUBLE, MASK_ALIGN_DOUBLE.
2324 2005-03-24 Nathan Sidwell <nathan@codesourcery.com>
2326 * configure.ac (enable-checking): Add 'runtime' option.
2327 * doc/install.texi (enable-checking): Document 'runtime' checking.
2328 * tsystem.h (gcc_assert, gcc_unreachable): Define.
2329 * config.in: Regenerated.
2330 * configure: Regenerated.
2332 2005-03-23 Uros Bizjak <uros@kss-loka.si>
2334 * optabs.h (enum optab_index): Remove OTI_llrint.
2335 (llrint_optab): Remove macro.
2336 * optabs.c (init_optabs): Remove llrint_optab initialization.
2337 * genopinit.c (optabs): Remove llrint_optab implementation.
2338 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LLRINT{,F,L}
2341 2005-03-24 Alexandre Oliva <aoliva@redhat.com>
2343 PR rtl-optimization/20532
2344 * simplify-rtx.c (simplify_binary_operation_1): Protect from
2345 overflow when adding coefficients for PLUS or MINUS.
2346 (simplify_binary_operation_1): Handle CONST_DOUBLE exact power of
2349 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
2351 * langhooks.h (truthvalue_conversion): Remove.
2352 * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
2353 LANG_HOOKS_TRUTHVALUE_CONVERSION.
2354 * system.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Poison.
2355 * gimplify.c (gimple_boolify): Don't use truthvalue_conversion.
2356 * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
2358 2005-03-23 Kazu Hirata <kazu@cs.umass.edu>
2360 * params.def: Fix a typo.
2361 * config/mips/mips.c: Follow the spelling convensions.
2362 * doc/invoke.texi: Fix typos.
2364 2005-03-18 Dale Johannese <dalej@apple.com>
2366 * cp/tree.c (cp_tree_equal): Handle SSA_NAME.
2368 2005-03-23 Daniel Berlin <dberlin@dberlin.org>
2370 Fix PR tree-optimization/20601
2372 * tree-ssa-pre.c (insert_aux): Add missing condition to
2375 2005-03-23 Ian Lance Taylor <ian@airs.com>
2377 * final.c (final_scan_insn): Don't remove no-op instructions.
2378 * reload1.c (reload): Remove simple no-op instructions even when
2381 2005-03-23 Dorit Naishlos <dorit@il.ib.com>
2383 PR tree-optimization/20501
2384 * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Debug print
2385 reporting that peeling for alignment is applied moved to...
2386 * (vect_analyze_data_refs_alignment): Here.
2388 2005-03-23 Ian Lance Taylor <ian@airs.com>
2390 * reorg.c (dbr_schedule): Remove #if 0 code to call final.
2392 2005-03-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2394 * config.gcc (alpha*-dec-osf[45]*): Remove target_cpu_default.
2395 Define TARGET_SUPPORT_ARCH except on Tru64 UNIX V4.0A.
2397 2005-03-23 Hans-Peter Nilsson <hp@axis.com>
2399 * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Adjust wording to not
2400 imply that this is called once, independent of asms in code.
2401 Adjust to now being pased output and input lists. Mention helper
2402 function decl_overlaps_hard_reg_set_p.
2403 * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Rename from
2404 hook_tree_tree_identity and to take three trees, returning third.
2405 * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Adjust the
2407 * stmt.c: include hard-reg-set.h before tree.h.
2408 (decl_overlaps_hard_reg_set_p): New function, broken out from...
2409 (decl_conflicts_with_clobbers_p): Call
2410 decl_overlaps_hard_reg_set_p.
2411 (expand_asm_operands): Pass output and input lists in call to
2412 targetm.md_asm_clobbers.
2413 * target-def.h (TARGET_MD_ASM_CLOBBERS): Define as
2414 hook_tree_tree_tree_tree_3rd_identity.
2415 * target.h (struct gcc_target.md_asm_clobbers): Take three tree
2417 * tree.h [HARD_CONST] (decl_overlaps_hard_reg_set_p): Prototype.
2418 * config/i386/i386.c (ix86_md_asm_clobbers): Adjust to three
2419 parameters, first two unused.
2420 * config/cris/cris.c (cris_md_asm_clobbers): Adjust to added
2421 parameters. Only add MOF to clobbers if there's no 'h' mentioned
2422 in constraint letters and MOF is not mentioned as a asm-declared
2423 register in neither of the input and output lists.
2425 2005-03-23 DJ Delorie <dj@redhat.com>
2427 * optabs.c (expand_binop): Make sure the first subword's result
2430 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
2432 * c-common.c (c_common_truthvalue_conversion): Adjust comment.
2433 Call c_common_truthvalue_conversion rather than
2434 lang_hooks.truthvalue_conversion.
2435 * c-convert.c (convert): Call c_objc_common_truthvalue_conversion.
2436 * c-objc-common.c (c_objc_common_truthvalue_conversion): Move to
2438 * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Change to
2439 c_common_truthvalue_conversion.
2440 * c-parser.c (c_parser_paren_condition, c_parser_for_statement,
2441 c_parser_conditional_expression, c_parser_binary_expression): Call
2442 c_objc_common_truthvalue_conversion.
2443 * c-typeck.c (build_unary_op): Call
2444 c_objc_common_truthvalue_conversion.
2445 (build_conditional_expr): Do not call
2446 lang_hooks.truthvalue_conversion.
2447 (build_binary_op): Call c_common_truthvalue_conversion.
2448 (c_objc_common_truthvalue_conversion): Moved from
2449 c-objc-common.c. Call default_function_array_conversion instead
2450 of default_conversion.
2452 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
2454 * c-common.h (default_conversion): Remove.
2455 (perform_integral_promotions): Add.
2456 * c-tree.h (default_conversion): Add.
2457 * c-typeck.c (perform_integral_promotions): New, split out from
2459 * c-common.c (check_case_value): Use perform_integral_promotions,
2460 not default_conversion.
2461 (c_add_case_label): Don't continue processing case label after
2462 found to be pointer.
2464 2005-03-23 Mark Mitchell <mark@codesourcery.com>
2466 * gcc.c (do_spec_1): Do not add a -L path for a directory in
2467 the prefix list if we have already added a multilib directory
2469 (main): Do not add MD_EXEC_PREFIX to the list of directories to
2472 2005-03-22 Kazu Hirata <kazu@cs.umass.edu>
2474 * reload1.c (indirect_symref_ok, reload_obstack): Make them
2476 * reload.h: Remove the prototype for indirect_symref_ok.
2478 * reload1.c (indirect_symref_ok): Make it global.
2479 * reload.h: Add a prototype for indirect_symref_ok.
2481 2005-03-22 Kaz Kojima <kkojima@gcc.gnu.org>
2483 * config/sh/sh.md (ashlhi3): Rename to *ashlhi3_n and add a new
2486 2005-03-22 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
2488 * tree.h (DECL_IGNORED_P, DECL_IN_SYSTEM_HEADER): Clarify comments.
2490 2005-03-22 Daniel Berlin <dberlin@dberlin.org>
2492 * c-opts.c (c_common_parse_file): Only start/end main source file
2493 if debug hooks says the writer wants it.
2494 * dbxout.c (dbx_debug_hooks): Add start_end_main_source_file
2496 (xcoff_debug_hooks): Ditto.
2497 * debug.c (do_nothing_hooks): Ditto.
2498 * debug.h (gcc_debug_hooks): Ditto.
2499 * dwarf2out.c (dwarf2_debug_hooks): Ditto.
2500 * sdbout.c (sdb_debug_hooks): Ditto.
2501 * vmsdbgout.c (vmsdbg_debug_hooks): Ditto.
2503 2005-03-22 Mark Mitchell <mark@codesourcery.com>
2505 * doc/extend.texi: Deprecate C++ min/max operators.
2507 2005-03-22 Zdenek Dvorak <dvorakz@suse.cz>
2509 * tree-ssa-loop-ivopts.c (determine_iv_cost): Do not try to preserve
2510 artificial original candidates.
2512 2005-03-22 Richard Guenther <rguenth@tat.physik.uni-tuebingen.de>
2513 Jan Hubicka <jh@suse.cz>
2514 Steven Bosscher <stevenb@suse.de>
2516 * cgraphunit.c (cgraph_estimate_size_after_inlining): Compute
2517 call cost based on argument sizes.
2518 (cgraph_mark_inline_edge): Avoid inline unit from shrinking by
2520 * params.def: (max-inline-inssn-single): Set to 450.
2521 (max-inline-insns-auto): Set to 90.
2522 (max-inline-insns-recursive): Set to 450
2523 (max-inline-insns-recursive-auto): Set to 450.
2524 (large-function-insns): Set to 2700.
2525 (inline-call-cost): New parameter.
2526 * tree-inline.c (estimate_move_cost): New function.
2527 (estimate_num_insns_1): Compute move sizes costs by estimate_move_cost
2528 for non-gimple-regs, set cost to 0 for gimple-regs. Compute call size
2530 * tree-inline.h (estimate_move_cost): Declare.
2531 * invoke.texi: (max-inline-inssn-single): Change default to 450.
2532 (max-inline-insns-auto): Change default to 90.
2533 (max-inline-insns-recursive): Change default to 450
2534 (max-inline-insns-recursive-auto): Change default to 450.
2535 (large-function-insns): Change default to 2700.
2536 (inline-call-cost): Document new parameter.
2538 2005-03-22 Richard Sandiford <rsandifo@redhat.com>
2540 * config/i860/i860.h (target_flags, TARGET_XP, TARGET_SWITCHES)
2541 (TARGET_DEFAULT): Delete.
2542 * config/i860/i860.opt: New file.
2544 2005-03-22 Richard Sandiford <rsandifo@redhat.com>
2546 * config/frv/frv-protos.h (frv_branch_cost_string, frv_branch_cost_int)
2547 (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
2548 (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
2549 (frv_sched_lookahead): Delete.
2550 * config/frv/frv.h (MASK_DEFAULT_ALLOC_CC): Move to frv.c.
2551 (target_flags, MASK_GPR_32, MASK_FPR_32, MASK_SOFT_FLOAT)
2552 (MASK_ALLOC_CC, MASK_DWORD, MASK_DOUBLE, MASK_MEDIA, MASK_MULADD)
2553 (MASK_LIBPIC, MASK_ACC_4, MASK_PACK, MASK_LONG_CALLS)
2554 (MASK_ALIGN_LABELS, MASK_LINKED_FP, MASK_BIG_TLS, MASK_DEBUG_ARG)
2555 (MASK_DEBUG_ADDR, MASK_DEBUG_STACK, MASK_DEBUG, MASK_DEBUG_LOC)
2556 (MASK_DEBUG_COND_EXEC, MASK_NO_COND_MOVE, MASK_NO_SCC)
2557 (MASK_NO_COND_EXEC, MASK_NO_VLIW_BRANCH, MASK_NO_MULTI_CE)
2558 (MASK_FDPIC, MASK_INLINE_PLT, MASK_GPREL_RO, MASK_DEFAULT)
2559 (TARGET_GPR_32, TARGET_FPR_32, TARGET_SOFT_FLOAT, TARGET_ALLOC_CC)
2560 (TARGET_DWORD, TARGET_DOUBLE, TARGET_MEDIA, TARGET_MULADD)
2561 (TARGET_LIBPIC, TARGET_ACC_4, TARGET_DEBUG_ARG, TARGET_DEBUG_ADDR)
2562 (TARGET_DEBUG_STACK, TARGET_DEBUG, TARGET_DEBUG_LOC)
2563 (TARGET_DEBUG_COND_EXEC, TARGET_NO_COND_MOVE, TARGET_NO_SCC)
2564 (TARGET_NO_COND_EXEC, TARGET_NO_VLIW_BRANCH, TARGET_NO_MULTI_CE)
2565 (TARGET_NO_NESTED_CE, TARGET_FDPIC, TARGET_INLINE_PLT, TARGET_BIG_TLS)
2566 (TARGET_GPREL_RO, TARGET_PACK, TARGET_LONG_CALLS, TARGET_ALIGN_LABELS)
2567 (TARGET_LINKED_FP, TARGET_GPR_64, TARGET_FPR_64, TARGET_HARD_FLOAT)
2568 (TARGET_FIXED_CC, TARGET_COND_MOVE, TARGET_SCC, TARGET_COND_EXEC)
2569 (TARGET_VLIW_BRANCH, TARGET_MULTI_CE, TARGET_NESTED_CE, TARGET_ACC_8)
2570 (TARGET_SWITCHES, TARGET_OPTIONS, DEFAULT_CONDEXEC_TEMPS)
2571 (DEFAULT_BRANCH_COST, DEFAULT_CONDEXEC_INSNS): Delete.
2572 * config/frv/frv.c (frv_branch_cost_string, frv_branch_cost_int)
2573 (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
2574 (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
2575 (frv_sched_lookahead): Delete.
2576 (MASK_DEFAULT_ALLOC_CC): Moved from frv.h.
2577 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2578 (frv_handle_option): New function. Move -mcpu= handling from...
2579 (frv_override_options): ...here. Remove handling of other
2581 (frv_ifcvt_modify_tests): Check !TARGET_COND_EXEC instead of
2582 TARGET_NO_COND_EXEC and !TARGET_NESTED_CE to TARGET_NO_NESTED_CE.
2583 (frv_ifcvt_modify_multiple_tests): Likewise !TARGET_MULTI_CE
2584 and TARGET_NO_MULTI_CE.
2585 (frv_for_each_packet): Likewise TARGET_NO_VLIW_BRANCH and
2586 !TARGET_VLIW_BRANCH.
2587 * config/frv/frv.opt: New file.
2589 2005-03-22 Kazu Hirata <kazu@cs.umass.edu>
2591 * fold-const.c (fold_ternary): Take decomposed arguments of
2593 (fold): Update a call to fold_ternary.
2595 * fold-const.c (fold_build1, fold_build2, fold_build3): New.
2596 * tree.h: Add corresponding prototypes.
2598 2005-03-22 Jakub Jelinek <jakub@redhat.com>
2601 * cfglayout.c (reemit_insn_block_notes): Don't put block notes in
2602 between jump table and its label.
2603 * final.c (shorten_branches): Handle notes in between ADDR_VEC
2604 resp. ADDR_DIFF_VEC and the label preceeding it.
2605 (final_scan_insn): Likewise. Ensure ADDR_VEC resp. ADDR_DIFF_VEC
2606 is emitted in the right section.
2608 2005-03-22 Kazu Hirata <kazu@cs.umass.edu>
2610 * fold-const.c (fold_unary, fold_binary): Update comments
2613 2005-03-22 Hans-Peter Nilsson <hp@axis.com>
2615 PR rtl-optimization/20527
2616 * combine.c (can_combine_p) [AUTO_INC_DEC]: When INSN has an
2617 REG_INC note, test that the register also isn't mentioned in PRED
2620 2005-03-22 Ben Elliston <bje@au.ibm.com>
2622 * dwarf2out.c (dwarf_type_encoding_name): Remove unused prototype
2625 2005-03-21 Mike Stump <mrs@apple.com>
2627 * varasm.c (default_assemble_visibility): Remove extra ().
2629 2005-03-21 Roger Sayle <roger@eyesopen.com>
2632 * bb-reorder.c (duplicate_computed_gotos): Use can_duplicate_block_p
2633 to determine whether a block can be duplicated, rather than test
2634 whether the block contains noncopyable insns ourselves.
2636 2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
2638 * config/i860/i860.h (PREDICATE_CODES): Remove nonexistent
2641 2005-03-21 Richard Sandiford <rsandifo@redhat.com>
2643 * config/ip2k/ip2k.h (target_flags, TARGET_SWITCHES): Delete.
2645 2005-03-21 Richard Sandiford <rsandifo@redhat.com>
2647 * config/fr30/fr30.h (TARGET_SMALL_MODEL_MASK, TARGET_SMALL_MODEL)
2648 (TARGET_DEFAULT, target_flags, TARGET_SWITCHES): Delete.
2649 * config/fr30/fr30.opt: New file.
2651 2005-03-18 Daniel Berlin <dberlin@dberlin.org>
2653 Fix PR tree-optimization/20542
2655 * tree-flow-inline.h (overlap_subvar): Move to here.
2656 * tree-ssa-operands.c: From here.
2657 * tree-flow.h (overlap_subvar): Declare.
2658 * tree-ssa-alias.c (add_pointed_to_var): Use overlap_subvar here.
2659 * tree-ssa-loop-im.c (is_call_clobbered_ref): Return proper answer
2660 for variables with subvars.
2662 2005-03-21 Mostafa Hagog <mustafa@il.ibm.com>
2665 * ddg.c (create_ddg_dependence): Ignore reg-anti dependency.
2666 * modulo-sched.c (const_iteration_count): Return on NULL
2668 (print_node_sched_params): Return on NULL dump_file.
2669 (generate_reg_moves): Handle reg-anti dependencies and disregard
2670 closing branch when generating register moves.
2671 (sms_schedule): Mark the SMSed block dirty.
2672 * passes.c (rest_of_handle_sms): Call update_life_info for all
2674 * testsuite/gcc.dg/20050321-1.c: New test.
2676 2005-03-21 Bob Wilson <bob.wilson@acm.org>
2678 * config/xtensa/lib1funcs.asm (__mulsi3): Use symbolic name for ACCLO.
2679 * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
2680 movqi_internal): Likewise.
2682 2005-03-21 Bob Wilson <bob.wilson@acm.org>
2684 * config/xtensa/xtensa-protos.h: (xtensa_simm7, xtensa_uimm8,
2685 xtensa_uimm8x2, xtensa_uimm8x4, xtensa_ai4const, xtensa_lsi4x4,
2686 xtensa_b4const): Delete prototypes.
2687 (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b, xtensa_b4constu,
2688 xtensa_mask_immediate, xtensa_mem_offset): Update prototypes.
2689 (xtensa_b4const_or_zero, xtensa_const_ok_for_letter_p,
2690 xtensa_extra_constraint): New prototypes.
2691 (add_operand, arith_operand, nonimmed_operand, mem_operand,
2692 mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
2693 lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
2694 move_operand, const_float_1_operand, fpmem_offset_operand,
2695 branch_operator, ubranch_operator, boolean_operator): Delete prototypes.
2696 * config/xtensa/xtensa.c (b4const_or_zero): Rename to ...
2697 (xtensa_b4const_or_zero): ...this. Change return type to bool and
2698 argument type to HOST_WIDE_INT.
2699 (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b,
2700 xtensa_mask_immediate): Likewise.
2701 (xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4, xtensa_b4const):
2702 Likewise. Also make these functions static.
2703 (xtensa_simm7, xtensa_ai4const, xtensa_lsi4x4): Delete.
2704 (xtensa_const_ok_for_letter_p): New.
2705 (add_operand, arith_operand, nonimmed_operand, mem_operand,
2706 mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
2707 lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
2708 move_operand, const_float_1_operand, fpmem_offset_operand,
2709 branch_operator, ubranch_operator, boolean_operator): Move to
2711 (smalloffset_mem_p): Inline code from xtensa_lsi4x4.
2712 (xtensa_mem_offset): Change return type to bool.
2713 (xtensa_extra_constraint): New.
2714 (gen_int_relational): Update type of const_range_p function pointer.
2715 Use xtensa_b4const_or_zero.
2716 * config/xtensa/xtensa.h (CONST_OK_FOR_LETTER_P): Define to
2717 xtensa_const_ok_for_letter_p. Update comments.
2718 (EXTRA_CONSTRAINT): Define to xtensa_extra_constraint.
2719 (PREDICATE_CODES): Delete.
2720 * config/xtensa/xtensa.md: Include predicates.md.
2721 * config/xtensa/predicates.md: New file.
2723 2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
2725 * config/v850/v850-protos.h: Remove the prototypes for
2726 reg_or_int9_operand, reg_or_const_operand,
2727 pattern_is_ok_for_prepare, pattern_is_ok_for_dispose,
2728 reg_or_0_operand, reg_or_int5_operand, call_address_operand,
2729 movsi_source_operand, power_of_two_operand,
2730 not_power_of_two_operand, special_symbolref_operand,
2731 pattern_is_ok_for_prologue, pattern_is_ok_for_epilogue, and
2732 register_is_ok_for_epilogue.
2733 * config/v850/v850.c (reg_or_0_operand, reg_or_int5_operand,
2734 reg_or_int9_operand, reg_or_const_operand,
2735 call_address_operand, special_symbolref_operand,
2736 movsi_source_operand, power_of_two_operand,
2737 not_power_of_two_operand, register_is_ok_for_epilogue,
2738 pattern_is_ok_for_epilogue, pattern_is_ok_for_prologue,
2739 pattern_is_ok_for_dispose, pattern_is_ok_for_prepare): Move to
2741 * config/v850/v850.h (PREDICATE_CODES): Remove.
2742 * config/v850/v850.md: Include predicates.md.
2743 * config/v850/predicates.md: New.
2745 2005-03-21 Zack Weinberg <zack@codesourcery.com>
2747 * Makefile.in (BASEVER, DEVPHASE, DATESTAMP)
2748 (BASEVER_c, DEVPHASE_c, DATESTAMP_c)
2749 (BASEVER_s, DEVPHASE_s, DATESTAMP_s, version): Set with :=.
2750 (itoolsdir, itoolsdatadir): Move definition above new first use.
2751 (install-itoolsdirs): New rule.
2752 (install-mkheaders): Depend on install-itoolsdirs, not
2753 install-include-dir.
2755 2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
2757 * tree-into-ssa.c: Remove obsolete comments.
2759 2005-03-21 Richard Guenther <rguenth@gcc.gnu.org>
2761 * tree-ssa-loop.c (gate_tree_complete_unroll): Run complete
2762 unrolling if -fpeel-loops is specified, too.
2763 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
2764 Remove superfluous check for flag_unroll_loops.
2766 2005-03-21 Uros Bizjak <uros@kss-loka.si>
2768 * optabs.h (enum optab_index): Add new OTI_lrint and OTI_llrint.
2769 (lrint_optab, llrint_optab): Define corresponding macros.
2770 * optabs.c (init_optabs): Initialize lrint_optab and llrint_optab.
2771 * genopinit.c (optabs): Implement lrint_optab using lrintsi2
2772 pattern and llrint_optab using llrintdi2 patterns.
2773 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LRINT{,F,L}
2774 using lrint_optab and BUILT_IN_LLRINT{,F,L} using llrint_optab.
2775 (expand_builtin): Expand BUILT_IN_LRINT{,F,L} and
2776 BUILT_IN_LLRINT{,F,L} using expand_builtin_mathfn if
2777 flag_unsafe_math_optimizations is set.
2779 2005-03-21 Paolo Bonzini <bonzini@gnu.org>
2781 * combine.c (combine_simplify_rtx, simplify_if_then_else,
2782 simplify_logical, if_then_else_cond, known_cond,
2783 simplify_comparison): Adjust calls to reverse_comparison.
2784 Don't use combine_reversed_comparison_code).
2785 (combine_reversed_comparison_code): Remove.
2786 (reversed_comparison): Using reversed_comparison_code, move it...
2787 * jump.c (reversed_comparison): ... here.
2788 * rtl.h (reversed_comparison): Add prototype.
2790 2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
2792 * builtins.c (fold_builtin): Take decomposed arguments of
2794 * fold-const.c (fold_ternary): Update a call to fold_builtin.
2795 * gimplify.c (gimplify_call_expr): Likewise.
2796 * tree-ssa-ccp.c (ccp_fold, ccp_fold_builtin): Likewise.
2797 * tree.h: Update the prototype of fold_builtin.
2799 2005-03-21 Paolo Bonzini <bonzini@gnu.org>
2801 * rtl.h (struct rtx_hooks): Add gen_lowpart_no_emit.
2802 * rtlhooks.c (gen_lowpart_no_emit_general): New.
2803 * rtlhooks-def.h (gen_lowpart_no_emit_general): Declare.
2804 (RTL_HOOKS_GEN_LOWPART_NO_EMIT): New.
2805 * simplify-rtx.c (simplify_binary_operation_1): Use it.
2807 2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
2809 * builtins.c (fold_builtin_1): Take decomposed arguments of
2811 (fold_builtin): Update a call to fold_builtin_1.
2813 2005-03-21 Nathan Sidwell <nathan@codesourcery.com>
2816 * gcov.c (output_lines): Only output function block summary when
2817 outputting branch information.
2818 * doc/gcov.texi: Document format of preamble and additional block
2821 2005-03-21 Richard Sandiford <rsandifo@redhat.com>
2823 * libgcc2.h (LIBGCC2_HAS_SF_MODE): New macro.
2824 (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_TF_MODE, LIBGCC2_HAS_XF_MODE): Make
2825 the defaults false if BITS_PER_UNIT != 8.
2826 (SFtype, SCtype, __fixsfdi, __floatdisf, __fixunssfSI, __fixunssfDI)
2827 (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE rather
2828 than BITS_PER_UNIT != 8.
2829 (L_fixdfdi, L_fixsfdi, L_fixtfdi, L_fixunsdfdi, L_fixunsdfsi)
2830 (L_fixunssfdi, L_fixunssfsi, L_fixunstfdi, L_fixunsxfdi, L_fixunsxfsi)
2831 (L_fixxfdi, L_floatdidf, L_floatdisf, L_floatditf, L_floatdixf): Remove
2833 * libgcc2.c (__fixunssfDI, __fixsfdi, __floatdisf, __fixunssfSI)
2834 (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE.
2836 2005-03-20 Roger Sayle <roger@eyesopen.com>
2839 * fold-const.c (fold_binary): Fix type mismatch between
2840 TRUTH_{AND,OR,XOR}_EXPR nodes an their operands' types.
2841 (fold_binary) <TRUTH_XOR_EXPR>: Avoid calling invert_truthvalue
2842 for non-truth-valued expressions.
2844 * c-common.c (c_common_truthvalue_conversion): Handle ERROR_MARK
2845 and FUNCTION_DECL in the main switch.
2846 <TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
2847 TRUTH_XOR_EXPR>: When changing the result type of these tree nodes,
2848 we also need to convert their operands to match.
2849 <TRUTH_NOT_EXPR>: Likewise.
2851 2005-03-21 Joseph S. Myers <joseph@codesourcery.com>
2853 * c-common.c (lvalue_or_else): Replace by lvalue_error; only give
2854 diagnostic without checking whether an lvalue.
2855 * c-common.h (lvalue_p): Remove.
2856 (enum lvalue_use): Update comment.
2857 (lvalue_or_else): Replace by lvalue_error.
2858 * c-typeck.c (lvalue_p): Make static.
2859 (lvalue_or_else): New. Call lvalue_error.
2861 2005-03-21 Alan Modra <amodra@bigpond.net.au>
2863 * config/rs6000/rs6000.c (rs6000_parm_start): New function.
2864 (function_arg_advance): Use rs6000_parm_start.
2865 (function_arg, rs6000_arg_partial_bytes): Likewise.
2867 2005-03-20 Joseph S. Myers <joseph@codesourcery.com>
2869 * c-common.c (check_case_value): Adjust comment about stripping
2871 (handle_vector_size_attribute): Don't strip NON_LVALUE_EXPR.
2872 * c-typeck.c (default_conversion, convert_arguments,
2873 build_modify_expr, convert_for_assignment, store_init_value,
2874 digest_init): Use STRIP_TYPE_NOPS instead of stripping nops
2875 manually. Remove inaccurate comments.
2877 2005-03-20 Roger Sayle <roger@eyesopen.com>
2878 Joseph S. Myers <joseph@codesourcery.com>
2880 * varasm.c (do_assemble_alias): Restore comment describing function.
2881 Annotate the target parameter as potentially unused.
2883 2005-03-20 Marek Michalkiewicz <marekm@amelek.gda.pl>
2886 * config/avr/avr.c (avr_output_function_prologue): Do not use
2887 current_function_name() in a label, use a local label instead.
2889 2005-03-20 David Edelsohn <edelsohn@gnu.org>
2891 * config/rs6000/rs6000.c (rs6000_generate_compare): Test
2892 flag_finite_math_only, not flag_unsafe_math_optimizations.
2894 2005-03-20 Kazu Hirata <kazu@cs.umass.edu>
2896 * builtins.c (fold_builtin_1): Update a call to
2897 targetm.fold_builtin.
2898 * hooks.c (hook_tree_tree_bool_null): Rename to
2899 hook_tree_tree_tree_bool_null. Take one more argument of type
2901 * hooks.h: Update the prototype of hook_tree_tree_bool_null.
2902 * target-def.h (TARGET_FOLD_BUILTIN): Define it as
2903 hook_tree_tree_tree_bool_null.
2904 * target.h (gcc_target): Update the prototype of fold_builtin.
2905 * config/alpha/alpha.c (alpha_fold_builtin): Take decomposed
2906 arguments of CALL_EXPR.
2907 * doc/tm.texi (TARGET_FOLD_BUILTIN): Update. Mention the
2910 2005-03-20 Jan Hubicka <jh@suse.cz>
2912 * cgraph.h (cgraph_node): Add prev_clone pointer.
2913 * cgraph.c (cgraph_remove_node): Remove from doubly linked chain.
2914 (cgraph_clone_node): Produce doubly linked chain.
2916 2005-03-20 Joseph S. Myers <joseph@codesourcery.com>
2918 * c-common.c (handle_aligned_attribute, check_function_sentinel,
2919 get_nonnull_operand, handle_sentinel_attribute,
2920 check_function_arguments_recurse): Do not strip NOPS from
2922 * c-decl.c (check_bitfield_type_and_width, build_enumerator):
2924 * c-format.c (get_constant): Likewise.
2925 * c-parser.c (c_parser_postfix_expression): Likewise.
2926 * c-typeck.c (set_init_index): Likewise.
2927 (convert_arguments): Don't check for NOP_EXPR containing integer
2930 2005-03-20 Kazu Hirata <kazu@cs.umass.edu>
2932 * builtins.c (fold_fixed_mathfn, fold_builtin_trunc,
2933 fold_builtin_floor, fold_builtin_ceil, fold_builtin_lround):
2934 Take decomposed arguments of CALL_EXPR.
2935 (fold_builtin_1): Update calls to the functions mentioned
2938 2005-03-20 Joseph S. Myers <joseph@codesourcery.com>
2940 * c-decl.c (check_bitfield_type_and_width): Require bit-field
2941 width to have integer type.
2942 (build_enumerator): Require enumerator value to have integer type.
2944 2005-03-19 Joseph S. Myers <joseph@codesourcery.com>
2946 * doc/extend.texi (__builtin_inf): Move statement about INFINITY
2949 2005-03-19 Joseph S. Myers <joseph@codesourcery.com>
2951 * c.opt (ansi, std=iso9899:1990, std=iso9899:1999,
2952 std=iso9899:199x): Correct descriptions.
2954 2005-03-19 Joseph S. Myers <joseph@codesourcery.com>
2956 * config.gcc: Consistently use solaris2.1[0-9]* instead of
2959 2005-03-19 Kazu Hirata <kazu@cs.umass.edu>
2961 * builtins.c (fold_builtin_memcpy): Take decomposed arguments
2963 (expand_builtin_memcpy, fold_builtin_1): Update calls to
2964 fold_builtin_memcpy.
2966 * builtins.c (fold_trunc_transparent_mathfn): Take decomposed
2967 arguments of CALL_EXPR.
2968 (fold_builtin_trunc, fold_builtin_floor, fold_builtin_ceil,
2969 fold_builtin_found, fold_builtin_1): Update calls to
2970 fold_trunc_transparent_mathfn.
2972 2005-03-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2975 * fold-const.c (fold_widened_comparison): Don't optimize casts of
2976 function pointers on targets that require function pointer
2978 (fold_sign_changed_comparison): Likewise.
2980 2005-03-19 Bernd Schmidt <bernd.schmidt@analog.com>
2982 * combine.c (try_combine): When changing the mode of a hard reg, make
2983 sure that doing so is valid.
2985 2005-03-19 Richard Sandiford <rsandifo@redhat.com>
2987 * config/avr/avr.c (avr_init_stack, avr_mcu_name): Make static.
2988 (TARGET_HANDLE_OPTION): Override default.
2989 (avr_handle_option): New function.
2990 * config/avr/avr.h (MASK_ALL_DEBUG, MASK_ORDER_1, MASK_INSN_SIZE_DUMP)
2991 (MASK_ORDER_2, MASK_NO_TABLEJUMP, MASK_INT8, MASK_NO_INTERRUPTS)
2992 (MASK_CALL_PROLOGUES, MASK_TINY_STACK, MASK_SHORT_CALLS)
2993 (TARGET_ORDER_1, TARGET_ORDER_2, TARGET_INT8, TARGET_NO_INTERRUPTS)
2994 (TARGET_INSN_SIZE_DUMP, TARGET_CALL_PROLOGUES, TARGET_TINY_STACK)
2995 (TARGET_NO_TABLEJUMP, TARGET_SHORT_CALLS, TARGET_ALL_DEBUG)
2996 (TARGET_SWITCHES, avr_init_stack, avr_mcu_name)
2997 (TARGET_OPTIONS): Delete.
2998 * config/avr/avr.opt: New file.
3000 2005-03-18 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
3002 * config/m32r/m32r-protos.h: Remove the prototypes for
3003 call_address_operand, symbolic_operand, seth_add3_operand,
3004 cmp_int16_operand, uint16_operand, reg_or_int16_operand,
3005 reg_or_uint16_operand, reg_or_cmp_int16_operand,
3006 two_insn_const_operand, move_src_operand,
3007 move_double_src_operand, move_dest_operand,
3008 eqne_comparison_operator, signed_comparison_operator,
3009 large_insn_p, conditional_move_operand, carry_compare_operand,
3010 m32r_block_immediate_operand, extend_operand,
3011 reg_or_eq_int16_operand, int8_operand, and
3012 reg_or_zero_operand.
3013 * config/m32r/m32r.c (call_address_operand, symbolic_operand,
3014 seth_add3_operand, int8_operand, cmp_int16_operand,
3015 uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
3016 reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
3017 reg_or_zero_operand, two_insn_const_operand, move_src_operand,
3018 move_double_src_operand, move_dest_operand,
3019 eqne_comparison_operator, signed_comparison_operator,
3020 extend_operand, small_insn_p, large_insn_p,
3021 conditional_move_operand, carry_compare_operand,
3022 m32r_block_immediate_operand): Move to predicates.md.
3023 (MAX_MOVE_BYTES): Move to m32r.h.
3024 * config/m32r/m32r.h (PREDICATE_CODES): Remove.
3025 * config/m32r/m32r.md: Include predicates.md.
3026 * config/m32r/predicates.md: New.
3028 2005-03-18 James E Wilson <wilson@specifixinc.com>
3031 * dwarf2out.c (declare_in_namespace): Ignore decls with an abstract
3034 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
3036 * config/mn10300/mn10300-protos.h: Remove the prototypes for
3037 call_address_operand, const_8bit_operand.
3038 * config/mn10300/mn10300.c (call_address_operand,
3039 const_8bit_operand, const_1f_operand): Move to predicates.md.
3040 * config/mn10300/mn10300.h (PREDICATE_CODES): Remove.
3041 * config/mn10300/mn10300.md: Include predicates.md.
3042 * config/mn10300/predicates.md: New.
3044 2005-03-18 Joseph S. Myers <joseph@codesourcery.com>
3046 * c-common.c, c-decl.c, c-format.c, c-typeck.c: Use %D for
3047 declarations in diagnostics and %E for identifiers, not %s.
3049 2005-03-18 Jan Hubicka <jh@suse.cz>
3050 Dale Johannesen <dalej@apple.com>
3052 * basic-block.h (scale_bbs_frequencies_int,
3053 scale_bbs_frequencies_gcov_type): Declare.
3054 * cfg.c (RDIV): New macro.
3055 (update_bb_frequency_for_threading): Fix.
3056 * basic-block.h (scale_bbs_frequencies_int,
3057 scale_bbs_frequencies_gcov_type): New.
3058 * cfgloopmanip.c (scale_bbs_frequencies): Kill.
3059 (scale_loop_frequencies, duplicate_loop_to_header_edge): Use
3060 scale_bbs_frequencies_int.
3061 * tree-ssa-loop-ch.c (copy_loop_headers): Fix profiling info.
3063 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
3065 * config/m32r/m32r-protos.h: Remove the prototypes for
3066 call_address_operand, symbolic_operand, seth_add3_operand,
3067 cmp_int16_operand, uint16_operand, reg_or_int16_operand,
3068 reg_or_uint16_operand, reg_or_cmp_int16_operand,
3069 two_insn_const_operand, move_src_operand,
3070 move_double_src_operand, move_dest_operand,
3071 eqne_comparison_operator, signed_comparison_operator,
3072 large_insn_p, conditional_move_operand, carry_compare_operand,
3073 m32r_block_immediate_operand, extend_operand,
3074 reg_or_eq_int16_operand, int8_operand, and
3075 reg_or_zero_operand.
3076 * config/m32r/m32r.c (call_address_operand, symbolic_operand,
3077 seth_add3_operand, int8_operand, cmp_int16_operand,
3078 uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
3079 reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
3080 reg_or_zero_operand, two_insn_const_operand, move_src_operand,
3081 move_double_src_operand, move_dest_operand,
3082 eqne_comparison_operator, signed_comparison_operator,
3083 extend_operand, small_insn_p, large_insn_p,
3084 conditional_move_operand, carry_compare_operand,
3085 m32r_block_immediate_operand): Move to predicates.md.
3086 (MAX_MOVE_BYTES): Move to m32r.h.
3087 * config/m32r/m32r.h (PREDICATE_CODES): Remove.
3088 * config/m32r/m32r.md: Include predicates.md.
3089 * config/m32r/predicates.md: New.
3091 * config/pa/pa-protos.h: Add prototypes for magic_milli and
3093 * config/pa/pa.c (reg_or_0_operand, call_operand_address,
3094 symbolic_operand, symbolic_memory_operand,
3095 reg_or_0_or_nonsymb_mem_operand, reg_before_reload_operand,
3096 indexed_memory_operand, move_dest_operand, move_src_operand,
3097 prefetch_cc_operand, prefetch_nocc_operand,
3098 reg_or_cint_move_operand, pic_label_operand, fp_reg_operand,
3099 arith_operand, arith11_operand, pre_cint_operand,
3100 post_cint_operan, arith_double_operand, ireg_or_int5_operand,
3101 ireg_operand, int5_operand, uint5_operand, int11_operand,
3102 uint32_operand, arith5_operand, and_operand, ior_operand,
3103 lhs_lshift_operand, lhs_lshift_cint_operand, arith32_operand,
3104 pc_or_label_operand, div_operand, plus_xor_ior_operator,
3105 shadd_operand, movb_comparison_operator,
3106 cmpib_comparison_operator): Move to predicates.md.
3107 (magic_milli, shadd_constant_p): Make it extern.
3108 * config/pa/pa.h (PREDICATE_CODES): Remove.
3109 * config/pa/pa.md: Include predicates.md.
3110 * config/pa/predicates.md: New.
3112 * config/v850/v850.h (PREDICATE_CODES): Remove a nonexistent
3115 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
3117 * hooks.c, hooks.h, intl.c, opts.h, prefix.c, tree-gimple.c,
3118 config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
3119 config/alpha/freebsd.h, config/alpha/linux.h,
3120 config/alpha/netbsd.h, config/alpha/osf5.h,
3121 config/alpha/vms.h, config/arc/arc.c, config/arc/arc.h,
3122 config/h8300/h8300-protos.h, config/h8300/h8300.c,
3123 config/h8300/h8300.h, config/ia64/unwind-ia64.c,
3124 doc/cppopts.texi: Update copyright.
3126 2005-03-18 Jan Hubicka <jh@suse.cz>
3129 * cgraph.c (cgraph_mark_reachable_node): Assert that it is not called
3131 * varasm.c (find_decl_and_mark_needed): Mark needed only when not
3134 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
3136 * tree-into-ssa.c (find_idf): Use VEC_quick_push instead of
3139 2005-03-18 Paolo Bonzini <bonzini@gnu.org>
3141 * combine.c (gen_binary): Remove.
3142 (known_cond, simplify_shift_const, find_split_point,
3143 combine_simplify_rtx, simplify_if_then_else, simplify_set,
3144 simplify_logical, expand_field_assignment, extract_left_shift,
3145 force_to_mode, if_then_else_cond, apply_distributive_law,
3146 simplify_and_const_int, simplify_shift_const, gen_lowpart_for_combine,
3147 simplify_comparison, reversed_comparison): Replace with
3148 simplify_gen_binary, simplify_gen_relational or
3149 distribute_and_simplify_rtx.
3150 (distribute_and_simplify_rtx): New function.
3152 2005-03-18 Alexey Neyman <alex.neyman@auriga.ru>
3153 Paolo Bonzini <gcc.gnu.org>
3155 * calls.c (setjmp_call_p, special_function_p): Update comments
3156 at the head of the functions.
3158 2005-03-18 Jan Hubicka <jh@suse.cz>
3160 * tree-cfg.c (fold_cond_expr_cond): Use boolean types for condition.
3162 * cgraph.c (cgraph_remove_node): Avoid loop in code deciding whether
3163 function body should be released; do not proactively release function
3164 bodies in non-unit-at-a-time mode.
3166 2005-03-18 Ralf Corsepius <ralf.corsepius@rtems.org>
3168 * config/i386/t-rtems-i386 (MULTILIBS): Remove k6, athlon,
3169 mno-fp-ret-in-387 multilib variants.
3171 2005-03-18 Richard Sandiford <rsandifo@redhat.com>
3173 * common.opt (m): Remove.
3174 * opts.c (handle_option): Pass 'm' options to set_target_switch if
3176 (common_handle_option): Remove OPT_m case.
3178 2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
3180 * builtins.c (fold_builtin_bitop): Take decomposed arguments
3182 (fold_builtin_1): Update a call to fold_builtin_bitop.
3184 * builtins.c (fold_builtin_signbit): Take decomposed arguments
3186 (fold_builtin_1): Update a call to fold_builtin_signbit.
3188 2005-03-17 Dorit Naishlos <dorit@il.ibm.com>
3190 PR tree-optimization/20474
3191 * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Check the
3192 size_type of the relevant pointer. Check for COMPLETE_TYPE_P.
3194 2005-03-17 Kazu Hirata <kazu@cs.umass.edu>
3196 * config/h8300/h8300-protos.h: Remove prototypes for
3197 general_operand_src, general_operand_dst, single_one_operand,
3198 single_zero_operand, call_insn_operand,
3199 two_insn_adds_subs_operand, small_call_insn_operand,
3200 jump_address_operand, bit_operand, bit_memory_operand,
3201 stack_pointer_operand, const_int_gt_2_operand,
3202 const_int_ge_8_operand, const_int_qi_operand,
3203 const_int_hi_operand, incdec_operand, bit_operator,
3204 nshift_operator, eqne_operator, gtle_operator,
3205 gtuleu_operator, iorxor_operator.
3206 Add prototypes for h8sx_shift_type h8sx_classify_shift and
3207 h8300_ldm_stm_parallel.
3208 * config/h8300/h8300.c (h8sx_shift_type,): Move to
3210 (SYMBOL_FLAG_FUNCVEC_FUNCTION, SYMBOL_FLAG_EIGHTBIT_DATA,
3211 SYMBOL_FLAG_TINY_DATA): Move to h8300.h.
3212 (h8300_ldm_stm_parallel): Make it extern.
3213 (h8300_ldm_parallel, h8300_stm_parallel,
3214 h8300_return_parallel, general_operand_src,
3215 general_operand_dst, h8300_dst_operand, h8300_src_operand,
3216 nibble_operand, reg_or_nibble_operand, single_one_operand,
3217 single_zero_operand, call_insn_operand,
3218 two_insn_adds_subs_operand, small_call_insn_operand,
3219 jump_address_operand, bit_operand, bit_memory_operand,
3220 stack_pointer_operand, const_int_gt_2_operand,
3221 const_int_ge_8_operand, const_int_qi_operand,
3222 const_int_hi_operand, incdec_operand, eqne_operator,
3223 gtle_operator, gtuleu_operator, iorxor_operator, bit_operator,
3224 h8sx_binary_memory_operator, h8sx_unary_memory_operator,
3225 h8sx_unary_shift_operator, h8sx_binary_shift_operator,
3226 nshift_operator): Move to predicates.md.
3227 * config/h8300/h8300.h (PREDICATE_CODES): Remove.
3228 * config/h8300/h8300.md: Include predicates.md.
3229 * config/h8300/predicates.md: New.
3231 2005-03-17 Richard Henderson <rth@redhat.com>
3233 * config.gcc (ia64*-*-hpux*): Add extra_options.
3234 * config/ia64/hpux.h (SUBTARGET_SWITCHES): Remove.
3235 (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
3236 * config/ia64/ia64.c (ia64_fixed_range_string): Remove.
3237 (ia64_tls_size_string, ia64_tune_string): Remove.
3238 (ia64_tune): Init to PROCESSOR_ITANIUM2.
3239 (TARGET_DEFAULT_TARGET_FLAGS): New.
3240 (TARGET_HANDLE_OPTION): New.
3241 (ia64_override_options): Move options parsing ...
3242 (ia64_handle_option): ... here. New.
3243 * config/ia64/ia64.h (target_flags, MASK_BIG_ENDIAN, MASK_GNU_AS,
3244 MASK_GNU_LD, MASK_NO_PIC, MASK_VOL_ASM_STOP, MASK_ILP32,
3245 MASK_REG_NAMES, MASK_NO_SDATA, MASK_CONST_GP, MASK_AUTO_PIC,
3246 MASK_INLINE_FLOAT_DIV_LAT, MASK_INLINE_FLOAT_DIV_THR,
3247 MASK_INLINE_INT_DIV_LAT, MASK_INLINE_INT_DIV_THR,
3248 MASK_INLINE_SQRT_LAT, MASK_INLINE_SQRT_THR, MASK_DWARF2_ASM,
3249 MASK_EARLY_STOP_BITS, TARGET_BIG_ENDIAN, TARGET_GNU_AS, TARGET_GNU_LD,
3250 TARGET_NO_PIC, TARGET_VOL_ASM_STOP, TARGET_ILP32, TARGET_REG_NAMES,
3251 TARGET_NO_SDATA, TARGET_CONST_GP, TARGET_AUTO_PIC,
3252 TARGET_INLINE_FLOAT_DIV_LAT, TARGET_INLINE_FLOAT_DIV_THR,
3253 TARGET_INLINE_INT_DIV_LAT, TARGET_INLINE_INT_DIV_THR,
3254 TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_INT_DIV, TARGET_INLINE_SQRT_LAT,
3255 TARGET_INLINE_SQRT_THR, TARGET_INLINE_SQRT, TARGET_DWARF2_ASM,
3256 TARGET_EARLY_STOP_BITS): Remove.
3257 (TARGET_ILP32): Default false.
3258 (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS): Remove.
3259 (enum ia64_inline_type): New.
3260 (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
3261 * config/ia64/ia64.md: Update for new definitions of
3262 TARGET_INLINE_INT_DIV, TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_SQRT.
3263 * config/ia64/ia64.opt: New file.
3264 * config/ia64/ilp32.opt: New file.
3266 2005-03-17 H.J. Lu <hongjiu.lu@intel.com>
3269 * config/ia64/unwind-ia64.c (_Unwind_FindTableEntry): Removed.
3271 2005-03-17 Kazu Hirata <kazu@cs.umass.edu>
3273 * config/h8300/h8300.c (h8300_init_once): Use MASK_H8300S_1
3274 instead of MASK_H8300S.
3275 * config/h8300/h8300.h (target_flags, MASK_H8300S, MASK_MAC,
3276 MASK_INT32, MASK_ADDRESSES, MASK_QUICKCALL, MASK_SLOWBYTE,
3277 MASK_NORMAL_MODE, MASK_RELAX, MASK_H8300H, MASK_ALIGN_300,
3278 MASK_H8300SX, TARGET_INT32, TARGET_ADDRESSES,
3279 TARGET_QUICKCALL, TARGET_SLOWBYTE, TARGET_H8300H,
3280 TARGET_H8300XS, TARGET_NORMAL_MODE, TARGET_ALIGN_300,
3281 TARGET_SWITCHES): Remove.
3282 (TARGET_H8300S): Redefine interms of TARGET_H8300S_1 and
3284 * config/h8300/h8300.opt: New.
3286 * config/alpha/alpha.opt, config/arc/arc.opt,
3287 config/h8300/h8300.opt, config/mips/mips.opt: Add copyright
3290 2005-03-17 Ian Lance Taylor <ian@airs.com>
3294 2005-03-17 Richard Sandiford <rsandifo@redhat.com>
3296 * config/arc/arc.c (arc_cpu_string): Make static. Default to "base"
3297 (arc_text_string, arc_data_string, arc_rodata_string): Make static.
3298 (TARGET_HANDLE_OPTION): Override default.
3299 (arc_handle_option): New function.
3300 (arc_init): Remove code to set arch_cpu_string.
3301 * config/arc/arc.h (target_flags, TARGET_MASK_MANGLE_CPU)
3302 (TARGET_MANGLE_CPU, TARGET_MASK_MANGLE_CPU_LIBGCC)
3303 (TARGET_MANGLE_CPU_LIBGCC, TARGET_MASK_ALIGN_LOOPS, TARGET_ALIGN_LOOPS)
3304 (TARGET_MASK_BIG_ENDIAN, TARGET_BIG_ENDIAN, TARGET_MASK_NO_COND_EXEC)
3305 (TARGET_NO_COND_EXEC, TARGET_SWITCHES, TARGET_DEFAULT)
3306 (SUBTARGET_SWITCHES, arc_cpu_string, arc_text_string, arc_data_string)
3307 (arc_rodata_string, TARGET_OPTIONS): Delete.
3308 * config/arc/arc.opt: New file.
3310 2005-03-17 Richard Henderson <rth@redhat.com>
3312 * doc/extend.texi (Weak Pragmas): New section.
3313 (attribute alias): Clarify that target must be in the same
3316 2005-03-17 Richard Henderson <rth@redhat.com>
3318 * config/alpha/alpha.opt: New file.
3319 * config/alpha/alpha.c (alpha_tune): New. Rename all existing uses
3321 (alpha_cpu_string, alpha_tune_string, alpha_tp_string,
3322 alpha_fprm_string, alpha_fptm_string): Make static.
3323 (alpha_tls_size_string): Remove.
3324 (alpha_handle_option): New.
3325 (override_options): Update for alpha_cpu/alpha_tune split.
3326 (alpha_file_start): Likewise.
3327 (TARGET_DEFAULT_TARGET_FLAGS): New.
3328 (TARGET_HANDLE_OPTION): New.
3329 * config/alpha/alpha.h (alpha_tune): Declare.
3330 (MASK_FP, MASK_FPREGS, TARGET_FPREGS, MASK_GAS, TARGET_GAS,
3331 MASK_IEEE_CONFORMANT, TARGET_IEEE_CONFORMANT, MASK_IEEE, TARGET_IEEE,
3332 MASK_IEEE_WITH_INEXACT, TARGET_IEEE_WITH_INEXACT, MASK_BUILD_CONSTANTS,
3333 TARGET_BUILD_CONSTANTS, MASK_FLOAT_VAX, TARGET_FLOAT_VAX, MASK_BWX,
3334 TARGET_BWX, MASK_MAX, TARGET_MAX, MASK_FIX, TARGET_FIX, MASK_CIX,
3335 TARGET_CIX, MASK_EXPLICIT_RELOCS, TARGET_EXPLICIT_RELOCS,
3336 MASK_SMALL_DATA, TARGET_SMALL_DATA, MASK_TLS_KERNEL, TARGET_TLS_KERNEL,
3337 MASK_SMALL_TEXT, TARGET_SMALL_TEXT, MASK_LONG_DOUBLE_128,
3338 TARGET_LONG_DOUBLE_128, MASK_CPU_EV5, TARGET_CPU_EV5, MASK_CPU_EV6,
3339 TARGET_CPU_EV6, MASK_SUPPORT_ARCH): Remove.
3340 (TARGET_SWITCHES, TARGET_OPTIONS): Remove.
3341 (TARGET_DEFAULT): Remove MASK_FP.
3342 (TARGET_FP): Redefined based on TARGET_SOFT_FP.
3343 (TARGET_SUPPORT_ARCH): Default on if HAVE_AS_EXPLICIT_RELOCS.
3344 (alpha_cpu_string, alpha_tune_string, alpha_fprm_string,
3345 alpha_fptm_string, alpha_tp_string, alpha_mlat_string,
3346 alpha_tls_size_string): Remove.
3347 * config/alpha/alpha.md (prefetch): Use alpha_cpu.
3348 (attribute tune): Rename from attribute cpu.
3349 * config/alpha/ev4.md: Update to match.
3350 * config/alpha/ev5.md, config/alpha/ev6.md: Likewise.
3351 * config/alpha/freebsd.h (TARGET_DEFAULT): Remove MASK_FP.
3352 * config/alpha/linux.h (TARGET_DEFAULT): Likewise.
3353 * config/alpha/netbsd.h (TARGET_DEFAULT): Likewise.
3354 * config/alpha/osf5.h (TARGET_DEFAULT): Likewise.
3355 * config/alpha/vms.h (TARGET_DEFAULT): Likewise.
3357 2005-03-16 James E. Wilson <wilson@specifixinc.com>
3359 * config/ia64/ia64.c (issue_nops_and_insn): Check first_insn attribute,
3360 and return without creating new state if before_nops_num is nonzero.
3361 * config/ia64/ia64.md (first_insn): New attribute.
3362 (alloc): Set it to yes.
3364 2005-03-16 Daniel Berlin <dberlin@dberlin.org>
3366 * tree-vectorizer.c (new_vec_stmt_info): Initialize
3367 STMT_VINFO_SUBVARS to NULL.
3368 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
3370 2005-03-16 Dale Johannesen <dalej@apple.com>
3372 * rtlanal.c (find_first_parameter_load): Rewrite to
3373 return actual first param load or the call if none,
3374 instead of first in block, when not all loads exist.
3376 2005-03-16 Roger Sayle <roger@eyesopen.com>
3378 * optabs.c (expand_copysign_absneg): Make static.
3379 * optabs.h (expand_copysign_absneg): Delete prototype.
3380 * config/rs6000/rs6000.md (copysigntf3): Delete pattern.
3382 2005-03-16 Richard Henderson <rth@redhat.com>