X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2FChangeLog;h=dc35a49316b7d81d65fc624f0c23e03fd27fc591;hp=8c847c7a98a8cfcfa7297ebed5f9d3b6d5863655;hb=a44110d73cfdeb003815a814f7207112bffe2bc8;hpb=e12df6c71afbd5fc24a443a791b6c8261a7b8a52 diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8c847c7a98a..dc35a49316b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,815 @@ +2007-06-30 Uros Bizjak + + PR target/32433 + * config/i386/i386.md (ffssi2): Expand as ffs_cmove for TARGET_CMOVE. + (ffs_cmove): New expander to expand using ctz pattern. + (*ffs_cmove): Remove pattern. + (*ffs_no_cmove): Enable only for !TARGET_CMOVE. + (ffsdi2): Expand using ctz pattern. + (*ffs_rex64): Remove pattern. + +2007-06-30 John David Anglin + + PR rtl-optimization/32296 + * pa.md (return): Delete pattern. + (return_internal): Remove "(const_int 1)" from pattern. + (epilogue): Use return_internal pattern for trivial returns. + * pa-protos.h (hppa_can_use_return_insn_p): Delete declaration. + * pa.c (hppa_can_use_return_insn_p): Delete function. Include "df.h". + +2007-06-30 Daniel Berlin + + Fix PR tree-optimization/32540 + Fix PR tree-optimization/31651 + + * tree-ssa-sccvn.c: New file. + + * tree-ssa-sccvn.h: Ditto. + + * tree-vn.c: Include tree-ssa-sccvn.h + (val_expr_paid_d): Removed. + (value_table): Ditto. + (vn_compute): Ditto. + (val_expr_pair_hash): Ditto. + (val_expr_pair_expr_eq): Ditto. + (copy_vuses_from_stmt): Ditto. + (vn_delete): Ditto. + (vn_init): Ditto. + (shared_vuses_from_stmt): Ditto. + (print_creation_to_file): Moved up. + (sort_vuses): Ditto. + (sort_vuses_heap): Ditto. + (set_value_handle): Make non-static. + (make_value_handle): Ditto. + (vn_add): Rewritten to use sccvn lookups. + (vn_add_with_vuses): Ditto. + (vn_lookup): Ditto (and second argument removed). + (vn_lookup_with_vuses): Ditto. + (vn_lookup_or_add): Ditto (and second argument removed); + (vn_lookup_or_add_with_vuses): Ditto. + (vn_lookup_with_stmt): New. + (vn_lookup_or_add_with_stmt): Ditto. + (create_value_handle_for_expr): Ditto. + + * tree-ssa-pre.c: Include tree-ssa-sccvn.h. + (seen_during_translate): New function. + (phi_trans_lookup): Use iterative_hash_expr, not vn_compute. + (phi_trans_add): Ditto. + (constant_expr_p): FIELD_DECL is always constant. + (phi_translate_1): Renamed from phi_translate, add seen bitmap. + Use constant_expr_p. + Avoid infinite recursion on mutually valued expressions. + Change callers of vn_lookup_or_add. + (phi_translate): New function. + (compute_antic_safe): Allow phi nodes. + (create_component_ref_by_pieces): Update for FIELD_DECL change. + (find_or_generate_expression): Rewrite slightly. + (create_expression_by_pieces): Updated for vn_lookup_or_add + change. + Update VN_INFO for new names. + (insert_into_preds_of_block): Update for new names. + (add_to_exp_gen): New function. + (add_to_sets): Use vn_lookup_or_add_with_stmt. + (find_existing_value_expr): Rewrite to changed vn_lookup. + (create_value_expr_from): Ditto, and use add_to_exp_gen. + (try_look_through_load): Removed. + (try_combine_conversion): Ditto. + (get_sccvn_value): New function. + (make_values_for_phi): Ditto. + (make_values_for_stmt): Ditto. + (compute_avail): Rewritten for vn_lookup_or_add changes and to use + SCCVN. + (init_pre): Update for SCCVN changes. + (fini_pre): Ditto. + (execute_pre): Ditto. + + * tree-flow.h (make_value_handle): Declare. + (set_value_handle): Ditto. + (sort_vuses_heap): Ditto. + (vn_lookup_or_add_with_stmt): Ditto. + (vn_lookup_with_stmt): Ditto. + (vn_compute): Remove. + (vn_init): Ditto. + (vn_delete): Ditto. + (vn_lookup): Update arguments. + + * Makefile.in (tree-ssa-pre.o): Add tree-ssa-sccvn.h + (tree-vn.o): Ditto. + (tree-ssa-sccvn.o): New. + (OBJS-common): Add tree-ssa-sccvn.o + +2007-06-30 Manuel Lopez-Ibanez + + PR c/4076 + * c-typeck.c (build_external_ref): Don't mark as used if called + from itself. + * calls.c (rtx_for_function_call): Likewise. + +2007-06-30 Richard Sandiford + + Revert: + + 2007-06-27 Richard Sandiford + + * dce.c (deletable_insn_p_1): New function, split out from... + (deletable_insn_p): ...here. Only treat bare USEs and CLOBBERs + specially, not those inside PARALLELs. Remove BODY argument + and adjust recursive call accordingly. + (prescan_insns_for_dce): Update call to delete_insn_p. + +2007-06-30 Rask Ingemann Lambertsen + + * combine.c (combine_validate_cost): New parameter NEWOTHERPAT. + (try_combine): Move potential calls to undo_all() so they happen + before we commit to using the combined insns. + +2006-06-30 Jan Hubicka + + * loop-unroll.c (unroll_loop_runtime_iterations): Unshare newly emit + code. + +2006-06-30 Thomas Neumann + + * ipa.c (cgraph_postorder): Cast according to the coding conventions. + (cgraph_remove_unreachable_nodes): Likewise. + * ipa-cp.c (ipcp_propagate_stage): Use BOTTOM instead of integer 0. + * ipa-inline.c (update_caller_keys): Cast according to the coding + conventions. + (cgraph_decide_recursive_inlining): Likewise. + (cgraph_decide_inlining_of_small_function): Likewise. + (try_inline): Likewise. + (cgraph_decide_inlining_incrementally): Likewise. + * ipa-pure-const.c (get_function_state): Likewise. + (scan_function): Likewise. + (analyze_function): Likewise. + (static_execute): Likewise. + * gcc/ipa-reference.c (scan_for_static_refs): Likewise. + (merge_callee_local_info): Likewise. + (analyze_function): Use type safe memory macros. + (static_execute): Likewise. Cast according to the coding conventions. + * ipa-type-escape.c (scan_for_regs): Cast according to the coding + conventions. + * ipa-utils.c (searchc): Likewise. Avoid using C++ keywords as variable + names. + (ipa_utils_reduced_inorder): Likewise. Use type safe memory macros. + * ipa-utils.h (struct ipa_dfa_info): Avoid using C++ keywords as + variable names. + +2007-06-29 Andrew Pinski + + PR middle-end/30024 + * emit-rtl.c (init_emit_once): Intilize const_tiny_rtx[0] + for complex modes (both int and real). + +2007-06-29 Jan Hubicka + + * cse.c: Rever accidentally comitted TODO_verify_rtl_sharing change. + +2007-06-29 Jan Hubicka + + PR middle-end/32372 + * cse.c (cse_insn): Avoid invalid sharing in between register note and + the insn pattern. + +2007-06-29 Anatoly Sokolov + + PR target/32335 + * config/avr/avr.c: Include dataflow header file. + (expand_prologue): Adjust for prologue insn change. + * config/avr/avr.md (call_prologue_saves): Only modify REG_SP once + inside a insn. + +2007-06-29 Richard Guenther + + PR middle-end/32493 + * gimplify.c (gimplify_call_expr): Ignore variable argument parts + during type verification. + +2007-06-29 Jan Hubicka + + * recog.c (validate_change_rtx_1): Unshare TO argument. + +2007-06-29 Uros Bizjak + + PR tree-optimization/24659 + * tree-vect-transform.c (vectorizable_call): Handle + (nunits_in == nunits_out / 2) and (nunits_out == nunits_in / 2) cases. + + * config/i386/sse.md (vec_pack_sfix_v2df): New expander. + * config/i386/i386.c (enum ix86_builtins) + [IX86_BUILTIN_VEC_PACK_SFIX]: New constant. + (struct bdesc_2arg) [__builtin_ia32_vec_pack_sfix]: New builtin + description. + (ix86_init_mmx_sse_builtins): Define all builtins with 2 arguments as + const using def_builtin_const. + (ix86_expand_binop_builtin): Remove bogus assert() that insn wants + input operands in the same modes as the result. + (ix86_builtin_vectorized_function): Handle BUILT_IN_LRINT. + +2007-06-29 Richard Sandiford + + * df-problems.c (df_set_unused_notes_for_mw): Fix formatting. + (df_set_dead_notes_for_mw): Likewise. + +2007-06-29 Eric Botcazou + + * c-common.c (pointer_int_sum): Do the negation in sizetype. + +2007-06-28 DJ Delorie + + * config/m32c/m32c.h (OVERRIDE_OPTIONS): Omit unneeded semicolon. + +2007-06-28 Geoffrey Keating + + * doc/invoke.texi (C++ Dialect Options): Document + fvisibility-ms-compat. + * c.opt (fvisibility-ms-compat): New. + +2007-06-28 Andrew Pinski + + PR tree-opt/32417 + * tree-affine.c (aff_combination_add_elt): Handle + pointer addition specially. + +2007-06-28 Jakub Jelinek + + * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Ensure + decl is non-external for AIX ABI. + +2007-06-28 David Edelsohn + + * config/rs6000/predicates.md (current_file_function_operand): + Ensure the symbol is non-external for AIX ABI. + +2007-06-28 Nick Clifton + + * common.opt (fipa-matrix-reorg): Add Optimization attribute. + (fdce, fdse, fpredictive-commoning): Likewise. + +2007-06-28 Francois-Xavier Coudert + + PR other/31400 + * gcc.c (process_command): Recognize the new -static-libgfortran + option. + +2007-06-27 Rask Ingemann Lambertsen + + PR target/32418 + * config/m32c/m32c.c (m32c_eh_return_stackadj_rtx): Dataflow fix: + Use a call clobbered hard reg instead of a pseudo reg. + +2007-06-27 Kaz Kojima + + * config/sh/sh.md (load_gbr): Use correct operand constraint. + +2007-06-27 Kaz Kojima + + PR target/32479 + * config/sh/sh.md (udivsi3): Don't wrap the sequence with + REG_LIBCALL and REG_RETVAL notes. + (divsi3, mulsi3): Likewise. + (mulhisi3): Likewise. Use emit_libcall_block. + (umulhisi3, smulsi3_highpart, umulsi3_highpart_i): Likewise. + +2007-06-27 Seongbae Park + + PR rtl-optimization/32481 + * combine.c (adjust_for_new_dest): Rescan the changed insn. + +2007-06-27 Richard Sandiford + + * dce.c (deletable_insn_p_1): New function, split out from... + (deletable_insn_p): ...here. Only treat bare USEs and CLOBBERs + specially, not those inside PARALLELs. Remove BODY argument + and adjust recursive call accordingly. + (prescan_insns_for_dce): Update call to delete_insn_p. + +2007-06-27 Richard Guenther + + PR middle-end/32492 + * tree.h (fold_convertible_p): Declare. + * fold-const.c (fold_convertible_p): New function. + * gimplify.c (gimplify_call_expr): Use fold_convertible_p + instead of lang_hooks.types_compatible_p. + +2007-06-26 Jan Hubicka + + * fwprop.c (try_fwprop_subst): Use validate_unshare_change. + * postreload.c (reload_cse_simplify_set): Instead of copying the rtx + early use validate_unshare_change. + (reload_combine): Likewise. + * recog.c (change_t): New field unshare. + (validate_change_1): Rename from validate_change; add argument unshare. + (validate_change): Turn into wrapper of validate_change_1; update + prototype for bools. + (validate_unshare_change): New. + (confirm_change_group): Unshare changes if asked for; avoid unnecesary + calls of df_insn_rescan. + * recog.h (validate_change): Replace ints by bools. + (validate_unshare_change): Declare. + +2007-06-26 Kenneth Zadeck + + * tree.def (VEC_WIDEN_MULT_LO_EXPR): Corrected string name. + +2007-06-26 Steve Ellcey + + * builtins.c (expand_builtin_next_arg): Change Pmode to ptr_mode. + +2007-06-25 Jan Hubicka + + * ipa-inline.c (cgraph_mark_inline): Assert that we never inline + uninlinable call. + (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining, + cgraph_decide_inlining_incrementally): Move uninlinability checks to + places other call site specific checks are performed. + +2007-06-25 Andrew Pinski + + PR tree-opt/32421 + * tree-vect-transform.c (vectorizable_operation): Convert + POINTER_PLUS_EXPR over to PLUS_EXPR. + +2007-06-25 Chao-ying Fu + + * doc/rtl.texi (Machine Modes): Document QQ, HQ, SQ, DQ, TQ, + UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA, USA, UDA, and UTAmodes. + Document MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM. + Document GET_MODE_IBIT, and GET_MODE_FBIT. + + * machmode.h (VECTOR_MODE_P): Test MODE_VECTOR_FRACT, + MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM. + (SCALAR_FRACT_MODE_P, SCALAR_UFRACT_MODE_P, ALL_SCALAR_FRACT_MODE_P, + SCALAR_ACCUM_MODE_P, SCALAR_UACCUM_MODE_P, ALL_SCALAR_ACCUM_MODE_P, + SIGNED_SCALAR_FIXED_POINT_MODE_P, UNSIGNED_SCALAR_FIXED_POINT_MODE_P, + ALL_SCALAR_FIXED_POINT_MODE_P, FRACT_MODE_P, UFRACT_MODE_P, + ALL_FRACT_MODE_P, ACCUM_MODE_P, UACCUM_MODE_P, ALL_ACCUM_MODE_P, + SIGNED_FIXED_POINT_MODE_P, UNSIGNED_FIXED_POINT_MODE_P, + ALL_FIXED_POINT_MODE_P): New define. + (CLASS_HAS_WIDER_MODES_P): Test MODE_FRACT, MODE_UFRACT, MODE_ACCUM, + MODE_UACCUM. + (GET_MODE_IBIT, GET_MODE_FBIT): New define. + + * mode-classes.def (MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM, + MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, + MODE_VECTOR_UACCUM): New mode classes. + + * machmode.def: Document FRACT_MODE, UFRACT_MODE, ACCUM_MODE, + UACCUM_MODE, ADJUST_IBIT, and ADJUST_FBIT. + Add QQ, HQ, SQ, DQ, TQ, UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA, + USA, UDA, and UTA. + + * genmodes.c (struct mode_data): Add ibit and fbit fields. + (blank_mode): Initialize ibit and fbit. + (adj_ibit, adj_fbit): New to adjust ibit and fbit. + (vector_class): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM. + (new_adjust): Change required_class to required_class_from and + required_class_to for testing within a range. + (complete_mode): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM, + MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, + MODE_VECTOR_UACCUM. + (FRACT_MODE, UFRACT_MODE, ACCUM_MODE, UACCUM_MODE): New define. + (make_fixed_point_mode): New. + (_ADD_ADJUST): Change C to C1 and C2. + (ADJUST_BYTESIZE, ADJUST_ALIGNMENT, ADJUST_FLOAT_FORMAT): Change to + use a range for machine classes. + (ADJUST_IBIT, ADJUST_FBIT): New. + (emit_insn_modes_h): Output defines of CONST_MODE_IBIT and + CONST_MODE_FBIT. + (emit_mode_adjustments): Handle MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, + MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM. + Emit adjustment for ibit and fbit. + (emit_mode_ibit, emit_mode_fbit): New. + (emit_insn_modes_c): Add emit_mode_ibit and emit_mode_fbit. + +2007-06-25 Nathan Froyd + + * config/rs6000/spe.md (*frob_ti_tf_2): Specify an input_operand + as the source of the set. + +2007-06-25 Roman Zippel + + * config/m68k/m68k.h (DATA_REGNO_P, ADDRESS_REGNO_P, INT_REGNO_P, + FP_REGNO_P): Use IN_RANGE. + (REGNO_OK_FOR_DATA_P, REGNO_OK_FOR_FP_P): Remove. + (REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): New. + (DATA_REG_P): Use DATA_REGNO_P. + (FP_REG_P): Use FP_REGNO_P. + (ADDRESS_REG_P): Use ADDRESS_REGNO_P. + * config/m68k/m68k.c (m68k_legitimate_base_reg_p): Use + REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P. + +2007-06-24 Jan Hubicka + + PR middle-end/30563 + * cgraphunit.c (cgraph_analyze_function): Fix ordering problem. + +2007-06-24 Sebastian Pop + + PR middle-end/32461 + * fold-const.c (fold_binary): Strip nops of operand 0 + of BIT_NOT_EXPR before calling operand_equal_p. + * testsuite/gcc.dg/tree-ssa/pr32461-1.c: New. + * testsuite/gcc.dg/tree-ssa/pr32461-2.c: New. + +2007-06-23 Mark Mitchell + + * doc/extend.texi: Document that dllimport and dllexport imply + default visibility. + * tree.c (handle_dll_attribute): Set DECL_VISIBILITY on the + imported or exported declaration, including type declarations. + * c-common.c (handle_visibility_attribute): Check for conflicts + with dllimport/dllexport. + (c_determine_visibility): Handle dllimport/dllexport as an + explicit visibility atttribute. + +2007-06-23 Richard Guenther + + PR tree-optimization/16876 + PR middle-end/29478 + * tree.h (CALL_CANNOT_INLINE_P): New macro to access static_flag + for CALL_EXPRs. + * tree-inline.c (initialize_inlined_parameters): Do not call + lang_hooks.tree_inlining.convert_parm_for_inlining. + * cgraphbuild.c (initialize_inline_failed): Set inline failed + reason for mismatched types. + * gimplify.c (gimplify_call_expr): Verify the call expression + arguments match the called function type signature. Otherwise + mark the call expression to be not considered for inlining + using CALL_CANNOT_INLINE_P flag. + * ipa-inline.c (cgraph_mark_inline): Honor CALL_CANNOT_INLINE_P on the + edges call expression. + (cgraph_decide_inlining_of_small_function): Likewise. + (cgraph_decide_inlining): Likewise. + * c-objc-common.h (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING): + Remove define. + * c-tree.h (c_convert_parm_for_inlining): Remove declaration. + * c-typeck.c (c_convert_parm_for_inlining): Remove. + * langhooks-def.h (lhd_tree_inlining_convert_parm_for_inlining): + Remove declaration. + (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING): Remove define. + * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): + Remove. + * langhooks.h (struct lang_hooks_for_tree_inlining): Remove + convert_parm_for_inlining member. + +2007-06-23 Richard Earnshaw + + PR target/31152 + * arm.md (negscc): Match the correct operand for optimized LT0 test. + Remove optimization for GT. + +2007-06-23 Kenneth Zadeck + + PR middle-end/32437 + * dce.c (deletable_insn_p): Add extra parameter and recurse if insn + is a PARALLEL. + (prescan_insns_for_dce): Add extra parameter. + +2007-06-23 Jan Hubicka + + PR middle-end/31541 + * gimplify.c (mark_addressable): New function. + (gimplify_modify_expr_rhs, gimplify_addr_expr, gimplify_expr): Use it. + +2007-06-22 Uros Bizjak + + PR middle-end/32374 + * expr.c (store_constructor): Do not clobber non-zeroed memory. + +2007-06-22 Uros Bizjak + + PR target/32413 + * config/i386/i386.c (ix86_register_move_cost): Rise the cost of + moves between MMX/SSE registers to at least 8 units to prevent + ICE caused by non-tieable SI/HI/QImodes in SSE registers. + +2007-06-22 Uros Bizjak + + * config/i386/i386.c (override_options): Correct x86_sahf + setting condition. + +2007-06-21 David Daney + + PR target/32406 + * config/mips/mips.md (define_constants): Rename UNSPEC_EH_RECEIVER + to UNSPEC_NONLOCAL_GOTO_RECEIVER globally. + (exception_receiver): Renamed to ... + (nonlocal_goto_receiver): ... this. + +2007-06-22 Roman Zippel + + * df-scan.c (df_read_modify_subreg_p): Use REGMODE_NATURAL_SIZE. + (df_def_record_1): Set (DF_REF_READ_WRITE | DF_REF_PARTIAL) for + partial register accesses. + +2007-06-21 Adam Nemet + + * fold-const.c (debug_fold_checksum): Move it under + ENABLE_FOLD_CHECKING. + +2007-06-21 Sebastian Pop + + PR middle-end/20623 + * tree.h (debug_fold_checksum): Declared. + * fold-const.c (build_fold_addr_expr_with_type_1): New. + (build_fold_addr_expr_with_type, build_fold_addr_expr): Use + build_fold_addr_expr_with_type_1. + (fold_addr_expr, debug_fold_checksum): New. + (fold_checksum_tree): Don't fold TREE_CHAIN of an SSA_NAME. + (fold_unary, fold_comparison, split_address_to_core_and_offset): + Use fold_addr_expr. + +2007-06-21 Sebastian Pop + + PR tree-optimization/19590 + * tree-vrp.c (adjust_range_with_scev): Set the range when the result + of scev is a constant. + * gcc/testsuite/gcc.dg/tree-ssa/pr19590.c: New. + +2007-06-21 Kenneth Zadeck + + * df-problems.c (df_note_bb_compute): Made computation of live + info consistent with df_lr. + +2007-06-21 Richard Guenther + + PR tree-optimization/32453 + * tree-vrp.c (extract_range_from_assert): Build POINTER_PLUS_EXPR + for pointer anti-range. + +2007-06-21 H.J. Lu + + * config/i386/i386.c (processor_target_table): Increase maximum + skip from 7 byte to 10 byte for Pentium Pro, Core 2 Duo and + default 64bit. + + * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Ensure 8 + byte alignment if > 8 byte alignment is preferred. + * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. + +2007-06-21 Jakub Jelinek + + PR tree-optimization/31866 + * tree-ssa-coalesce.c (create_outofssa_var_map): Do nothing + if ASM_EXPR's input is not a SSA_NAME. + + PR middle-end/32362 + * omp-low.c (lookup_decl_in_outer_ctx): Don't ICE if t is NULL, + but decl is a global var, instead return decl. + * gimplify.c (gimplify_adjust_omp_clauses_1): Add shared clauses + even for is_global_var decls, if they are private in some outer + context. + +2007-06-21 Richard Guenther + + PR tree-optimization/32451 + * tree-ssa-threadupdate.c (thread_single_edge): Fixup edge flags. + +2007-06-21 Christian Bruel + + * config/sh/sh-protos.h (sh_loads_bankedreg_p): Declare. + * config/sh/sh.c (sh_loads_bankedreg_p): New function. + (push_regs): Changed saving order or banked registers. + (sh_expand_epilogue): Likewise. + * config/sh/sh.h (BANKED_REGISTER_P): New macro. + (FIRST_BANKED_REG): Likewise. + (LAST_BANKED_REG): Likewise. + * config/sh/sh.md (banked) New attribute. + (in_delay_slot): Check banked attribute. + +2007-06-20 Sebastian Pop + + PR tree-optimization/32075 + * tree-data-ref.c (subscript_dependence_tester_1, + analyze_miv_subscript, analyze_overlapping_iterations, + add_distance_for_zero_overlaps, build_classic_dist_vector, + subscript_dependence_tester_1, analyze_overlapping_iterations, + subscript_dependence_tester, access_functions_are_affine_or_constant_p, + compute_affine_dependence, compute_all_dependences): Pass loop_nest + to evolution_function_is_affine_multivariate_p. + +2007-06-20 Eric Botcazou + + * df-scan.c (df_get_call_refs): Be prepared for MEMs inside CLOBBERs. + +2007-06-20 Rask Ingemann Lambertsen + + PR target/32335 + * config/m32c/m32c.c (m32c_emit_epilogue): Use new HImode epilogue + for TARGET_A16. + * config/m32c/prologue.md (epilogue_exitd_16): New. + (epilogue_reit_16): New. + (epilogue_exitd): Rename to epilogue_exitd_24. + (epilogue_reit): Rename to epilogue_reit_24. + +2007-06-20 Seongbae Park + Maxim Kuvyrkov + + * dbgcnt.def (global_alloc_at_func, global_alloc_at_reg): + New counters. + * haifa-sched.c (queue_to_ready): Don't requeue next insn + if dbg_cnt (sched_insn) reaches the limit. + (choose_ready): New parameter INSN_PTR and new return value. + (schedule_block): Handle dbg_cnt (sched_insn). Handle + the new return value from choose_ready. + * global.c (global_aloc): New dbgcnt global_alloc_at_reg. + (rest_of_handle_global_alloc): New global_alloc_at_func. + +2007-06-20 Adam Nemet + + PR tree-optimization/25737 + * tree.h (struct tree_struct_field_tag): Add new field alias_set. + (SFT_NONADDRESSABLE_P, SFT_ALIAS_SET): New macros. + * tree-flow.h (struct fieldoff): Add new field alias_set. + * tree-ssa-structalias.c (push_fields_onto_fieldstack): Add new + argument addressable_type. Set alias_set of fieldoff. + * tree-ssa-alias.c (create_sft): Add new argument alias_set. + (create_overlap_variables_for): Pass alias_set from fieldoff to + create_sft. + * alias.c (get_alias_set): Use alias_set from SFT if set. + +2007-06-20 Hui-May Chang + + * config/i386/darwin.h (ASM_OUTPUT_COMMON): Print the size + of a variable as an unsigned HOST_WIDE_INT integer. + +2007-06-20 Zdenek Dvorak + + PR rtl-optimization/32405 + * loop-iv.c (iv_get_reaching_def): Fail for partial defs. + +2007-06-20 Jakub Jelinek + + * Makefile.in (omega.o): Depend on $(DIAGNOSTIC_H). + + PR middle-end/31959 + * builtins.c: Include diagnostic.h. + (expand_builtin_expect): Make gcc_assert more permissive. + * Makefile.in (builtins.o): Depend on $(DIAGNOSTIC_H). + + PR inline-asm/32109 + * gimplify.c (gimplify_asm_expr): Issue error if type is addressable + and !allows_mem. + + PR middle-end/32285 + * calls.c (precompute_arguments): Also precompute CALL_EXPR arguments + if ACCUMULATE_OUTGOING_ARGS. + +2007-06-19 Rask Ingemann Lambertsen + + * config/m68hc11/m68hc11.c: Include dataflow header file. + (m68hc11_reorg): Port to dataflow. + +2007-06-19 Kenneth Zadeck + + * df.h (DF_FIRST_OPTIONAL_PROBLEM): Removed. + (struct df_problem.free_blocks_on_set_blocks): New field. + (struct dataflow.optional_p): New field. + (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed. + (df_live_set_all_dirty): New function. + * df-scan.c (df_scan_alloc): Initialize optional_p. + (problem_SCAN): Initialize free_blocks_on_set_blocks. + * df-core.c (df_set_blocks): Removed use of + DF_FIRST_OPTIONAL_PROBLEM. Now uses + df_problem.free_blocks_on_set_blocks to determine which blocks are + recycled. + (df_remove_problem): Removed use of DF_FIRST_OPTIONAL_PROBLEM. + (df_finish_pass): Removed use of DF_FIRST_OPTIONAL_PROBLEM. Now + uses dataflow.optional_p to determine if problem should be + deleted. + (rest_of_handle_df_initialize): Only start live problem if + -02 or above. + (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed. + * df-problems.c (df_ru_alloc, df_rd_alloc, df_lr_alloc, + df_live_alloc, df_urec_alloc, df_note_alloc): set optional_p. + (problem_RU, problem_RD, problem_LR, problem_UREC, problem_CHAIN, + problem_NOTE): Initialize free_blocks_on_set_blocks. + (df_lr_bb_local_compute): Recompute luids if df_live problem is + not active. + (df_live_set_all_dirty, df_note_alloc): New function. + * regrename.c (merge_overlapping_regs): Change DF_LIVE_* to + df_get_live_*. + * sched_ebb.c (compute_jump_reg_dependencies): Ditto. + * postreload.c (reload_combine): Ditto. + * cse.c (cse_extended_basic_block): Ditto. + * regmove.c (mark_flags_life_zones): Ditto. + * rtlfactoring.c (split_blocks_after_seqs, split_pattern_seq, + erase_matching_seqs): Ditto. + * bt-load.c (compute_defs_uses_and_gen): Ditto. + * integrate (allocate_initial_values): Ditto. + * combine.c (reg_dead_at_p): Ditto. + * resource.c (mark_target_live_regs): Ditto. + * sched-rgn.c (check_live_1, update_live_1): Ditto. + * config/sh/sh.c (find_r0_life_regions): Ditto. + * global.c (rest_of_handle_global_alloc): Only add back df_live + for -O > 1. + * local-alloc.c (rest_of_handle_local_alloc): Only remove + df_live for -O > 1. + * ifcvt.c (dead_or_predicable): Change DF_LIVE_* to + df_get_live_*. + (if_convert): Make sure df_live is there at -O == 1. + (pass_if_after_combine): Cleanup flags. + * init-regs.c (initialize_uninitialized_regs): Make sure df_live + is there at -O == 1. + +2007-06-19 Seongbae Park + + * config/arm/arm.c (arm_get_frame_offsets): Set + offsets->locals_base to avoid negative stack size. + (thumb1_expand_prologue): Assert on negative stack size. + +2007-04-19 Sebastian Pop + + PR tree-optimization/32367 + * tree-chrec.h (build_polynomial_chrec): Verify that the left hand side + of the chrec has no evolution in that loop. + * testsuite/gcc.dg/tree-ssa/pr32367.c: New. + +2007-06-19 Bob Wilson + + * config/xtensa/xtensa.c: Include "df.h". + (xtensa_builtin_saveregs): Use adjust_address instead of change_address. + (xtensa_va_start): Invoke make_tree with sizetype for + expand_builtin_saveregs and then convert the result to a pointer. + Use POINTER_PLUS_EXPR. Use size_int instead of build_int_cst. + (xtensa_gimplify_va_arg_expr): Use size_int instead of build_int_cst. + Subtract argument size from index value as integers and then use + POINTER_PLUS_EXPR to add the result to the array address. + +2007-06-19 Rask Ingemann Lambertsen + + PR target/32335 + * config/m32c/m32c.c: Include dataflow header file. + (m32c_emit_prologue): Adjust for prologue insn change. + * config/m32c/prologue.md (prologue_enter_16): Only modify SP_REGNO + once inside a PARALLEL. Assume frame size passed in operand 0 + includes space to save the fb register. + (prologue_enter_24): Likewise. + (epilogue_exitd): Only modify SP_REGNO once inside a PARALLEL. + +2007-06-19 David Daney + + PR target/32369 + * config/frv/frv.c (frv_ifcvt_modify_tests): Dataflow merge fix. + (frv_ifcvt_modify_insn): Likewise. + +2007-06-19 Richard Guenther + + * tree-ssa-structalias.c (handle_ptr_arith): Make sure to + only handle positive offsets that fit in a HOST_WIDE_INT. + +2007-06-19 Uros Bizjak + + * config/i386/i386.c (ix86_emit_swsqrtsf): Filter out infinity + result of rsqrt insn for zero input argument to avoid NaN. + +2007-06-19 Richard Guenther + + PR middle-end/31950 + * tree-ssa-alias-warnings.c (ffan_walker): Punt on MTAGs. + +2007-06-19 Jakub Jelinek + + PR tree-optimization/32353 + * tree-ssa-structalias.c (set_uids_in_ptset): Also handle RESULT_DECL. + +2007-06-19 Nick Clifton + + * config/m32r/linux.h (LIB_SPEC): Always imply -lpthread for -pthread. + +2007-06-18 Uros Bizjak + + PR target/32389 + * config/i386/i386.h (enum ix86_stack_slot): Add SLOT_VIRTUAL. + * config/i386/i386.c (assign_386_stack_local): Assert that + SLOT_VIRTUAL is valid only before virtual regs are instantiated. + (ix86_expand_builtin) [IX86_BUILTIN_LDMXCSR, IX86_BUILTIN_STMXCSR]: + Use SLOT_VIRTUAL stack slot instead of SLOT_TEMP. + * config/i386/i386.md (truncdfsf2, truncxf2): Ditto. + +2007-06-18 Steve Ellcey + + * config/ia64/ia64.h (LIBGCC2_TF_CEXT): New. + +2007-06-18 Seongbae Park + + PR rtl-optimization/32321 + * gcse.c (replace_store_insn): Update the note before + calling emit_insn_after. + +2007-06-18 Kenneth Zadeck + + PR middle-end/32355 + * gcse (rest_of_handle_gcse): Add call to df_finish_pass after + cse_main. + * df-problems.c (df_note_bb_compute): Fix dumping info. + 2007-06-18 Kazu Hirata * config/m68k/m68k.c (m68k_expand_epilogue): Emit a return @@ -610,6 +1422,7 @@ * df-scan.c (df_get_exit-block_use_set): Always add the stack pointer to the exit block use set. + (df_insn_delete, df_insn_rescan): Fixed spelling of "deferring". * gcse.c (cpro_jump): Don't emit barrier in cfglayout mode. * config/sparc/sparc.c (sparc_check_64): Check df != NULL.