diff options
Diffstat (limited to 'gcc/ChangeLog')
-rw-r--r-- | gcc/ChangeLog | 1262 |
1 files changed, 1262 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 02d90470820..22136dd307b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,1261 @@ +2005-06-03 Pat Haugen <pthaugen@us.ibm.com> + + * config/rs6000/rs6000.c (rs6000_conditional_register_usage): + Clear call_realy_used_regs[r2] when ABI_AIX. + +2005-06-03 Richard Guenther <rguenth@gcc.gnu.org> + + PR middle-end/21858 + * fold-const.c (fold_binary): Fix type mismatches in folding + of comparisons. + +2005-06-03 Kazu Hirata <kazu@codesourcery.com> + + * cgraph.c, cgraphunit.c, config/mips/mips.c: Fix comment + typos. + +2005-06-03 Joseph S. Myers <joseph@codesourcery.com> + + * collect2.c (maybe_unlink): Use unlink_if_ordinary. + +2005-06-02 Bernd Schmidt <bernd.schmidt@analog.com> + + * reload1.c (reload): Revert my previous patch. + +2005-06-03 Nick Clifton <nickc@redhat.com> + + * config/arm/semi.h (ASM_SPEC): Fix typo passing -mfloat-abi to + assembler. + +2005-06-03 Kazu Hirata <kazu@codesourcery.com> + + PR tree-optimization/21849 + * tree-ssa-copy.c (dump_copy_of): Call sbitmap_zero. + +2005-06-02 Richard Henderson <rth@redhat.com> + + * 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 <rth@redhat.com> + + * modulo-sched.c (doloop_register_get): Protect against + doloop_end not defined. + +2005-06-02 Kazu Hirata <kazu@codesourcery.com> + + * 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 <pinskia@physics.uc.edu> + + * tree.c (build_common_builtin_nodes): Fix the return type on + __builtin_memcmp. + +2005-06-02 Richard Guenther <rguenth@gcc.gnu.org> + + * 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 <dj@redhat.com> + + * convert.c (convert_to_pointer): Avoid recursion if no conversion + is needed. + +2005-06-02 Richard Guenther <rguenth@gcc.gnu.org> + + * 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 <kazu@codesourcery.com> + + * 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 <jh@suse.cz> + + * cgraphunit.c (cgraph_function_and_variable_visibility): Extern + inline functions are not local. + +2005-06-02 Kazu Hirata <kazu@codesourcery.com> + + * 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 <rguenth@gcc.gnu.org> + + * c-typeck.c (build_indirect_ref): Build INDIRECT_REF + with correct type. + +2005-06-02 Ulrich Weigand <uweigand@de.ibm.com> + + * 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 <straetling@de.ibm.com> + + * optabs.c: (expand_bool_compare_and_swap): Emit barrier after + unconditional jump. + +2005-06-02 Jan Hubicka <jh@suse.cz> + + * 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 <dnovillo@redhat.com> + + PR 21582 + * tree-vrp.c (nonnull_arg_p): New. + (get_value_range): Call it. + +2005-06-02 Eric Christopher <echristo@redhat.com> + + * 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 <dnovillo@redhat.com> + + PR 21765 + * doc/invoke.texi: Document -ftree-vrp. + +2005-06-02 Dorit Nuzman <dorit@il.ibm.com> + + 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 <edelsohn@gnu.org> + + * config/rs6000/rs6000.c (rs6000_insn_valid_within_doloop): New. + (TARGET_INSN_VALID_WITHIN_DOLOOP): Define. + +2005-06-02 Diego Novillo <dnovillo@redhat.com> + + * tree-vrp.c (has_assert_expr, maybe_add_assert_expr): Remove. + +2005-06-02 Jan Hubicka <jh@suse.cz> + + * 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 <stevenb@suse.de> + Mostafa Hagog <mustafa@il.ibm.com> + + * 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 <bernd.schmidt@analog.com> + + * 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 <kkojima@gcc.gnu.org> + + * config/sh/sh.h (TARGET_FPU_DOUBLE): Use MASK_SH4. + +2005-06-01 Diego Novillo <dnovillo@redhat.com> + + 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 <dberlin@dberlin.org> + + Fix PR tree-optimization/21839 + + * gimplify.c (zero_sized_field_decl): New function. + (gimplify_init_ctor_eval): Use it. + +2005-06-01 Josh Conner <jconner@apple.com> + + PR 21478 + * gimplify.c (gimplify_init_constructor): Don't spill initializer + to read-only memory if it's sparse. + +2005-06-01 Ramana Radhakrishnan <ramana@codito.com> + + * doc/rtl.texi: Remove references to NOTE_INSN_SETJMP. + Add documentation for REG_SETJMP + +2005-06-01 Richard Guenther <rguenth@gcc.gnu.org> + + * 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 <rguenth@gcc.gnu.org> + + * 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 <joseph@codesourcery.com> + + * 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 <richard.earnshaw@arm.com> + + * 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 <jh@suse.cz> + + * except.c (struct eh_region): Kill unused fields. + * basic-block.h (struct basic_block_def): Likewise. + +2005-06-01 J"orn Rennecke <joern.rennecke@st.com> + + 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 <jakub@redhat.com> + + 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 <rguenth@gcc.gnu.org> + + * fold-const.c (fold_binary): Fix types in strlen vs. + zero comparison folding. + +2005-06-01 Richard Henderson <rth@redhat.com> + + * 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 <rsandifo@redhat.com> + + * 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 <rsandifo@redhat.com> + + * 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 <rsandifo@redhat.com> + + * 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 <rsandifo@redhat.com> + + * config/mips/mips-protos.h (mips_use_ins_ext_p): Remove parameter + names. + +2005-06-01 Mostafa Hagog <mustafa@il.ibm.com> + + * modulo-sched.c (undo_generate_reg_moves ): Fix PR 21138. + +2005-06-01 Mostafa Hagog <mustafa@il.ibm.com> + + * gcse.c (compute_transp, load_killed_in_block): Use + MEM_READONLY_P. + +2005-06-01 David.Billinghurst <David.Billinghurst@riotinto.com> + + PR target/21854 + * config/mips/mips-protos.h: Declare mips_use_ins_ext_p + +2005-05-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * errors.h (warning, error, fatal, internal_error): Add printf + attribute. + * genmodes.c (make_vector_mode): Fix format arguments. + +2005-05-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * basic-block.h, bb-reorder.c, c-gimplify.c, config/darwin.c, + config/rs6000/rs6000-c.c, dominance.c, gimple-low.c, gimplify.c, + lambda-code.c, lambda-trans.c, tree-browser.c, tree-cfg.c, + tree-chrec.c, tree-data-ref.c, tree-dfa.c, tree-eh.c, + tree-if-conv.c, tree-into-ssa.c, tree-loop-linear.c, + tree-mudflap.c, tree-nomudflap.c, tree-outof-ssa.c, + tree-pretty-print.c, tree-scalar-evolution.c, tree-sra.c, + tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c, + tree-ssa-dse.c, tree-ssa-forwprop.c, tree-ssa-live.c, + tree-ssa-operands.c, tree-ssa-phiopt.c, tree-ssa-pre.c, + tree-ssa-propagate.c, tree-ssa-sink.c, tree-ssa-threadupdate.c, + tree-ssa-uncprop.c, tree-ssa.c, tree-vect-analyze.c, + tree-vect-transform.c, tree-vectorizer.c, vec.c: Don't include + errors.h and include toplev.h if necessary. + + * rtl.c, varray.c: If we're compiling as a GENERATOR_FILE, include + errors.h otherwise include toplev.h. + + * Makefile.in: Update dependencies. + +2005-06-01 Danny Smith <dannysmith@users.sourceforge.net> + + * config/i386/cygming.h (NO_PROFILE_COUNTERS): Define. + +2005-05-31 Geoffrey Keating <geoffk@geoffk.org> + + * config/rs6000/rs6000.md (sync_boolcshort_internal): New. + * config/rs6000/rs6000.c (rs6000_emit_sync): Shift count must + be complemented for big-endian. Mask for AND must be rotated, + not shifted. Handle short operands with NOT on the memory + operation. + +2005-05-30 Daniel Berlin <dberlin@dberlin.org> + + * c-objc-common.c (c_tree_printer): Check flag before hashtable. + Use DECL_DEBUG_EXPR and SET_DECL_DEBUG_EXPR. + * dwarf2out.c (dwarf2out_var_location): Ditto. + * toplev.c (default_tree_printer): Ditto. + * tree-outof-ssa.c (create_temp): Ditto. + * tree-sra.c (instantiate_element): Ditto. + * var-tracking.c (track_expr_p): Ditto. + * tree.c (struct tree_map): New structure. + (debug_expr_for_decl): New. + (tree_map_eq): New function. + (tree_map_hash): Ditto. + (tree_map_marked_p): Ditto. + (print_debug_expr_statistics): Ditto. + (decl_debug_expr_lookup): Ditto. + (decl_debug_expr_insert): Ditto. + (dump_tree_statistics): Dump debug_expr hashtable stats. + * tree.h (DECL_DEBUG_EXPR): Change + (SET_DECL_DEBUG_EXPR): Add. + +2005-06-01 Alan Modra <amodra@bigpond.net.au> + + * configure.ac: Add --enable-secureplt. + (HAVE_AS_REL16): Test for R_PPC_REL16 relocs. + * config.in: Regenerate. + * configure: Regenerate. + * config.gcc (powerpc64-*-linux*, powerpc-*-linux*): Add + rs6000/secureplt.h to tm_file when enable_secureplt. + * doc/invoke.texi (msecure-plt, mbss-plt): Document. + * doc/install.texi: Document --enable-targets and --enable-secureplt. + Correct xrefs to "Using the GNU Compiler Collection (GCC)". + * config/rs6000/secureplt.h: New file. + * config/rs6000/sysv4.h (TARGET_SECURE_PLT): Define. + (SUBTARGET_OVERRIDE_OPTIONS): Error if -msecure-plt given without + assembler support. + (CC1_SECURE_PLT_DEFAULT_SPEC): Define. + (CC1_SPEC): Delete duplicate mno-sdata. Invoke cc1_secure_plt_default. + (SUBTARGET_EXTRA_SPECS): Add cc1_secure_plt_default. + * config/rs6000/sysv4.opt (msecure-plt, bss-plt): Add options. + * config/rs6000/rs6000.h (TARGET_SECURE_PLT): Define. + * config/rs6000/rs6000.c (rs6000_emit_load_toc_table): Handle + TARGET_SECURE_PLT got register load sequence. + (rs6000_emit_prologue): Call rs6000_emit_load_toc_table when + TARGET_SECURE_PLT. + (rs6000_elf_declare_function_name): Don't emit toc address offset + word when TARGET_SECURE_PLT. + * config/rs6000/rs6000.md (elf_high, elf_low): Move past load_toc_*. + (load_toc_v4_PIC_1) Enable for TARGET_SECURE_PLT. + (load_toc_v4_PIC_3b, load_toc_v4_PIC_3c): New insns. + (call, call_value): Mark pic_offset_table_rtx used for sysv pic and + TARGET_SECURE_PLT. + (call_nonlocal_sysv, call_value_nonlocal_sysv, sibcall_nonlocal_sysv, + sibcall_value_nonlocal_sysv): Add 32768 offset when TARGET_SECURE_PLT + and -fPIC. + * config/rs6000/tramp.asm (trampoline_initial): Use "bcl 20,31". + (__trampoline_setup): Likewise. Init r30 before plt call. + +2005-05-31 DJ Delorie <dj@redhat.com> + + * expr.c (convert_move): When a partial_int requires multiple + conversion steps, make sure successive steps convert the + intermediate value, not the original value. + + * expmed.c (expand_mult): Convert partial_int multiplies to + shift/add combinations too. + + * genmodes.c (mode_data): Add wider_2x. + (calc_wider_mode): Calculate twice-wider mode too. + (emit_mode_wider): Emit twice-wider mode too. + * machmode.h (mode_2xwider, GET_MODE_2XWIDER_MODE): New. + * expr.c (expand_expr_real_1): Use it for expanding + multiplies. + +2005-05-31 Zdenek Dvorak <dvorakz@suse.cz> + + PR tree-optimization/21817 + * tree-ssa-loop-im.c (for_each_index): Handle VECTOR_CST. + +2005-05-31 Pat Haugen <pthaugen@us.ibm.com> + + * loop.c (loop_invariant_p, valid_initial_value_p): Revert last + change. + +2005-05-31 Andrew Pinski <pinskia@physics.uc.edu> + + PR middle-end/20931 + PR middle-end/20946 + * fold-const.c (fold_checksum_tree): Copy types also if + TYPE_CONTAINS_PLACEHOLDER_INTERNAL is set. + Don't call fold_checksum_tree for TREE_LIST's TREE_CHAIN + first. + Tail recurse TREE_LIST's TREE_CHAIN. + +2005-05-31 Andrew Pinski <pinskia@physics.uc.edu> + + PR tree-opt/21732 + * tree-ssa-copy.c (dump_copy_of): Create a bitmap and don't visit a + SSA_NAME twice and cause the loop to become finite. Remove the test + for val. + +2005-05-31 Andrew Pinski <pinskia@physics.uc.edu> + + * tree-cfg.c (verify_expr): Add checking for COND_EXPR's conditional + expression. + +2005-05-31 Richard Sandiford <rsandifo@redhat.com> + + * doc/tm.texi (TARGET_GET_PCH_VALIDITY, TARGET_PCH_VALID_P): Tweak + the documentation to make it more future-proof. + (TARGET_CHECK_PCH_TARGET_FLAGS): Document this new hook. + * target.h (gcc_target): Add check_pch_target_flags. + * 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-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. + +2005-05-31 Richard Guenther <rguenth@gcc.gnu.org> + + * fold-const.c (extract_array_ref): Handle more cases, + do some useful canonicalization of the base. + (fold_binary): Explicitly deal with arrays of zero-sized + structures during folding of &a[i] == &a[j]. + +2005-05-31 Eric Botcazou <ebotcazou@libertysurf.fr> + + * doc/install.texi (sparc-sun-solaris2*): Update note + about Sun bug 4910101. + (sparc-sun-solaris2.7): Document bootstrap + failure with Sun WorkShop 6 99/08/18 as. + +2005-05-30 Pat Haugen <pthaugen@us.ibm.com> + + * loop.c (loop_invariant_p, valid_initial_value_p): Use + regs_invalidated_by_call instead of call_used_regs. + +2005-05-30 Paolo Carlini <pcarlini@suse.de> + + PR middle-end/21743 + * builtins.def (BUILT_IN_CLOG, BUILT_IN_CLOGF, BUILT_IN_CLOGL): + Enable. + * doc/extend.texi: Add clog, clogf, clogl. + +2005-05-30 H.J. Lu <hongjiu.lu@intel.com> + + PR middle-end/20303 + * c-pragma.c: Include "vec.h". + (handle_pragma_visibility): Use VEC. + + * doc/invoke.texi: Remove the nested visibility push limit. + +2005-05-30 Roger Sayle <roger@eyesopen.com> + + PR rtl-optimization/15422 + * reg-stack.c (starting_stack_p): New static global. + (straighten_stack): Delete prototype. Change to update the stack + before the current insn. + (subst_stack_regs): Update call to straighten stack. + (emit_swap_insn): Delete prototype. For the first insn in a + basic block, update stack_in instead of emitting a real swap. + (change_stack): When changing the stack before the first insn + in a basic block, update stack_in instead of emitting real code. + (compensate_edges): Clear starting_stack_p during compensation. + (convert_regs_1): Keep track of starting_stack_p whilst processing + a basic block. + +2005-05-30 Kazu Hirata <kazu@cs.umass.edu> + + * tree-ssa-ccp.c (const_val): Make it static. + +2005-05-29 Geoffrey Keating <geoffk@apple.com> + + PR target/21761 + * config/rs6000/rs6000.md: Remove stray TARGET_32BIT from + pattern involving `:P'. + + * Makefile.in (install-cpp): Depend on installdirs. + +2005-05-30 Kazu Hirata <kazu@cs.umass.edu> + + * tree-outof-ssa.c (_elim_graph): Change the type of edge_list + to VEC(int,heap)*. + (new_elim_graph, clear_elim_graph, delete_elim_graph, + elim_graph_add_edge, elim_graph_remove_succ_edge, + FOR_EACH_ELIM_GRAPH_SUCC, FOR_EACH_ELIM_GRAPH_PRED): Use VEC + instead of VARRAY. + +2005-05-29 Kazu Hirata <kazu@cs.umass.edu> + + * cgraphunit.c, ipa-inline.c, loop-iv.c, modulo-sched.c, + opts.c, postreload-gcse.c, tree-browser.def, tree-eh.c, + tree-ssa-copyrename.c, tree-vect-analyze.c: Fix typos and + follow spelling conventions in error/dump messages. + +2005-05-29 Roger Sayle <roger@eyesopen.com> + Richard Henderson <rth@redhat.com> + + * ifcvt.c (noce_emit_move_insn): Construct a SET pattern directly + if the RHS isn't suitable for calling emit_move_insn. + +2005-05-29 Kazu Hirata <kazu@cs.umass.edu> + + * tree-ssa-ccp.c (ccp_fold): Return immediately after calling + fold_unary and fold_binary. + +2005-05-29 Roger Sayle <roger@eyesopen.com> + + * reg-stack.c (propagate_stack): Always copy the source stack to + the destination. This routine is now only called when this is safe. + (better_edge): New function split out from convert_regs_1 to + determine which of two edges is better to propagate across. + (convert_regs_1): We need only search for a best edge if the + stack layout hasn't been defined yet. Use better_edge to help + find beste. No longer traverse unnecessary edges. + +2005-05-29 Keith Besaw <kbesaw@us.ibm.com> + + * tree-ssa-alias.c (new_type_alias): New procedure to + create a type memory tag for a pointer with a may-alias + set determined from a variable declaration. + * tree-flow.h: export declaration of new_type_alias + * tree-optimize.c (init_tree_optimization_passes): document + that pass_may_alias cannot be called after pass_vectorize. + * tree-vect-transform (vect_create_data_ref_ptr): Call + new_type_alias when an type memory tag isn't available + for a reference. + (vectorizable_store): Use copy_virtual_operands to update + virtual defs in place (so that loop_version can be called). + Call mark_for_renaming for the virtual defs in case peeling + is done and virtual uses outside the loop need to be updated. + +2005-05-29 Dorit Naishlos <dorit@il.ibm.com> + + PR tree-optimization/21639 + * tree-complex.c (pass_lower_vector_s): Remove TODO_ggc_collect. + +2005-05-29 Jan Hubicka <jh@suse.cz> + + PR tree-optimization/21562 + * cfgexpand.c (construct_init_block): Deal properly with the case + of entry edge not pointing to very first basic block. + +2005-05-28 Kazu Hirata <kazu@cs.umass.edu> + + * tree-ssa-ccp.c (ccp_fold): Remove code that produces + non-gimple min invariant. + + * Makefile.in (OBJS-common): Add tree-cfgcleanup.o. + * tree-flow.h: Add prototypes for start_recording_case_labels + and end_recording_case_labels. + * tree-cfg.c (start_recording_case_labels, + end_recording_case_labels): Export. + (cleanup_tree_cfg_loop, modified_noreturn_calls, + cleanup_control_flow, cleanup_control_expr_graph, + remove_fallthru_edge, phi_alternatives_equal, + tree_forwarder_block_p, has_abnormal_incoming_edge_p, + remove_forwarder_block, cleanup_forwarder_blocks, + remove_forwarder_block_with_phi, merge_phi_nodes, + gate_merge_phi, pass_merge_phi): Move to ... + * tree-cfgcleanup.c: ... here. + + * basic-block.h: Remove forward declaration of bb_ann_d. + +2005-05-28 Jan Hubicka <jh@suse.cz> + + * tree-ssa-threadupdate.c: (create_edge_and_update_destination_phis): + Update profile. + * value-prof.c (tree_divmod_fixed_value_transform): Be more verbose in + debug output. + (tree_mod_subtract): Fix profile updating code. + (tree_divmod_values_to_profile): Do not produce useless value profilers + for divisions. + +2005-05-28 Kazu Hirata <kazu@cs.umass.edu> + + * tree-ssa-dom.c (vrp_element_p): Define. + (vrp_hash_elt): Change the type of records to + VEC(vrp_element_p,heap). + (vrp_free): New. + (tree_ssa_dominator_optimize): Pass vrp_free to htab_create. + Update uses of VRP records. + (simplify_cond_and_lookup_avail_expr, record_range): Update + uses of VRP records. + + * tree-inline.c (cfun_stack): Change the type to + VEC(function_p,heap). + (push_cfun, pop_cfun): Use VEC instead of VARRAY. + +2005-05-27 Ian Lance Taylor <ian@airs.com> + + * c-decl.c (add_stmt): Add C frontend specific version. + (stmts_are_full_exprs_p): Remove. + * c-common.h (STMT_IS_FULL_EXPR_P): Remove. + (stmts_are_full_exprs_p): Don't declare. + * c-semantics.c (add_stmt): Remove. + +2005-05-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * config/mips/mips-protos.h (mips_declare_object): Add printf + attribute. + * config/mips/mips.c (mips_declare_object_name): Fix format + argument. + +2005-05-27 Roger Sayle <roger@eyesopen.com> + + * reg-stack.c (compensate_edge): Remove original prototype. + (propagate_stack): New function to copy the stack layout + at the start of a basic block from the layout at the end of + one of its predecessors. + (compensate_edge): Assume that both source and destination + blocks have already had their stack layouts defined. + (compensate_edges): Traverse all non-entry edges in the CFG + and call compensate_edge on each in turn. + (convert_regs_1): Change return type to void. Call + propagate_stack instead of compensate_edge. + (convert_regs_2): Change return type to void. Update call + to convert_regs_1 to ignore the (now void) return value. + (convert_regs): Update calls to convert_regs_2 to ignore + the (now void) return value. After all the basic blocks have + been processed, call compensate_edges to actually emit new + insns. + (reg_to_stack): Initialize the aux info for each basic block + with FOR_EACH_BB instead of which FOR_EACH_BB_REVERSE. + +2005-05-28 Jan Hubicka <jh@suse.cz> + + * except.c (can_throw_internal_1, can_throw_external_1): Add + "is_resx" argument. + (can_throw_external, can_throw_internal): Bring into sync wrt + dealing resx. + * except.h (can_throw_internal_1, can_throw_external_1): Update + prototype. + * tree-eh.c (tree_can_throw_internal, tree_can_throw_external): + Deal properly with resx. + +2005-05-27 Kazu Hirata <kazu@cs.umass.edu> + + * basic-block.h (basic_block_def): Add phi_nodes and + predictions. Remove tree_annotations. + * predict.c (tree_predicted_by_p, tree_predict_edge, + combine_predictions_for_bb): Adjust references to predictions. + * tree-cfg.c (init_empty_tree_cfg, create_bb): Don't call + create_block_annotation. + (create_block_annotation, free_blocks_annotatios, + clear_blocks_annotations): Remove. + (dump_cfg_stats): Don't print out the memory spent on + bb_ann_d. + (delete_tree_cfg_annotations): Don't call free_blocks_annotations. + * tree-flow-inline.h (bb_ann): Remove. + (phi_nodes, set_phi_nodes): Update references to phi_nodes. + * tree-flow.h (bb_ann_d): Remove. + * tree-if-conv.c (process_phi_nodes): Update a reference to + phi_nodes. + * tree-phinodes.c (reserve_phi_args_for_new_edge, + create_phi_node, remove_phi_node): Likewise. + * tree-pretty-print.c (dump_generic_bb_buff): Don't call bb_ann. + * tree-ssa-dom.c (threaded_blocks): New. + (tree_ssa_dominator_optimize): Initialize, clear, and free + threaded_blocks. Update a call to thread_through_all_blocks. + (thread_across_edge): Use threaded_blocks instead of setting + incoming_edge_threaded. + * tree-ssa-threadupdate.c (threaded_through_all_blocks): Take + a bitmap of blocks that are threaded through. + * tree.h: Move the prototype of threaded_through_blocks to + tree-flow.h. + + * domwalk.c (walk_dominator_tree, init_walk_dominator_tree, + fini_walk_dominator_tree): Use VEC instead of VARRAY. + * domwalk.h (dom_walk_data): Change the type of + block_data_stack and free_block_data to VEC(void_p,heap)*. + * tree-ssa-dse.c (dse_initialize_block_local_data, + dse_optimize_stmt, dse_record_phis, dse_finalize_block): Use + VEC instead of VARRAY. + +2005-05-27 Jan Hubicka <jh@suse.cz> + + * cgraph.c: Include tree-gimple.h + (cgraph_edge): Rename expr to stmt. + (cgraph_create_edge): Likewise. + (cgraph_clone_node): Likewise. + * cgraph.h (cgraph_node): Use call_stmt instead of call_expr. + * cgraphunit.c (record_call_1): Rename to ... + (record_reference): ... this one; do not build edges. + (cgraph_varpool_analyze_pending_decls): Call record_reference directly. + (current_basic_block): Kill. + (cgraph_create_edges): Rewrite to work on gimple statements nicely. + (verify_cgraph_node): Likewise. + * tree-inline.c (copy_body_r): Do not mess up with cgraph edges. + (copy_bb): Mess up with cgraph edges here; simplify EH handling. + (copy_edges_for_bb): Simplify EH handling. + (expand_call_inline): Pass statement to cgraph_edge and + cgraph_create_edge. + +2005-05-27 Richard Guenther <rguenth@gcc.gnu.org> + + * tree-inline.c (copy_body_r): Manually fold *& to deal + with ADDR_EXPRs with mismatched types for now. + + * gimplify.c (fold_indirect_ref_rhs): New function. + (gimplify_modify_expr_rhs): Use it instead of pessimistic + fold_indirect_ref. + + * fold-const.c (fold_indirect_ref_1): Add type argument; + make sure the resulting expression is of this type. + (build_fold_indirect_ref, fold_indirect_ref): Adjust callers. + +2005-05-27 Kazu Hirata <kazu@cs.umass.edu> + + PR tree-optimization/21658 + * tree-ssa-ccp.c (ccp_fold): Call fold_binary instead of + fold_binary_to_constant. Likewise, call fold_unary instead of + fold_unary_to_constant. + +2005-05-27 Nathan Sidwell <nathan@codesourcery.com> + + * vec.h: Implement integral type vector specialization. + (VEC_T): Define a non-GTY structure. + (VEC_T_GTY): Define a GTY structure. + (VEC_TA): Rename to ... + (VEC_TA_GTY): ... here. + (DEF_VEC_I, DEF_VEC_ALLOC_I): New. + (DEF_VEC_P, DEF_VEC_ALLOC_P): Adjust. + (DEF_VEC_FUNC_P, DEF_VEC_ALLOC_FUNC_P): New, broken out of + DEF_VEC_P and DEF_VEC_ALLOC_P. + (DEF_VEC_O, DEF_VEC_ALLOC_O): Adjust. + (DEF_VEC_FUNC_O, DEF_VEC_ALLOC_FUNC_O): New, broken out of + DEF_VEC_O and DEF_VEC_ALLOC_O. + * global.c: Use DEF_VEC_I, DEF_VEC_ALLOC_I. + * lambda-code.c: Likewise. + * tree-into-ssa.c: Likewise. + * tree-ssa-live.c: Likewise. + +2005-05-27 Kazu Hirata <kazu@cs.umass.edu> + + * tree-into-ssa.c (update_ssa): Ensure that the operand cache + is up-to-date. + * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call + update_stmt_if_modified before calling update_ssa. + +2005-05-27 Ralf Corsepius <ralf.corsepius@rtems.org> + + * config/rs6000/t-rtems: Remove roe multilib variant. + +2005-05-26 Roger Sayle <roger@eyesopen.com> + + PR tree-optimization/9814 + * ifcvt.c (noce_emit_move_insn): If we fail to recognize the move + instruction, add the necessary clobbers by re-expanding the RTL + for arithmetic operations via optab.c's expand_unop/expand_binop. + (noce_try_bitop): New function to optimize bit manipulation idioms + of the form "if (x & C) x = x op C" and "if (!(x & C) x = x op C". + (noce_process_if_block): Call noce_try_bitop. + +2005-05-26 Roger Sayle <roger@eyesopen.com> + + * reg-stack.c (convert_regs_entry, convert_regs_exit, + convert_regs_1, convert_regs_2, convert_regs): Delete prototypes. + (reg_to_stack): Move to end of the file. Initialize the per + basic block information here, instead of... + (convert_regs_entry): Here. + (convert_regs): Change unused return type to void. + +2005-05-27 Kazu Hirata <kazu@cs.umass.edu> + + * c-pch.c, timevar.c, timevar.h, unwind-compat.c, + unwind-dw2-fde-compat.c, unwind-dw2-fde.c, config/mmix/mmix.h, + config/rs6000/eabispe.h, config/rs6000/lynx.h, + config/sh/elf.h, config/sh/symbian-pre.h, + config/sparc/sparc-protos.h: Update copyright. + +2005-05-26 Mike Stump <mrs@apple.com> + + * darwin.h (ASM_OUTPUT_LABELREF): Handle quoted non-lazy pointers + for Objective-C++. + +2005-05-26 Richard Guenther <rguenth@gcc.gnu.org> + + * tree-ssa-forwprop.c (forward_propagate_addr_expr): + See through ADDR_EXPR in finding place to propagate into. + +2005-05-26 Kazu Hirata <kazu@cs.umass.edu> + + * c-common.c, c-parser.c, cfgbuild.c, cfghooks.c, cfghooks.h, + cfgrtl.c, cgraphunit.c, ddg.c, expr.h, gcse.c, ggc-page.c, + ggc-zone.c, gimplify.c, ipa-inline.c, longlong.h, targhooks.c, + tree-flow-inline.h, tree-pass.h, tree-ssa-dse.c, + tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, + tree-ssa-operands.c, tree-vect-analyze.c, + tree-vect-transform.c, tree-vectorizer.c, tree.c, + config/arm/arm.c, config/bfin/bfin.c, config/frv/frv.c, + config/frv/frv.md, config/i386/i386.c, config/i386/sse.md, + config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h, + config/mcore/mcore.c, config/mips/mips.c, config/mips/mips.md, + config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c, + config/rs6000/rs6000.h, config/sh/sh.c, config/sh/sh.md, + config/sh/ushmedia.h, config/sparc/sparc.c, + config/sparc/sparc.md, config/stormy16/stormy-abi: Fix comment + typos. Follow spelling conventions. + * doc/invoke.texi, doc/tm.texi, doc/tree-ssa.texi: Fix typos. + Follow spelling conventions. + +2005-05-26 David Ung <davidu@mips.com> + + * config/mips/mips.c (mips_use_ins_ext_p): New helper function + that determines whether the MIPS32/64 R2 ext/ins should be used. + * config/mips/mips.h (ISA_HAS_EXT_INS): New macro. + * config/mips/mips.md (extzv): Changed predicate for operand to + nonimmediate_operand. Add code to generate insn patterns for + extzvsi and extzvdi. + (extzv<mode>): New pattern to match mips32/64 r2 ext insn. + (insv): Similarly for insertion. + (insv<mode>): Similarly. + +2005-05-26 Paolo Bonzini <bonzini@gnu.org> + + * simplify-rtx.c (avoid_constant_pool_reference): Support + offsetted addresses in the constant pool. + +2005-05-26 Paolo Bonzini <bonzini@gnu.org> + + * df.h (DF_SUBREGS, df_local_def_available_p, df_insn_modified_p): New. + * df.c (DF_SUBREGS, df_local_def_available_p, df_insn_modified_p): New. + +2005-05-26 Jakub Jelinek <jakub@redhat.com> + + PR target/21716 + * reg-stack.c (swap_rtx_condition): Don't crash if %ax user was not + found in the basic block and last insn in the basic block is not + INSN_P. Remove explicit unspec numbers that are no longer valid + from comments. + +2005-05-26 Paolo Bonzini <bonzini@gnu.org> + + * tree-vect-transform.c (vectorizable_operation): Try word_mode + vectorization if UNITS_PER_WORD == UNITS_PER_SIMD_WORD, even + if a vector mode is available. + +2005-05-25 Roger Sayle <roger@eyesopen.com> + + PR middle-end/21709 + * fold-const.c (const_binop): Check for division by zero during + complex division. + +2005-05-26 Ian Lance Taylor <ian@airs.com> + + * reload1.c (verify_initial_elim_offsets): Add braces to avoid + having a declaration after a statement. + +2005-05-26 Richard Sandiford <rsandifo@redhat.com> + + * opt-functions.awk (var_type): New function. + (var_set): Use CLVC_STRING if var_type returns "const char *". + * opth-gen.awk: Use var_type to find out the types of variables. + Don't print comments above each "extern" definition. + * optc-gen.awk: Use var_type in the same way. + * opts.h (cl_var_cond): Rename to... + (cl_var_type): ...this. Add CLVC_STRING. + (cl_option): Make "flag_var" a "void *" pointer. Replace "var_cond" + with "var_type". + * opts.c (handle_option, option_enabled): Update after above name + change. Cast flag_var before using it. Handle CLVC_STRING. + + * config/alpha/alpha.h (alpha_tls_size): Delete. + * config/alpha/alpha.c (alpha_tls_size, alpha_cpu_string) + (alpha_tune_string, alpha_tp_string, alpha_fprm_string) + (alpha_fptm_string, alpha_mlat_string): Delete. + (alpha_handle_option): Don't set the above variables here. Use the + integer argument to check the validity of -mtls-size=. + * config/alpha/alpha.opt (mcpu=, mtune=, mfp-rounding-mode=) + (mfp-trap-mode=, mtrap-precision=, mmemory-latency=): Add Var()s. + (mtls-size=): Likewise. Convert to a UInteger and initialize the + variable to 32. + + * config/arc/arc.c (arc_cpu_string, arc_text_string) + (arc_data_string, arc_rodata_string): Delete. + (arc_handle_option): Don't set the above variables here. + * config/arc/arc.opt (mcpu=, mtext=, mdata=, mrodata=): Add Var()s + and initialize them. + + * config/arm/arm.c (target_fpu_name, target_fpe_name) + (target_float_abi_name, target_abi_name, structure_size_string) + (arm_pic_register_string): Delete. + (arm_handle_option): Don't set the above variables here, except + in the handling of -mhard-float and -msoft-float. + * config/arm/arm.opt (mabi=, mfloat-abi=, mfp=, mfpe=, mfpu=) + (mpic-register=, mstructure-size-boundary=): Add Var()s. + + * config/avr/avr.c (avr_init_stack, avr_mcu_name, TARGET_HANDLE_OPTION) + (avr_handle_option): Delete. + * config/avr/avr.opt (mmcu=, minit-stack=): Add Var()s and initialize + them. + + * config/bfin/bfin.c (bfin_library_id): Delete. + (bfin_handle_option): Don't set it. + * config/bfin/bfin.opt (mshared-library-id=): Add Var(). + + * config/c4x/c4x.h (c4x_rpts_cycles): Delete. + * config/c4x/c4x.c (c4x_rpts_cycles): Delete. + (c4x_handle_option): Don't set c4x_rpts_cycles here. + * config/c4x/c4x.opt (mrpts=): Add Var(). + + * config/cris/aout.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't set + cris_elinux_stacksize_str here. + * config/cris/aout.opt (melinux-stacksize=): Add Var(). + * config/cris/cris.h (cris_max_stackframe_str, cris_cpu_str) + (cris_tune_str, cris_elinux_stacksize_str): Delete. + * config/cris/cris.c (cris_max_stackframe_str, cris_cpu_str) + (cris_tune_str, cris_elinux_stacksize_str): Delete. + (cris_handle_option): Don't set the above variables here. + * config/cris/cris.opt (mcpu=, march=, mtune=, mmax-stackframe=) + (max-stackframe=): Add Var()s. + + * config/i386/i386.h (ix86_tune_string, ix86_arch_string): Delete. + * config/i386/i386.c (ix86_cmodel_string, ix86_asm_string) + (ix86_tls_dialect_string, ix86_tune_string, ix86_arch_string) + (ix86_fpmath_string, ix86_regparm_string, ix86_align_loops_string) + (ix86_align_jumps_string, ix86_preferred_stack_boundary_string) + (ix86_branch_cost_string, ix86_align_funcs_string): Delete. + (ix86_handle_option): Don't set the above variables here. + * config/i386/i386.opt (malign-functions=, malign-jumps=) + (malign-loops=, march=, masm=, mbranch-cost=, mcmodel=, mfpmath=) + (mpreferred-stack-boundary=, mregparm=, mtls-dialect=, mtune=): Add + Var()s. + + * config/ia64/ia64.h (ia64_tls_size): Delete. + * config/ia64/ia64.c (ia64_tls_size): Delete. + (ia64_handle_option): Treat -mtls-size= as a UInteger option, + reading the integer argument from the "value" parameter. Don't + set ia64_tls_size here. + * config/ia64/ia64.opt (mtls-size=): Turn into a UInteger option. + Add Var() and Init(). + + * config/m32r/m32r.h (m32r_cache_flush_func): Delete. + (m32r_cache_flush_trap): Delete. + * config/m32r/m32r.c (m32r_cache_flush_func): Delete. + (m32r_cache_flush_trap): Delete. + (m32r_handle_option): Don't set the above variables when handling + -mflush-func= and -mflush-trap=. + * config/m32r/m32r.opt (-mflush-func=, -mflush-trap=): Add Var()s + and Init()s. + + * config/mips/mips.h (mips_cache_flush_func): Delete. + * config/mips/mips.c (mips_arch_string, mips_tune_string) + (mips_cache_flush_func): Delete. + (mips_handle_option): Don't set the above variables when handling + -march=, -mtune= and -mflush-func=. + * config/mips/mips.opt (march=, mflush-func=, mtune=): Add Var()s. + + * config/s390/s390.c (s390_arch_string): Delete. + (s390_handle_option): Don't set it here. + * config/s390/s390.opt (march=): Add Var(). + + * config/sparc/sparc.h (sparc_cmodel_string): Delete. + * config/sparc/sparc.c (sparc_cmodel_string): Delete. + (sparc_handle_option): Don't set it here. + * config/sparc/sparc.opt (mcmodel=): Add Var(). + +2005-05-25 Roger Sayle <roger@eyesopen.com> + + * convert.c (convert_to_integer) <POINTER_TYPE>: Avoid recursive + call to convert_to_integer by building the NOP_EXPR directly. + +2005-05-25 Richard Sandiford <rsandifo@redhat.com> + + * config/rs6000/rs6000.opt (mprioritize-restricted-insns=): Fix typo. + +2005-05-25 Daniel Berlin <dberlin@dberlin.org> + Jeff Law <law@redhat.com> + + * tree-cfg.c (verify_expr, case ADDR_EXPR): Verify invariant, + constant and side_effects of the ADDR_EXPR are consistent. + + * tree-nested.c (convert_local_reference): Set CURRENT_FUNCTION_DECL + appropriately around calls to recompute_tree_invarant_for_addr_expr. + 2005-05-25 Ulrich Weigand <uweigand@de.ibm.com> * config/s390/s390.c (GP_ARG_NUM_REG, FP_ARG_NUM_REG): New defines. @@ -906,6 +2164,10 @@ 2005-05-17 Paolo Bonzini <bonzini@gnu.org> + * tree-ssa-math-opts.c: New file. + +2005-05-17 Paolo Bonzini <bonzini@gnu.org> + * Makefile.in: Add tree-ssa-math-opts.c. * expr.c (expand_expr_real_1) <case RDIV_EXPR>: Never emit as a*(1/b). * fold-const.c (distribute_real_division): New. |