X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2FChangeLog;h=f0ee0770875d53d068b07ea282174647e4cccff2;hb=925159eeb767304255b3def11399185fd33f5747;hp=263797017510dc9609d1f92ea83cbc4a7edbb3cf;hpb=a4c89b7cf94e63c32fb1ce52c0e01e03f605ba97;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 26379701751..f0ee0770875 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,513 @@ +2005-06-03 Joseph S. Myers + + * collect2.c (maybe_unlink): Use unlink_if_ordinary. + +2005-06-02 Bernd Schmidt + + * reload1.c (reload): Revert my previous patch. + +2005-06-03 Nick Clifton + + * config/arm/semi.h (ASM_SPEC): Fix typo passing -mfloat-abi to + assembler. + +2005-06-03 Kazu Hirata + + PR tree-optimization/21849 + * tree-ssa-copy.c (dump_copy_of): Call sbitmap_zero. + +2005-06-02 Richard Henderson + + * Makefile.in (tree-vect-generic.o): New. + (OBJS-common, GTFILES, s-gtype): Add it. + * tree-complex.c (build_replicated_const, vector_inner_type, + vector_last_type, vector_last_nunits, build_word_mode_vector_type, + elem_op_func, tree_vec_extract, do_unop, do_binop, do_plus_minus, + do_negate, expand_vector_piecewise, expand_vector_parallel, + expand_vector_addition, expand_vector_operation, + type_for_widest_vector_mode, expand_vector_operations_1, + gate_expand_vector_operations, expand_vector_operations, + pass_lower_vector_ssa): Move to tree-vect-generic.c. + (tree_lower_complex): Rename from tree_lower_operations. + (pass_lower_complex): Rename from pass_pre_expand. + * tree-vect-generic.c: New file. + * tree-pass.h (pass_lower_complex): Rename from pass_pre_expand. + (pass_lower_vector): New. + * tree-optimize.c (init_tree_optimization_passes): Update to match. + +2005-06-02 Richard Henderson + + * modulo-sched.c (doloop_register_get): Protect against + doloop_end not defined. + +2005-06-02 Kazu Hirata + + * config/sh/sh.c (general_movsrc_operand, + general_movdst_operand, arith_reg_operand, arith_reg_dest, + logical_reg_operand, int_gpr_dest, fp_arith_reg_operand, + fp_arith_reg_dest, arith_operand, arith_reg_or_0_operand, + xor_operand, cmp_operand, logical_operand, and_operand, + fpscr_operand, fpul_operand, symbol_ref_operand, + commutative_float_operator, noncommutative_float_operator, + unary_float_operator, binary_float_operator, + binary_logical_operator, equality_comparison_operator, + greater_comparison_operator, less_comparison_operator, + shift_operator, logical_operator, target_reg_operand, + target_operand, mextr_bit_offset, extend_reg_operand, + trunc_hi_operand, extend_reg_or_0_operand, minuend_operand, + general_extend_operand, ua_address_operand, + cache_address_operand, inqhi_operand, sh_rep_vec, sh_1el_vec, + sh_const_vec, ua_offset, sh_register_operand, cmpsi_operand, + shift_count_reg_operand, shift_count_operand, + unaligned_load_operand): Move to ... + * config/sh/predicates.md: ... here. + * config/sh/sh.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): + Remove. + +2005-06-02 Andrew Pinski + + * tree.c (build_common_builtin_nodes): Fix the return type on + __builtin_memcmp. + +2005-06-02 Richard Guenther + + * tree-ssa-loop-ivopts.c (build_addr_strip_iref): Remove. + (find_interesting_uses_address): Use build_fold_addr_expr instead. + (strip_offset_1): Likewise. + (tree_to_aff_combination): Likewise. + +2005-06-02 DJ Delorie + + * convert.c (convert_to_pointer): Avoid recursion if no conversion + is needed. + +2005-06-02 Richard Guenther + + * tree-chrec.c (chrec_fold_plus_1): Ensure we build + binary operations with the correct types. + * tree-ssa-loo-ivopts.c (idx_find_step): Use sizetype + for all computation. + +2005-06-02 Kazu Hirata + + * tree-vrp.c, config/arm/arm.md, config/arm/arm1020e.md, + config/rs6000/rs6000.md: Fix comment typos. Follow splling + conventions. + * doc/install.texi: Fix a typo. + +2005-06-02 Jan Hubicka + + * cgraphunit.c (cgraph_function_and_variable_visibility): Extern + inline functions are not local. + +2005-06-02 Kazu Hirata + + * gimplify.c (gimplify_ctx): Change the type of case_labels to + VEC from VARRAY. + (gimplify_switch_expr, gimplify_case_label_expr): Adjust uses + of case_labels. + +2005-06-02 Richard Guenther + + * c-typeck.c (build_indirect_ref): Build INDIRECT_REF + with correct type. + +2005-06-02 Ulrich Weigand + + * config/s390/s390.c (s390_add_execute): Do not handle out-of-pool + execute templates. + (s390_dump_pool): Likewise. + (s390_mainpool_start, s390_mainpool_finish): Likewise. + (s390_chunkify_start): Likewise. + (s390_dump_execute): Remove. + (s390_reorg): Handle out-of-pool execute templates. + +2005-06-02 Adrian Straetling + + * optabs.c: (expand_bool_compare_and_swap): Emit barrier after + unconditional jump. + +2005-06-02 Jan Hubicka + + * cgraph.c (cgraph_node): Maintain master clones. + (cgraph_remove_node): Likewise. + (availability_names): New static variable. + (dump_cgraph_node): Dump availability. + (dump_cgraph_varpool_node): Likewise. + (cgraph_is_master_clone, cgraph_master_clone, + cgraph_function_body_availability, + cgraph_variable_initializer_availability): New functions. + * cgraph.h (availability): New enum. + (struct cgraph_node): Add master_clone. + (cgraph_is_master_clone, cgraph_master_clone, + cgraph_function_body_availability, + cgraph_variable_initializer_availability): Declare. + * cgraphunit.c (cgraph_expand_function): Setcgraph_function_flags_ready. + (cgraph_remove_unreachable_nodes): Remove unreachable nodes. + * ipa-inline.c (cgraph_decide_inlining): Do not call + cgraph_remove_unreachable_nodes. + + * cgraphunit.c (cgraph_function_and_variable_visibility): Fix typo in + previous patch. + +2005-06-02 Diego Novillo + + PR 21582 + * tree-vrp.c (nonnull_arg_p): New. + (get_value_range): Call it. + +2005-06-02 Eric Christopher + + * config/mips/mips.h (processor_type): Remove PROCESSOR_DEFAULT, + add PROCESSOR_MAX. + (mips_rtx_cost_data): New datatype. + (MEMORY_MOVE_COST): Use data from structure. + (BRANCH_COST): Ditto. + (LOGICAL_OP_NON_SHORT_CIRCUIT): Define to zero. + * config/mips/mips.md (cpu): Rework for processor_type changes. + * config/mips/mips.c (mips_cost): New variable. + (DEFAULT_COSTS): Define. + (mips_rtx_cost_data): New. + (mips_rtx_costs): Use. Minor formatting changes. Use COSTS_N_INSNS + for NEG cost. Add support for FLOAT, UNSIGNED_FLOAT, FIX, + FLOAT_EXTEND, FLOAT_TRUNCATE, and SQRT. + (override_options): Set cost data. + (mips_register_move_cost): Formatting changes. + (bdesc_arrays): Use PROCESSOR_MAX. + (mips_init_builtins): Ditto. + +2005-06-02 Diego Novillo + + PR 21765 + * doc/invoke.texi: Document -ftree-vrp. + +2005-06-02 Dorit Nuzman + + PR tree-optimization/21734 + * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop): Use the + phi_result when current_def is not available. + (slpeel_update_phi_nodes_for_guard1): Don't fail if current_def is not + available. + +2005-06-02 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_insn_valid_within_doloop): New. + (TARGET_INSN_VALID_WITHIN_DOLOOP): Define. + +2005-06-02 Diego Novillo + + * tree-vrp.c (has_assert_expr, maybe_add_assert_expr): Remove. + +2005-06-02 Jan Hubicka + + * cgraph.c (dump_cgraph_node): Print new flags. + (dump_cgraph_varpool_node): Likewise. + (decide_variable_is_needed): Initialize externally_visible flag. + * cgraph.h (cgraph_local_info): Add externally_visible flag. + (cgraph_varpool_node): Likewise. + (cgraph_function_flags_ready): Declare. + * cgraph.c (cgraph_mark_local_functions): Rename to ... + (cgraph_function_and_variable_visibility) ... this one; handle + externally_visible flags. + (decide_is_function_needed): Set externally_visible flag. + (cgraph_finalize_function): Deal properly with early cleanups. + (cgraph_optimize): Update call of + cgraph_function_and_variable_visibility. + +2005-06-02 Steven Bosscher + Mostafa Hagog + + * cfgloop.h (doloop_condition_get): Make external. + * loop-doloop.c (doloop_condition_get): Generalize to make it + usable in modulo-sched.c. + * modulo-sched.c (doloop_register_get): Use + doloop_condition_get instead of duplicating it. + +2005-06-02 Bernd Schmidt + + * reload1.c (reload): Undo 2005-04-20 change. Make sure we detect + the correct set of init_insns that need deletion. + * local-alloc.c (update_equiv_regs): When substituting sole definition + into sole use of a reg, delete it from liveness information. + +2005-06-02 Kaz Kojima + + * config/sh/sh.h (TARGET_FPU_DOUBLE): Use MASK_SH4. + +2005-06-01 Diego Novillo + + PR 14341, PR 21332, PR 20701, PR 21029, PR 21086, PR 21090 + PR 21289, PR 21348, PR 21367, PR 21368, PR 21458. + * fold-const.c (invert_tree_comparison): Make extern. + * tree-flow.h (enum value_range_type): Move to tree-ssa-propagate. + (struct value_range_def): Limewise. + (get_value_range): Remove. + (dump_value_range): Remove. + (dump_all_value_ranges): Remove. + (debug_all_value_ranges): Remove. + (vrp_evaluate_conditional): Declare. + * tree-ssa-propagate.c (struct prop_stats_d): Add field + num_pred_folded. + (substitute_and_fold): Add argument use_ranges_p. + Update all callers. + If use_ranges_p is true, call fold_predicate_in to fold + predicates using range information. + Ignore ASSERT_EXPRs. + Change debugging output to only show statements that have been + folded. + (replace_phi_args_in): Move debugging output code from + substitute and fold. + (fold_predicate_in): New local function. + * tree-ssa-propagate.h (enum value_range_type): Move from + tree-flow.h. + (struct value_range_d): Likewise. + Add field 'equiv'. + (value_range_t): Rename from value_range. + * tree-vrp.c (found_in_subgraph): Rename from found. + (get_opposite_operand): Remove. + (struct assert_locus_d): Declare. + (assert_locus_t): Declare. + (need_assert_for): Declare. + (asserts_for): Declare. + (blocks_visited): Declare. + (vr_value): Declare. + (set_value_range): Add argument 'equiv'. + Don't drop to VARYING ranges that cover all values in the + type. + Make deep copy of equivalence set 'equiv'. + (copy_value_range): New local function. + (set_value_range_to_undefined): New local function. + (compare_values): Return -2 if either value has overflowed. + (range_includes_zero_p): New local function. + (extract_range_from_assert): Flip the predicate code if the + name being asserted is on the RHS of the predicate. + Avoid creating unnecessary symbolic ranges if the comparison + includes another name with a known numeric range. + Update the equivalnce set of the new range when asserting + EQ_EXPR predicates. + (extract_range_from_ssa_name): Update the equivalence set of + the new range with VAR. + (extract_range_from_binary_expr): Also handle TRUTH_*_EXPR. + If -fwrapv is used, set the resulting range to VARYING if the + operation overflows. Otherwise, use TYPE_MIN_VALUE and + TYPE_MAX_VALUE to represent -INF and +INF. + Fix handling of *_DIV_EXPR. + (extract_range_from_unary_expr): Handle MINUS_EXPR and + ABS_EXPR properly by switching the range around if necessary. + (extract_range_from_comparison): New local function. + (extract_range_from_expr): Call it. + (adjust_range_with_scev): Do not adjust the range if using + wrapping arithmetic (-fwrapv). + (dump_value_range): Also show equivalence set. + Show -INF and +INF for TYPE_MIN_VALUE and TYPE_MAX_VALUE. + (build_assert_expr_for): Also build ASSERT_EXPR for EQ_EXPR. + (infer_value_range): Change return value to bool. + Add arguments 'comp_code_p' and 'val_p'. + Do not attempt to infer ranges from statements that may throw. + Store the comparison code in comp_code_p. + Store the other operand to be used in the predicate in val_p. + (dump_asserts_for): New. + (debug_asserts_for): New. + (dump_all_asserts): New. + (debug_all_asserts): New. + (register_new_assert_for): New. + (register_edge_assert_for): New. + (find_conditional_asserts): New. + (find_assert_locations): New. + (process_assert_insertions_for): New. + (process_assert_insertions): New. + (insert_range_assertions): Initialize found_in_subgraph, + blocks_visited, need_assert_for and asserts_for. + Call find_assert_locations and process_assert_insertions. + (remove_range_assertions): Add more documentation. + (vrp_initialize): Change return type to void. + Do not try to guess if running VRP is worth it. + (compare_name_with_value): New. + (compare_names): New. + (vrp_evaluate_conditional): Add argument 'use_equiv_p'. If + use_equiv_p is true, call compare_names and + compare_name_with_value to compare all the ranges for every + name in the equivalence set of the predicate operands. + Update all callers. + (vrp_meet): Try harder not to derive a VARYING range. + If two values meet, the resulting equivalence set is the + intersection of the two equivalence sets. + (vrp_visit_phi_node): Call copy_value_range to get the current + range information of the LHS. + (vrp_finalize): Create a value vector representing all the + names that ended up with exactly one value in their range. + Call substitute_and_fold. + (execute_vrp): Document equivalence sets in ranges. + * tree.h (SSA_NAME_VALUE_RANGE): Remove. + (struct tree_ssa_name): Remove field value_range. + (invert_tree_comparison): Declare. + +2005-06-01 Daniel Berlin + + Fix PR tree-optimization/21839 + + * gimplify.c (zero_sized_field_decl): New function. + (gimplify_init_ctor_eval): Use it. + +2005-06-01 Josh Conner + + PR 21478 + * gimplify.c (gimplify_init_constructor): Don't spill initializer + to read-only memory if it's sparse. + +2005-06-01 Ramana Radhakrishnan + + * doc/rtl.texi: Remove references to NOTE_INSN_SETJMP. + Add documentation for REG_SETJMP + +2005-06-01 Richard Guenther + + * stmt.c (expand_case): Use build_int_cst. + (node_has_low_bound): Likewise, and correct type mismatch. + (node_has_high_bound): Likewise. + * fold-const.c (fold_binary): Ensure we build trees + with the correct types - undo what STRIP_NOPS possibly did. + +2005-06-01 Richard Guenther + + * tree.h (fold_indirect_ref_1): Export from fold-const.c. + * fold-const.c (fold_indirect_ref_1): No longer static. + * tree-inline.c (copy_body_r): Use fold_indirect_ref_1 for + folding, if possible. + +2005-06-01 Joseph S. Myers + + * common.opt (fjump-tables): New. + * doc/invoke.texi (-fno-jump-tables): Document. + * stmt.c (expand_end_case_type): Do not emit jump tables unless + flag_jump_tables. + +2005-06-01 Richard Earnshaw + + * arm.md (bunordered, bordered, bungt, bunlt, bunge, bunle, buneq) + (bltgt, arm_buneq, arm_bltgt, sunordered, sordered, sungt, sunge) + (sunlt, sunle): Enable patterns on VFP. + + * arm.md (attribute 'type'): Add new types - f_loads floadd, f_stores, + f_stored, f_flag, f_cvt. + (generic_sched): No-longer used for the arm1020e and arm1022e cores. + Include arm1020e.md. + * vfp.md (fmstat): New cpu unit. Add an exclusion set between it and + the ds and fmac pipelines. Re-work all load and store patterns and + all conversion patterns to use new attributes. Adjust reservation + descriptions accordingly. + * arm1020e.md: New file. + * t-arm: Add dependency. + +2005-06-01 Jan Hubicka + + * except.c (struct eh_region): Kill unused fields. + * basic-block.h (struct basic_block_def): Likewise. + +2005-06-01 J"orn Rennecke + + PR rtl-optimization/21767 + * rtl.h (function_invariant_p): Re-add declaration. + * reload1.c (function_invariant_p): No longer static. + * ifcvt.c (dead_or_predicable): Remove REG_EQUAL notes that + might have become invalid. + +2005-06-01 Jakub Jelinek + + PR c/21536 + PR c/20760 + * gimplify.c (gimplify_decl_expr): Call gimplify_type_sizes + on variable sizes types if a decl is a pointer to a VLA. + (gimplify_type_sizes): Handle POINTER_TYPE and REFERENCE_TYPE. + Call gimplify_type_sizes on aggregate fields. Prevent infinite + recursion. + + * fold-const.c (fold_ternary): Optimize BIT_FIELD_REF of VECTOR_CST. + + * config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss, _mm_set1_ps, + _mm_set_ps, _mm_setr_ps): Add __extension__. + * config/i386/emmintrin.h (_mm_set_sd, _mm_set1_pd, _mm_set_pd, + _mm_setr_pd, _mm_setzero_pd, _mm_set_epi64x, _mm_set_epi64x, + _mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128): + Likewise. + (_mm_clflush): Don't use return in void function. + + * config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128, + _mm_castps_pd, _mm_castps_si128, _mm_castsi128_ps, _mm_castsi128_pd): + Use __inline instead of inline. + +2005-06-01 Richard Guenther + + * fold-const.c (fold_binary): Fix types in strlen vs. + zero comparison folding. + +2005-06-01 Richard Henderson + + * configure.ac (HAVE_AS_JSRDIRECT_RELOCS): New. + * config.in, configure: Rebuild. + * config/alpha/alpha.c (print_operand): Add 'j'. + * alpha.md (divmodsi_internal_er_1): Use it. + (divmoddi_internal_er_1): Likewise. + +2005-06-01 Richard Sandiford + + * system.h (TARGET_OPTIONS, TARGET_SWITCHES): Poison. + * opts.h (print_filtered_help): Delete. + * opts.c (handle_option, decode_options): Remove calls to + set_target_switch. + (print_target_help): New function. + (common_option, print_help): Call print_target_help instead of + display_target_options. + (print_filtered_help): Make static. + * toplev.h (display_target_options, set_target_switch): Delete. + * toplev.c (target_switches, target_options, display_target_options) + (set_target_switch): Delete. + (print_switch_values): Remove handling of TARGET_SWITCHES and + TARGET_OPTIONS. + (default_get_pch_validity): Likewise. Only treat target_flags + specially if targetm.check_pch_target_flags is nonnull. + (pch_option_mismatch): New function. + (default_pch_valid_p): Use it. Remove handling of TARGET_SWITCHES + and TARGET_OPTIONS. Only treat target_flags specially if + targetm.check_pch_target_flags is nonnull. + * config/ia64/ia64.c (ia64_override_options): Don't mention + TARGET_OPTIONS in comment. + * config/m68k/m68k-none.h (CC1_SPEC): Likewise. + * doc/invoke.texi: Remove a reference to TARGET_SWITCHES. + * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS): Don't mention the + interaction with TARGET_SWITCHES. + (TARGET_@var{featurename}, TARGET_SWITCHES, TARGET_OPTIONS): Delete. + +2005-06-01 Richard Sandiford + + * config/sh/sh.c (multcosts): Check sh_multcost rather than + sh_multcost_str. + (sh_register_move_cost): Likewise sh_gettrcost and sh_gettrcost_str. + (sh_multcost_str, sh_gettrcost_str, sh_div_str, sh_divsi3_libfunc) + (cut2_workaround_str): Delete. + * config/sh/sh.h (SUBTARGET_OPTIONS, TARGET_OPTIONS) + (TARGET_SH5_CUT2_WORKAROUND, sh_multcost_str, sh_gettrcost_str) + (sh_div_str, sh_divsi3_libfunc, cut2_workaround_str): Delete. + * config/sh/sh.opt (mcut2-workaround, mdiv=, mdivsi3_libfunc=) + (mgettrcost=, multcost=): New options. + +2005-06-01 Richard Sandiford + + * opts.h (cl_option_state): New structure. + (get_option_state): Declare. + * opts.c (get_option_state): New function. + * toplev.c (option_affects_pch_p): New function. + (default_get_pch_validity): Store the state of all options for which + option_affects_pch_p returns true. + (default_pch_valid_p): Check the state of those options here. + Only check target_flags separately if targetm.check_pch_target_Flags + is nonnull or if TARGET_SWITCHES is defined. + +2005-06-01 Richard Sandiford + + * config/mips/mips-protos.h (mips_use_ins_ext_p): Remove parameter + names. + 2005-06-01 Mostafa Hagog * modulo-sched.c (undo_generate_reg_moves ): Fix PR 21138. @@ -40,7 +550,6 @@ * Makefile.in: Update dependencies. - 2005-06-01 Danny Smith * config/i386/cygming.h (NO_PROFILE_COUNTERS): Define. @@ -168,7 +677,7 @@ * target-def.h (TARGET_CHECK_PCH_TARGET_FLAGS): New macro. (TARGET_INITIALIZER): Include it. * toplev.c (default_pch_valid_p): Use targetm.check_pch_target_flags. - * config/sh/sh.h (sh_pch_valid_p): Delete. + * config/sh/sh-protos.h (sh_pch_valid_p): Delete. * config/sh/sh.c (TARGET_PCH_VALID_P, sh_pch_valid_p): Delete. (sh_check_pch_target_flags): New function. (TARGET_CHECK_PCH_TARGET_FLAGS): Override default.