X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2FChangeLog;h=cc32e36b84d751966cb6abddec5d050b793d9565;hb=9dfa5030126d339da109ebdee006ec9fab55caaf;hp=3a7dba7cbeee3dee6053ef5bb077e7ad7f523923;hpb=ce572eff399f9e62be730401244e53f31bc7fde2;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3a7dba7cbee..cc32e36b84d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,947 @@ +2005-04-25 Steven Bosscher + + Fix PR tree-optimization/21173 + + * tree-ssa-pre.c (create_expression_by_pieces): Simplify code. + Unshare expression we pass to force_gimple_operand. + +2005-04-25 J"orn Rennecke + Stephen Clarke + Roger Sayle + + PR rtl-optimization/20413 + * cfgrtl.c (redirect_edge_and_branch): Use Pmode instead of + VOIDmode for LABEL_REF. + * final.c (shorten_branches): Likewise. + * jump.c (mark_all_labels, redirect_exp_1): Likewise. + * loop.c (reg_dead_after_loop): Likewise. + * varasm.c (decode_addr_const): Likewise. + * doc/rtl.texi: Document mode requirement for LABEL_REF. + +2005-04-25 Ralf Corsepius + + * config.gcc (avr-*-*): Remove redundant "case". + +2005-04-25 Kazu Hirata + + * tree-vect-analyze.c (vect_mark_relevant): Take + VEC(tree,heap) instead of varray_type as an argument. + (vect_mark_stmts_to_be_vectorized): Change the type of + worklist to VEC(tree,heap). Adjust uses of worklist. + +2005-04-24 Devang Patel + + * config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New. + +2005-04-24 Ian Lance Taylor + + * c-semantics.c (build_stmt): Remove test of specific tree codes + for TREE_SIDE_EFFECTS handling. + +2005-04-24 Per Bothner + + * c-opts.c (finish_options): Make the line-number of the + location 0, as assumed elsewhere, rather than 1. + +2005-04-24 Kazu Hirata + + * tree-ssa-uncprop.c (equiv_stack): Change the type o + VEC(tree,heap). + (tree_ssa_uncprop, uncprop_finalize_block, + uncprop_initialize_block): Update uses of equiv_stack. + +2005-04-24 Richard Henderson + + PR rtl-opt/21163 + * simplify-rtx.c (simplify_binary_operation) : Check + for SCALAR_INT_MODE_P instead of not MODE_CC before returning + constm1_rtx. + : Use CONST0_RTX. + : Use CONST0_RTX and CONST1_RTX. + : Likewise. + +2005-04-24 Kaveh R. Ghazi + + * collect2.c (main): Unlock the stdio streams. + * gcc.c (main): Likewise. + * gcov-dump.c (main): Likewise. + * gcov.c (main): Likewise. + * gen-protos.c (main): Likewise. + * gensupport.c (init_md_reader_args_cb): Likewise. + * protoize.c (main): Likewise. + * toplev.c (general_init): Likewise. + +2005-04-24 Jakub Jelinek + + PR middle-end/20991 + * cgraph.h (cgraph_local_info): Add vtable_method field. + * varasm.c (mark_decl_referenced): If cgraph_global_info_ready + and node is vtable_method, finalized and not reachable, don't do + anything. + +2005-04-24 Kazu Hirata + + * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Use + COMPARISON_CLASS_P. + * tree-ssa-pre.c (create_value_expr_from): Use + CONSTANT_CLASS_P and REFERENCE_CLASS_P. + * tree-ssa-propagate.c (stmt_makes_single_load, + stmt_makes_single_store): Use REFERENCE_CLASS_P. + * tree-vect-transform.c (vect_is_simple_cond): Use + COMPARISON_CLASS_P. + * tree-vrp.c (extract_range_from_assert, + build_assert_expr_for, fp_predicate, has_assert_expr): Use + COMPARISON_CLASS_P. + + * tree-ssa-live.c (build_tree_conflict_graph): Change the type + of tpa_to_clear to VEC(int,heap). Update uses of + tpa_to_clear. Free tpa_to_clear at the end. + +2005-04-24 Andrew Pinski + + * tree.h (TREE_THIS_VOLATILE): Document the effect on a + function decl. + +2005-04-24 Nathan Sidwell + + * config/rs6000/rs6000.c (rs6000_override_options): Use gcc_assert + and gcc_unreachable as appropriate. + (num_insns_constant, output_vec_const_move, + build_mask64_2_operands, rs6000_output_dwarf_dtprel, + rs6000_emit_set_const, rs6000_emit_move, + spe_build_register_parallel, function_arg, + rs6000_move_block_from_reg, altivec_expand_predicate_builtin, + spe_expand_predicate_builtin, spe_expand_evsel_builtin, + rs6000_expand_builtin, spe_init_builtins, altivec_init_builtins, + rs6000_common_init_builtins, expand_block_clear, + expand_block_move, validate_condition_mode, ccr_bit, extract_MB, + extract_ME, rs6000_get_some_local_dynamic_name, + rs6000_output_function_entry, print_operand, + print_operand_address, rs6000_generate_compare, rs6000_emit_sCOND, + output_cbranch, output_e500_flip_gt_bit, + rs6000_emit_vector_compare, rs6000_emit_vector_compare, + rs6000_emit_cmove, rs6000_emit_minmax, rs6000_split_multireg_move, + compute_save_world_info, rs6000_stack_info, + rs6000_emit_load_toc_table, rs6000_frame_related, + spe_synthesize_frame_save, rs6000_emit_epilogue, + rs6000_output_function_epilogue, rs6000_hash_constant, output_toc, + output_function_profiler, rs6000_trampoline_size, + rs6000_initialize_trampoline, find_addr_reg, + rs6000_machopic_legitimize_pic_address, + rs6000_initial_elimination_offset, + rs6000_dbx_register_number): Likewise. + * config/rs6000/rs6000.md (*fix_truncdfsi2_internal, + *movdf_hardfloat32, *movdf_softfloat32, *fix_trunctfsi2_internal, + *movti_power, *movti_string, call, call_value, sibcall, + sibcall_value): Likewise. + * config/rs6000/spe.md (*movdf_e500_double, + *movv2si_internal): Likewise. + * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): Remove 'abort' + from comment. + +2005-04-24 Richard Henderson + + PR target/21101 + * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Move guts to ... + * config/i386/i386.c (ix86_cannot_change_mode_class): ... here. + Deny modes smaller than 4 bytes. + * config/i386/i386-protos.h: Update. + +2005-04-24 Ralf Corsepius + + * config.gcc (h8300-*-rtems*): Add h8300-*-rtemscoff*. + Switch h8300-*-rtems* to ELF. + +2005-04-24 Kazu Hirata + + * vec.h (VEC_safe_grow): Replace grow with safe_grow. + +2005-04-23 Kazu Hirata + + * ipa-inline.c, tree-ssa-operands.h: Fix comment typos. + +2005-04-23 Richard Guenther + + PR middle-end/21082 + * fold-const.c: Fold &a[i]-&a[j] to i-j. + +2005-04-23 Zdenek Dvorak + + * tree-ssa-loop-niter.c (tree_simplify_using_condition): Expand simple + definitions of ssa names in condition. Split recusive part to ... + (tree_simplify_using_condition_1): New function. + (expand_simple_operations): New function. + +2005-04-23 Zdenek Dvorak + + * tree-ssa-loop-ivopts.c (struct cost_pair): Add value field. + (find_interesting_uses_cond): Do not use integer_zerop and + integer_nonzerop to check for integer constants. + (set_use_iv_cost): Record the value field. + (determine_use_iv_cost_generic, determine_use_iv_cost_address, + determine_use_iv_cost_outer): Set the value field of the cost pair. + (may_eliminate_iv): Do not return the comparison code. + (iv_elimination_compare): New function. + (determine_use_iv_cost_condition): Set the value field. Record + noneliminable invariants correctly. + (rewrite_use_compare, rewrite_use_outer): Use the value field. + +2005-04-23 DJ Delorie + + * diagnostic.c (warning): Accept parameter to classify warning option. + (warning0): New, for when a pointer to an error() like function is needed. + * errors.c (warning): Likewise. + * errors.h (warning, warning0): Adjust prototypes. + * toplev.h (warning, warning0): Likewise. + + * attribs.c, builtins.c, c-common.c, c-decl.c, c-format.c, + c-gimplify.c, c-lex.c, c-objc-common.c, c-opts.c, c-parser.c, + c-pragma.c, c-typeck.c, calls.c, cgraph.c, coverage.c, emit-rtl.c, + fold-const.c, fortran/trans-decl.c, function.c, gcse.c, + genautomata.c, haifa-sched.c, opts.c, passes.c, regclass.c, + reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c, + tree-dump.c, tree-inline.c, tree-mudflap.c, tree-optimize.c, + tree-ssa.c, tree.c, varasm.c: Adjust warning() callers. + + * config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c, + config/avr/avr.c, config/bfin/bfin.c, config/c4x/c4x-c.c, + config/c4x/c4x.c, config/cris/cris.c, config/darwin-c.c, + config/darwin.c, config/darwin.h, config/h8300/h8300.c, + config/i386/cygming.h, config/i386/djgpp.h, config/i386/i386.c, + config/i386/winnt.c, config/ia64/ia64-c.c, config/ia64/ia64.c, + config/ip2k/ip2k.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c, + config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.c, + config/mmix/mmix.c, config/ns32k/ns32k.c, config/pa/pa-hpux11.h, + config/pa/pa.c, config/rs6000/aix43.h, config/rs6000/aix51.h, + config/rs6000/aix52.h, config/rs6000/darwin.h, + config/rs6000/rs6000-c.c, config/rs6000/rs6000.c, + config/s390/s390.c, config/sh/sh.c, config/sh/sh.h, + config/sh/symbian.c, config/sol2-c.c, config/sol2.c, + config/stormy16/stormy16.c, config/v850/v850-c.c, + config/v850/v850.c, config/xtensa/xtensa.c: Adjust warning() + callers. + +2005-04-23 Richard Henderson + + PR rtl-opt/21102 + * simplify-rtx.c (simplify_binary_operation): Fix mode check before + performing some integral scalar simplifications. + +2005-04-23 Richard Henderson + + PR target/21099 + * config/i386/i386.c (ix86_split_to_parts): Use proper mode when + simplifying CONST_VECTOR. + +2005-04-23 Kazu Hirata + + * tree-ssa-live.c (live_worklist): Take a stack allocated on + heap as an argument. Update uses of stack. + (calculate_live_on_entry): Allocate stack on heap. + + * tree-ssa-live.c (build_tree_conflict_graph): Allocate + partition_link and tpa_nodes on heap. + + * tree-ssa-dce.c (worklist): Change to VEC(tree,heap). + (mark_stmt_necessary, propagate_necessity, + mark_really_necessary_kill_operand_phis): Update uses of + worklist. + (tree_dce_init): Allocate worklist using VEC_alloc. + (tree_dce_done): Free worklist using VEC_free. + +2005-04-23 Mike Stump + + * config/darwin.c (machopic_indirection_name): Don't use + quotes needlessly. + (darwin_emit_unwind_label): Use user_label_prefix instead of + "_". + +2005-04-23 Kazu Hirata + + * final.c, ipa-inline.c, varasm.c: Fix comment typos. + +2005-04-23 Hans-Peter Nilsson + + * config.gcc : Specify .opt files. + * config/cris/cris.opt, config/cris/elf.opt, config/cris/aout.opt, + config/cris/linux.opt: New files. + * config/cris/aout.h (CRIS_SUBTARGET_SWITCHES) + (CRIS_SUBTARGET_LONG_OPTIONS): Don't define. + (TARGET_ELF): Override to 0. + (CRIS_SUBTARGET_HANDLE_OPTION): Override to handle -melinux and + -melinux-stacksize=N. + * config/cris/cris.c: (cris_handle_option): New function. + (TARGET_DEFAULT_TARGET_FLAGS): Override. + (TARGET_HANDLE_OPTION): Override to cris_handle_option. + (cris_override_options): Use MASK_*, not TARGET_MASK_*. + * config/cris/cris.h (TARGET_MASK_SVINTO, TARGET_SVINTO, + (TARGET_MASK_CCINIT, TARGET_CCINIT, TARGET_MASK_PDEBUG) + (TARGET_PDEBUG, TARGET_MASK_SIDE_EFFECT_PREFIXES) + (TARGET_SIDE_EFFECT_PREFIXES, TARGET_MASK_EXPAND_MUL) + (TARGET_EXPAND_MUL, TARGET_MASK_STACK_ALIGN, TARGET_STACK_ALIGN) + (TARGET_MASK_CONST_ALIGN, TARGET_CONST_ALIGN) + (TARGET_MASK_DATA_ALIGN, TARGET_DATA_ALIGN) + (TARGET_MASK_PROLOGUE_EPILOGUE, TARGET_PROLOGUE_EPILOGUE) + (TARGET_MASK_ETRAX4_ADD, TARGET_ETRAX4_ADD) + (TARGET_MASK_ALIGN_BY_32, TARGET_ALIGN_BY_32, TARGET_MASK_ELF) + (TARGET_ELF, TARGET_MASK_LINUX, TARGET_LINUX) + (TARGET_MASK_AVOID_GOTPLT, TARGET_AVOID_GOTPLT) + (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG, TARGET_SWITCHES) + (CRIS_SUBTARGET_SWITCHES, TARGET_OPTIONS) + (CRIS_SUBTARGET_LONG_OPTIONS): Don't define. + (TARGET_LINUX): Define 0. + (TARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*. + (CRIS_SUBTARGET_DEFAULT): Define to 0, not TARGET_MASK_ELF. + (CRIS_SUBTARGET_DEFAULT): New empty default macro. + * config/cris/linux.h (CRIS_SUBTARGET_SWITCHES): Don't define. + (TARGET_LINUX): Override to 1. + (CRIS_SUBTARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*. + +2005-04-23 Nathan Sidwell + + * haifa-sched.c (schedule_block): Fix thinko in previous + assertification patch. + +2005-04-23 Richard Sandiford + + * config.gcc (hppa[12]*-*-hpux10*): Add pa/pa-hpux.opt to + $extra_options. Also add pa/pa-hpux1010.opt for hpux10.[1-9]*. + (hppa*64*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file. Add + pa/pa-hpux.opt, pa/pa-hpux1010.opt and pa/pa64-hpux.opt to + $extra_options. Also add pa/pa-hpux1111.opt for hpux11.[1-9]*. + (hppa[12]*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file. Add + pa/pa-hpux.opt to $extra_options. Also add pa/pa-hpux1111.opt + for hpux11.[1-9]*. + * config/pa/pa.h (architecture_type, rtx_def, pa_arch_string, pa_arch) + (pa_fixed_range_string, pa_cpu_string, pa_unix_string, target_flags) + (MASK_PA_11, MASK_DISABLE_FPREGS, TARGET_DISABLE_FPREGS) + (MASK_NO_SPACE_REGS, TARGET_NO_SPACE_REGS, MASK_JUMP_IN_DELAY) + (TARGET_JUMP_IN_DELAY, MASK_DISABLE_INDEXING, TARGET_DISABLE_INDEXING) + (MASK_PORTABLE_RUNTIME, TARGET_PORTABLE_RUNTIME, MASK_GAS, TARGET_GAS) + (MASK_SOFT_FLOAT, TARGET_SOFT_FLOAT, MASK_LONG_LOAD_STORE) + (TARGET_LONG_LOAD_STORE, MASK_FAST_INDIRECT_CALLS) + (TARGET_FAST_INDIRECT_CALLS, MASK_BIG_SWITCH, TARGET_BIG_SWITCH) + (MASK_PA_20, MASK_SIO, TARGET_SIO, MASK_GNU_LD, TARGET_GNU_LD) + (MASK_LONG_CALLS, TARGET_LONG_CALLS, TARGET_PA_11, TARGET_PA_20) + (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS) + (SUBTARGET_OPTIONS): Delete. + (TARGET_PA_10): Redefine in terms of TARGET_PA_11 and TARGET_PA_20. + (TARGET_SCHED_DEFAULT): Define to a PROCESSOR_* enum (PROCESSOR_8000) + instead of a string. + * config/pa/pa.c (pa_arch, pa_arch_string, pa_fixed_range_string) + (pa_cpu_string, pa_unix_string): Delete. + (pa_cpu): Initialize to TARGET_SCHED_DEFAULT. + (flag_pa_unix): Initialize based on TARGET_HPUX_11_11 and + TARGET_HPUX_10_10. + (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults. + (pa_handle_option): New function. + (override_options): Remove handling of -march=, -mfixed-range=, + -mschedule= and -munix=. + * config/pa/pa-hpux.h (SUBTARGET_SWITCHES): Delete. + * config/pa/pa-hpux1010.h (SUBTARGET_OPTIONS): Delete. + * config/pa/pa-hpux10.h (SUBTARGET_OPTIONS): Delete. + * config/pa/pa-hpux1111.h (SUBTARGET_OPTIONS): Delete. + * config/pa/pa-hpux11.h (SUBTARGET_OPTIONS): Delete. + * config/pa/pa64-hpux.h (SUBTARGET_SWITCHES): Delete. + * config/pa/pa64-start.h (TARGET_PA_11, TARGET_PA_20): #undef before + redefining. + * config/pa/pa.opt: New file. + * config/pa/pa-hpux.opt: New file. + * config/pa/pa-hpux1010.opt: New file. + * config/pa/pa-hpux1111.opt: New file. + * config/pa/pa64-hpux.opt: New file. + +2005-04-22 David S. Miller + + * rtl.h (CONST_DOUBLE): Fix comment, a CONST_DOUBLE holds an + integer when it's mode is VOIDmode not DImode. + +2005-04-22 Geoffrey Keating + + * config/rs6000/rs6000.md (sync_add_internal, + sync_addshort_internal, sync_sub_internal, sync_andsi_internal, + sync_anddi_internal, sync_boolsi_internal, sync_booldi_internal, + sync_boolc_internal, sync_boolc_internal2, + sync_boolcc_internal, sync_lock_test_and_set): Use + "bne- $-xxx" rather than local labels. + (sync_lock_release): Add second operand. + (lwsync): Use .long rather than a more meaningful opcode. + * doc/md.texi (Standard Names): Add description of second + parameter to sync_lock_test_and_set. + +2005-04-23 Kazu Hirata + + PR tree-optimization/21088 + * fold-const.c (fold_unary, fold_binary, fold_ternary): + Export. + * tree-vrp.c (compare_values): Use fold_binary to compare + pointers. Use boolean_type_node as the type of a comparison + expression being folded. + * tree.h: Add prototypes for fold_unary, fold_binary, + fold_ternary. + + * tree-ssa-dom.c: Fix formatting. + +2005-04-22 Diego Novillo + + * Makefile.in (tree-into-ssa.o): Add dependency on PARAMS_H. + * lambda-code.c (perfect_nestify): Mark virtual operands in + the moved statement for renaming. + * params.def (PARAM_MIN_VIRTUAL_MAPPINGS): Define. + (PARAM_VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define. + * params.h (MIN_VIRTUAL_MAPPINGS): Define. + (VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define. + * tree-flow.h (struct var_ann_d): Update comments. + (rewrite_to_new_ssa_names_bb, rewrite_to_new_ssa_names, + allocate_ssa_names, find_phi_node_for, dump_tree_ssa, + debug_tree_ssa, debug_def_blocks, dump_tree_ssa_stats, + debug_tree_ssa_stats, rewrite_ssa_into_ssa, + dump_repl_tbl, debug_repl_tbl, dump_names_replaced_by, + debug_names_replaced_by): Remove declarations. + (delete_update_ssa, get_current_def, set_current_def): Declare. + (rewrite_into_loop_closed_ssa): Add new argument. Update + all callers. + * tree-into-ssa.c: Include params.h. + (old_virtual_ssa_names): Remove. Update all users. + (need_to_replace_names_p): Remove. Update all users. + (struct update_ssa_stats_d): Declare. + (update_ssa_stats): New local. + (dump_tree_ssa, debug_tree_ssa, debug_def_blocks, + dump_tree_ssa_stats, debug_tree_ssa_stats, + dump_update_ssa, debug_update_ssa, + dump_names_replaced_by, debug_names_replaced_by): Declare. + (get_current_def, set current_def): Make extern. + (is_old_name, is_new_name): Protect against references + past the end of the sets. + (add_new_name_mapping): Assert that OLD and NEW are + different SSA names for the same symbol. + When adding a virtual mapping, update stats for virtual + mapping heuristic. + (insert_phi_nodes_for): If UPDATE_P is true, create the + LHS of the new PHI by duplicating SSA name VAR. + (insert_phi_nodes_1): Remove. Update all users. + (insert_phi_nodes): Remove second argument. Update all + users. + (maybe_replace_use, maybe_replace_def): New. + (rewrite_update_stmt): Call them. + (mark_def_interesting): Remove calls to is_gimple_reg. + (prepare_phi_args_for_update): Remove. Update all users. + (prepare_block_for_update): Only process virtual operands + and GIMPLE registers in normal form. + (prepare_use_sites_for): New. + (prepare_names_to_update): Rename from prepare_def_sites. + Call prepare_use_sites_for. + (dump_update_ssa): Rename from dump_repl_tbl. + Update all users. + Show statistics for virtual mapping heuristic. + (debug_update_ssa): Rename from debug_debug_repl_tbl. + (init_update_ssa): Initialize UPDATE_SSA_STATS. + (delete_update_ssa): Make extern. + (mark_set_for_renaming): If the set is empty, do nothing. + (release_ssa_name_after_update_ssa): Update comment. + (insert_updated_phi_nodes_for): Do not remove existing + PHI nodes for symbols. + (switch_virtuals_to_full_rewrite_p): New. + (switch_virtuals_to_full_rewrite): New. + (update_ssa): Call them. + Clear REWRITE_THIS_STMT and REGISTER_DEFS_IN_THIS_STMT + for every statement before updating. + If all the names in NEW_SSA_NAMES have been marked for + removal, do nothing. + Only start at the top of the CFG if there are symbols in + SYMS_TO_RENAME. + (ssa_rewrite_finalize_block): Remove. + (ssa_register_new_def): Remove. + (ssa_rewrite_stmt): Remove. + (ssa_rewrite_phi_arguments): Remove. + (ssa_rewrite_initialize_block): Remove. + (ssa_mark_def_sites): Remove. + (ssa_mark_def_sites_initialize_block): Remove. + (ssa_mark_phi_uses): Remove. + (rewrite_ssa_into_ssa): Remove. + * tree-phinodes.c (find_phi_node_for): Remove. + * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): + Call update_ssa. + * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): + Remove calls to verify_dominators and + verify_loop_structure. + (tree_unswitch_single_loop): Call update_ssa. + * tree-ssa.c (verify_ssa): Assert that need_ssa_update_p + returns false. + Call verify_stmts. + (delete_tree_ssa): Assert that need_ssa_update_p returns + false. + * tree-vect-transform.c (vect_transform_loop): Call update_ssa. + * tree-vectorizer.c (allocate_new_names, rename_def_op, + free_new_names): Remove. Update all users. + (rename_use_op): Call get_current_def. + (rename_variables_in_bb): Do not handle any real or + virtual definition. + (slpeel_update_phis_for_duplicate_loop): Call + get_current_def and set_current_def instead of using + SSA_NAME_AUX. + (slpeel_update_phi_nodes_for_guard2): Reformat comments. + (slpeel_can_duplicate_loop_p): Call need_ssa_update_p, + ssa_names_to_replace and delete_update_ssa. + * doc/invoke.texi: Document --param min-virtual-mappings + and --param virtual-mappings-ratio. + +2005-04-22 Diego Novillo + + * tree-cfg.c (tree_duplicate_bb): Call create_new_def_for + for newly created PHI nodes. + Call create_new_def_for for every new V_MAY_DEF and + V_MUST_DEF on the copied statement. + (struct ssa_name_map_entry): Remove. + (ssa_name_map_entry_hash): Remove. + (ssa_name_map_entry_eq): Remove. + (allocate_ssa_names): Remove. + (rewrite_to_new_ssa_names_def): Remove. + (rewrite_to_new_ssa_names_use): Remove. + (rewrite_to_new_ssa_names_bb): Remove. + (rewrite_to_new_ssa_names): Remove. + (tree_duplicate_sese_region): Remove variables ver, + definitions, phi, ssa_name_map and bi. + Call need_ssa_update_p instead of any_marked_for_rewrite_p. + Call update_ssa. + * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call + update_ssa instead of rewrite_ssa_into_ssa. + * tree-ssa-loop-manip.c (add_exit_phis_edge): Call + create_new_def_for. + (find_uses_to_rename_use): Add argument 'need_phis'. + (find_uses_to_rename_stmt): Do not scan virtual operands. + (find_uses_to_rename): Only scan PHI nodes for + non-virtual names. + (rewrite_into_loop_closed_ssa): Call update_ssa. + (check_loop_closed_ssa_use): Ignore virtual operands. + (check_loop_closed_ssa_stmt): Likewise. + (verify_loop_closed_ssa): Do nothing if CURRENT_LOOPS is + NULL. + (rename_variables, set_phi_def_stmts): Remove. + (tree_duplicate_loop_to_header_edge): Reformat comment. + Remove variables BB, I and DEFINITIONS. + Call need_ssa_update_p. + Call update_ssa. + (lv_adjust_loop_header_phi): Reformat comment. + * tree-ssanames.c (ssa_names_to_rewrite): Remove. + (marked_for_rewrite_p, any_marked_for_rewrite_p, + mark_for_rewrite, unmark_all_for_rewrite, + marked_ssa_names): Remove. Update all users. + (release_ssa_name): If VAR has been registered for SSA + updating, do nothing. + * tree-vrp.c (new_ssa_names, old_ssa_names): Remove. + (build_assert_expr_for): Call register_new_name_mapping. + (insert_range_assertions): Update call to update_ssa. + * tree.h (mark_for_rewrite, unmark_all_for_rewrite, + marked_for_rewrite_p, any_marked_for_rewrite_p, + marked_ssa_names): Remove. + +2005-04-22 Jeff Law + + * tree-ssa-dom.c (block_defs_stack): Remove, no longer needed. + (restore_currdefs_to_original_value): Likewise. + (register_definitions_for_stmt): Likewise. + (tree_ssa_dominator_optimize): No longer initialize CURRENT_DEF + for each variable. Do not allocate/free block_defs_stack either. + Do not iterate if we just thread jumps. Only iterate if the + tree_cleanup_cfg does useful work (temporary). + (dom_opt_initialize_block): No longer push a marker on + BLOCK_DEFS_STACK. + (dom_opt_finalize_block): Removal call to restore currdefs. + Relax restrictions for recording edge equivalences. + (record_equivalences_from_phis): No longer need to track + CURRENT_DEF. + (optimize_stmt): Similarly. + (thread_across_edge): Simplify by removing the requirement that + statements in the block we are threading through must be nops. + (initialize_hash_element): Handle GOTO_EXPR. + +2005-04-22 David S. Miller + + * sched-vis.c (print_value): Use CONST_DOUBLE_LOW and + CONST_DOUBLE_HIGH. + * config/sparc/sparc.c (sparc_rtx_costs): Likewise, and + fix check on CONST_DOUBLE mode. It should be VOIDmode + when it is representing an integer. + +2005-04-22 Nathan Sidwell + + * builtins.c (gimplify_va_arg_expr): Reword comments to avoid + 'abort'. Use gcc_assert and gcc_unreachable as appropriate. + * c-format.c (get_constant, decode_format_attr, get_flag_spec, + find_char_info_specifier_index, + find_length_info_modifier_index): Likewise. + * c-typeck.c (composite_type, pop_init_level): Likewise. + * combine.c (cant_combine_insn_p, try_combine): Likewise. + * cse.c (cse_insn): Likewise + * dominance.c (calc_dfs_tree): Likewise + dwarf2out.c (loc_descriptor_from_tree_1, + add_abstract_origin_attribute, force_decl_die, + force_type_die): Likewise + emit-rtl.c (operand_subword_force): Likewise + explow.c (hard_function_value): Likewise + expmed.c (store_bit_field, expand_divmod, + emit_store_flag_force): Likewise + expr.c (emit_move_multi_word, store_expr, + expand_expr_real_1): Likewise + final.c (this_is_asm_operands, shorten_branches, final_scan_insn, + output_operand): Likewise + flow.c (recompute_reg_usage): Likewise + * function.c (assign_stack_temp_for_type, assign_temp, + handle_epilogue_set): Likewise + * genextract.c (main): Likewise + * gimplify.c (mostly_copy_tree_r, gimplify_return_expr, + gimplify_modify_expr_rhs, gimplify_expr): Likewise + * haifa-sched.c (ready_lastpos, ready_remove_first, ready_element, + ready_remove, rm_line_notes, rm_other_notes, + schedule_block): Likewise + mips-tfile.c (copy_object, out_of_bounds): Likewise + +2005-04-22 David Edelsohn + + PR target/20813 + * config/rs6000/default64.h (TARGET_DEFAULT): Add MASK_PPC_GFXOPT. + * config/rs6000/rs6000.c (processor_target_table): Rename rs64a to + rs64. Add MASK_PPC_GFXOPT to powerpc64 and rs64. + (rs6000_init_libfuncs): Set TFmode optabs to xlq names if + TARGET_XL_COMPAT. + * doc/invoke.texi (PowerPC options): Change rs64a to rs64. + +2005-04-22 Nathan Sidwell + + * lambda-code.c: Define VEC(int,heap), VEC(lambda_loop,heap). + (gcc_tree_to_linear_expression): Convert to heap allocated + vectors. + (gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest, + lbv_to_gcc_expression, lle_to_gcc_expression, + lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest, + perfect_nestify): Likewise. + lambda.h (gcc_loopnest_to_lambda_loopnest, + lambda_loopnest_to_gcc_loopnest): Likewise. + tree-loop-linear.c (linear_transform_loops): Likewise. + +2005-04-22 Eric Botcazou + + * config/sparc/predicates.md (arith_double_operand): Use + trunc_int_for_mode if HOST_BITS_PER_WIDE_INT >=64. + * config/sparc/sparc.md (movqi, movhi, movsi, movqi): Use gen_int_mode. + (DImode, DFmode constant splitters): Likewise. Remove code for + TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT < 64. + (logical constant splitters): Use const_int_operand predicate. + (lshrsi3_extend): Remove code for TARGET_ARCH64 && + HOST_BITS_PER_WIDE_INT < 64. + +2005-04-22 Nathan Sidwell + + * config/pa/pa.c (legitimize_pic_address): Use gcc_assert and + gcc_unreachable as appropriate. + (force_mode, emit_move_sequence, singlemove_string, + output_move_double, output_fp_move_double, find_addr_reg, + output_block_move, output_block_clear, output_and, + output_64bit_and, output_ior, output_64bit_ior, store_reg_modify, + pa_adjust_cost, pa_issue_rate, print_operand, + output_global_address, output_arg_descriptor, output_cbranch, + output_lbranch, output_bb, output_bvb, output_dbra, output_movb, + output_call): Likewise. + * config/pa/pa.md (call, call_value, sibcall, sibcall_value, + prefetch, prefetch_cc, prefetch_nocc): Likewise. + +2005-04-22 Zdenek Dvorak + + * Makefile.in (LIBGCOV): Add _gcov_interval_profiler, + _gcov_pow2_profiler and _gcov_one_value_profiler. + (tree-profile.o): Add GGC_H and gt-tree-profile.h dependency. + (GTFILES): Add $(srcdir)/tree-profile.c. + * gcov-io.h (__gcov_interval_profiler, __gcov_pow2_profiler, + __gcov_one_value_profiler): Declare. + * gimplify.c (force_gimple_operand): Check whether the statements + should be produced in ssa form. + (force_gimple_operand_bsi): New function. + * libgcov.c (__gcov_interval_profiler, __gcov_pow2_profiler, + __gcov_one_value_profiler): New functions. + * rtl-profile.c (rtl_gen_pow2_profiler): Only measure whether + the profiled value is a power of two or not. + * tree-cfg.c (tree_block_ends_with_condjump_p): Handle empty blocks. + * tree-flow.h (in_ssa_p): Declare. + (force_gimple_operand_bsi): Declare. + * tree-into-ssa.c (in_ssa_p): New variable. + (rewrite_into_ssa): Set in_ssa_p. + * tree-outof-ssa.c (rewrite_out_of_ssa): Set in_ssa_p. + * tree-profile.c: Include ggc.h and gt-tree-profile.h. + (gcov_type_node, tree_interval_profiler_fn, tree_pow2_profiler_fn, + tree_one_value_profiler_fn): New variables. + (tree_init_edge_profiler): Initialize the profiler function decls. + (tree_gen_edge_profiler): Use global gcov_type_node. + (prepare_instrumented_value): New function. + (tree_gen_interval_profiler, tree_gen_interval_profiler, + tree_gen_one_value_profiler): Call the library functions instead of + creating instrumentation code. + * tree.c (build_fn_decl): New function. + * tree.h (build_fn_decl): Declare. + * value-prof.c (rtl_divmod_values_to_profile, + rtl_find_values_to_profile, rtl_mod_pow2_value_transform, + tree_mod_pow2_value_transform, tree_find_values_to_profile): + Do not handle may_be_other and precise values of exponents at pow2 + profiler. + (tree_mod_subtract_transform): Reflect that value field of + histogram has changed meaning. + (tree_divmod_values_to_profile): Record the values correctly. + (tree_values_to_profile): Update comment. + * value-prof.h (struct histogram_value_t): Remove pow2 data. + +2005-04-22 Joseph S. Myers + + * varasm.c (do_assemble_alias): Return early if TREE_ASM_WRITTEN + (decl). + +2005-04-22 Nathan Sidwell + + * config/i386/i386.md (length_immediate): Use gcc_assert or + gcc_unreachable, as appropriate. + (*movsi_1, *movqi_1, reload_outqi, *movdi_1_rex64, *pushsf, + *pushsf_rex64, *truncxfsf2_mixed, *truncxfsf2_i387, + *truncxfdf2_mixed, *truncxfdf2_i387, *adddi_1_rex64, + *adddi_2_rex64, *adddi_3_rex64, *adddi_4_rex64, *adddi_5_rex64, + *addsi_1, addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3, + *addsi_3_zext, *addsi_4, *addsi_5, *addhi_1_lea, *addhi_1, + *addhi_2, *addhi_3, *addhi_4, *addhi_5, *addqi_1_lea, *addqi_1, + *addqi_1_slp, *addqi_2, *addqi_3, *addqi_4, *addqi_5, addqi_ext_1, + *addqi_ext_1_rex64, *anddi_1_rex64, *andsi_1, *andhi_1, + *ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashlsi3_1, *ashlsi3_1_zext, + *ashlsi3_cmp, *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, + *ashlhi3_cmp, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp, + pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64, + pro_epilogue_adjust_stack_rex64_2, prefetch, *prefetch_sse, + *prefetch_sse_rex): Likewise. + * config/i386/predicates.md (x86_64_immediate_operand, + x86_64_zext_immediate_operand, symbolic_operand, + no_seg_address_operand, aligned_operand, + memory_displacement_operand): Likewise. + * config/i386/sse.md (*mov_internal, + *movv2df_internal): Likewise. + +2005-04-22 Jan Hubicka + + * Makefile.in (ipa.o, ipa-inline.o): New files. + * cgraph.h (cgraph_remove_unreachable_nodes, cgraph_postorder, + cgraph_decide_inlining_incrementally, cgraph_clone_inlined_nodes, + cgraph_mark_inline_edge, cgraph_default_inline_p): Declare. + * cgraphunit.c (cgraph_default_inline_p, + cgraph_decide_inlining_incrementally, ncalls_inlined, + nfunctions_inlined, initial_insns, overall_insns, + cgraph_estimate_size_after_inlining, cgraph_estimate_growth, + cgraph_clone_inlined_nodes, cgraph_mark_inline_edge, + cgraph_mark_inline, cgraph_check_inline_limits, + cgraph_default_inline_p, cgraph_recursive_inlining_p, + update_callee_keys, lookup_recursive_calls, + cgraph_decide_recursive_inlining, cgraph_set_inline_failed, + cgraph_decide_inlining_of_small_functions, cgraph_decide_inlining, + cgraph_decide_inlining_incrementally, cgraph_gate_inlining, + pass_ipa_inline): Move to ipa-inline.c + (cgraph_postorder, cgraph_remove_unreachable_nodes): Move to ipa.c + * ipa.c: New file. + * ipa-inline.c: New file. + +2005-04-22 Eric Botcazou + + * doc/invoke.texi (SPARC options): Document that -mapp-regs + is turned off by default on Solaris. + +2005-04-21 Roger Sayle + + * c-common.h (objc_build_method_signature): Update prototype. + * stub-objc.c (objc_build_method_signature): Update the stub + implementation to accept and ignore additional parameter. + * c-parser.c (c_parser_objc_method_decl): Reorgnize to pass + the value of ellipsis to objc_build_method_signature instead + of setting TREE_OVERFLOW on the parms TREE_LIST node. + +2005-04-21 Geoffrey Keating + + * config/rs6000/rs6000-protos.h (rs6000_emit_sync): New. + * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Use + gen_rtx_* not gen_rtx_fmt_*. + (rs6000_emit_vector_select): Likewise. + (rs6000_emit_sync): New. + * config/rs6000/rs6000.md (GPR, INT, INT1): New mode macros. + (larx, stcx, cmp): New mode substitutions. + (UNSPEC_SYNC, UNSPEC_SYNC_OP, UNSPEC_SYNC_SWAP, UNSPEC_LWSYNC, + UNSPEC_ISYNC): New constants. + (rlwinm): Give name. + (memory_barrier, isync, lwsync): New insns. + (sync_compare_and_swap, sync_lock_test_and_set): New insn. + (sync_lock_release): New expander. + (sync_add, sync_sub, sync_ior, sync_and, + sync_xor, sync_nand, sync_old_add, + sync_old_sub, sync_old_ior, sync_old_and, + sync_old_xor, sync_old_nand, sync_new_add, + sync_new_sub, sync_new_ior, sync_new_and, + sync_new_xor, sync_new_nand): New expanders. + (sync_add_internal, sync_addshort_internal, + sync_sub_internal, sync_andsi_internal, sync_anddi_internal, + sync_boolsi_internal, sync_booldi_internal, sync_boolc_internal, + sync_boolc_internal2, sync_boolcc_internal): New insns. + + * doc/md.texi (Standard Names): sync_compare_and_swap's operand 0 + is the memory before, not after, the operation. Clarify + barrier requirements. + +2005-04-21 Nathan Sidwell + + * cfghooks.h (struct cfg_hooks): Reword comments to avoid 'abort'. + * lambda.h (lambda_vector_min_nz): Likewise. + * langhooks.h (struct lang_hooks_for_types, + struct lang_hooks): Likewise. + * output.h (assemble_integer, this_is_asm_operands): Likewise. + * tree.h: Likewise. + * vec.h: Likewise. + * tree-flow-inline.h (relink_imm_use): Use gcc_assert. + + * optabs.c (prepare_cmp_insn, emit_cmp_and_jump_insns): Reword + comments to avoid 'abort'. Use gcc_assert as necessary. + * opts.c (common_handle_option): Likewise. + * pretty-print.c (pp_base_format_text): Likewise. + * print-rtl.c (print_rtx): Likewise. + * read-rtl.c (read_rtx_filename, read_rtx_1): Likewise. + * regmove.c (try_auto_increment): Likewise. + * reload.c (find_valid_class, find_reloads_toplev, + find_equiv_reg): Likewise. + * reload1.c (reload, forget_old_reloads_1, function_invariant_p, + merge_assigned_reloads): Likewise. + * tree-inline.c (inline_forbidden_p_1, + estimate_num_insns_1): Likewise. + * tree-optimize.c (execute_todo): Likewise. + * tree-outof-ssa.c (eliminate_phi): Likewise. + * tree-ssa-alias.c (add_pointed_to_expr): Likewise. + * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Likewise. + * tree-ssa-operands.c (parse_ssa_operands, + get_indirect_ref_operands, create_ssa_artficial_load_stmt): Likewise. + * tree-ssa-pre.c (find_or_generate_expression): Likewise. + * tree-ssanames.c (release_ssa_name): Likewise. + * tree.c (int_bit_position, int_byte_position, tree_low_cst, + walk_tree): Likewise. + + * tree-ssa-operands.c (verify_abort): Fold into .. + (verify_imm_links): ... here. + +2005-04-21 Richard Henderson + + * config/alpha/sync.md (sync_new_nand): Fix constraints + on non-memory operand for previous inversion. + +2005-04-21 Devang Patel + + PR optimization/20994 + * tree-if-conv.c (find_phi_replacement_condition): Avoid generating + x = !(a == b) : p , q;. + (pass_if_conversion): Verify stmts and flow. + +2005-04-21 Nathan Sidwell + + * optabs.c (gen_conditional_trap): Restore #define. + + * alias.c (true_dependence): Remove 'abort' from comments. Use + gcc_assert and gcc_unreachable as appropriate. + (canon_true_dependence): Likewise. + * bb-reorder.c (connect_traces): Likewise. + * c-common.c (c_add_case_label): Likewise. + * c-decl.c (finish_function): Likewise. + * caller-save.c (insert_restore, insert_save): Likewise. + * cfg.c (update_bb_profile_for_threading): Likewise. + * cfganal.c (flow_active_insn_p): Likewise. + * cfgexpand.c (add_reg_br_prob_note): Likewise. + * cfgrtl.c (rtl_redirect_edge_and_branch_force, rtl_split_edge, + cfg_layout_merge_blocks): Likewise. + * ifcvt.c (cond_exec_process_insns, merge_if_block, + find_if_block): Likewise. + * integrate.c (allocate_initial_values): Likewise. + * jump.c (reverse_condition, reverse_condition_maybe_unordered, + swap_condition, unsigned_condition, signed_condition, + mark_jump_label, invert_jump_1, rtx_renumbered_equal_p, + reg_or_subregno): Likewise. + * lambda-code.c (lambda_compute_auxillary_space, + lambda_transform_legal_p): Likewise. + * lambda-mat.c (lambda_matrix_inverse_hard): Likewise. + * langhooks.c (lhd_set_decl_assembler_name, lhd_type_promotes_to, + lhd_incomplete_type_error, lhd_expand_expr, + lhd_types_compatible_p, lhd_tree_size): Likewise. + * lcm.c (create_pre_exit, optimize_mode_switching): Likewise. + * local-alloc.c (update_equiv_regs): Likewise. + * loop-unroll.c (peel_loop_completely + unroll_loop_constant_iterations, unroll_loop_runtime_iterations, + peel_loop_simple, unroll_loop_stupid, + analyze_iv_to_split_insn): Likewise. + * loop.c (gen_prefetch, find_and_verify_loops, + basic_induction_var): Likewise. + * modulo-sched.c (normalize_sched_times, check_nodes_order): Likewise. + * value-prof.c (tree_find_values_to_profile): Likewise. + * varasm.c (named_section, default_assemble_integer, + decode_addr_const): Likewise. + +2005-04-21 Alan Modra + Fariborz Jahanian + + * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Fix size of + portion of argument passed in fpr. + * expr.c (emit_push_insn): Fix computation of 'offset' used to + decide on partial argument save on stack. + +2005-04-21 Kazu Hirata + + * config/sparc/predicates.md, config/sparc/sparc.md: Fix + comment typos. + +2005-04-21 Jan Hubicka + + * cgraphunit.c: Include tree-pass.h + (cgraph_decide_recursive_inlining, + cgraph_decide_inlining_of_small_function, cgraph_set_inline_failed, + cgraph_decide_inlining): Dump goes to dump_file. + (cgraph_optimize): Call ipa passes instead of inliner. + (cgraph_gate_inlining, pass_ipa_inline): New. + * tree-optimize.c (all_ipa_passes): New static variable. + (register_one_dump_file): Dead with IPA passes. + (register_dump_files): Likewise. + (init_tree_optimization_passes): Initialize IPA passes. + (execute_todo): Do cgraph dump when asked to, do not dump function body + for IPA pass. + * tree-pass.h (TODO_dump_cgraph): New macro. + (ipa_passes): Declare. + * Makefile.in (cgraphunit.o): Add dependency on cgraphunit.h + +2005-04-21 Nathan Sidwell + + * config/i386/i386.c (type_natural_mode): Use gcc_unreachable and + gcc_assert instead of abort. + (classify_argument, examine_argument, construct_container, + contains_128bit_aligned_vector_p, ix86_check_movabs, + standard_80387_constant_opcode, standard_80387_constant_rtx, + ix86_initial_elimination_offset, ix86_compute_frame_layout, + pro_epilogue_adjust_stack, ix86_expand_epilogue, + ix86_address_cost, legitimate_address_p, legitimize_pic_address, + legitimize_tls_address, output_pic_addr_const, + i386_output_dwarf_dtprel, put_condition_code, print_reg, + get_some_local_dynamic_name, print_operand, print_operand_address, + output_387_binary_op, emit_i387_cw_initialization, + output_fix_trunc, output_fp_compare, ix86_output_addr_vec_elt, + ix86_expand_clear, ix86_expand_binary_operator, + ix86_expand_unary_operator, ix86_match_ccmode, ix86_cc_mode, + ix86_cc_modes_compatible, ix86_fp_comparison_codes, + ix86_fp_comparison_arithmetics_cost, ix86_expand_fp_compare, + ix86_expand_branch, ix86_expand_setcc, + ix86_expand_carry_flag_compare, ix86_expand_fp_movcc, + ix86_expand_int_addcc, ix86_split_to_parts, ix86_split_long_move, + ix86_expand_movmem, ix86_expand_call, assign_386_stack_local, + memory_address_length, ix86_attr_length_immediate_default, + ix86_attr_length_address_default, ix86_agi_dependant, + x86_initialize_trampoline, ix86_init_mmx_sse_builtins, + ix86_expand_binop_builtin, ix86_force_to_memory, + ix86_secondary_memory_needed, ix86_avoid_jump_misspredicts, + x86_emit_floatuns): Likewise. + * config/i386/netware.c (gen_regparm_prefix, + i386_nlm_strip_name_encoding): Likewise. + * config/i386/winnt.c (i386_pe_mark_dllexport): Likewise. + 2005-04-21 Nathan Sidwell * optabs.c (gen_condiational_trap): Remove #define. @@ -413,7 +1357,7 @@ * fold-const (fold_binary): Fold ~X ^ ~ Y to X ^ Y. 2005-04-20 Michael Pogue - Joseph S. Myers + Joseph S. Myers * c.opt (Wint-to-pointer-cast, Wpointer-to-int-cast): New options. * c-typeck.c (build_c_cast): Check these options.