X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2FChangeLog;h=79af84004c344c4c9a60204ae49aa73a45f1f63d;hb=e9c1817eff1e8a4af05a615ac0dc9e7f70c017d0;hp=eeed56d67e3fbca78964d001f595f548092ac363;hpb=140528a5ab967624567ae69a50b40ede82dac874;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/ChangeLog b/gcc/ChangeLog index eeed56d67e3..79af84004c3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,201 @@ +2011-10-21 H.J. Lu + Kirill Yukhin + + PR target/50740 + * config/i386/driver-i386.c (host_detect_local_cpu): Do cpuid 7 only + if max_level allows that. + +2011-10-21 Bernd Schmidt + + * reg-notes.def (DEP_CONTROL): New. + * sched-ebb.c (add_deps_for_risky_insns): Add a REG_DEP_CONTROL when + not doing speculation. + * rtlanal.c (record_hard_reg_sets, find_all_hard_reg_sets, + record_hard_reg_uses_1, record_hard_reg_uses): New functions. + * function.c (record_hard_reg_sets, record_hard_reg_uses, + record_hard_reg_uses_1): Remove; move to rtlanal.c. + * lists.c (copy_INSN_LIST, concat_INSN_LIST): New functions. + * haifa-sched.c: Swap includes of "rtl.h" and "hard-reg-set.h". + (MUST_RECOMPUTE_SPEC_P): New macro. + (real_insn_for_shadow): New function. + (cond_clobbered_p, recompute_todo_spec, check_clobbered_conditions, + toggle_cancelled_flags): New static functions. + (schedule_insn): Relax an assert to only check for empty hard back + dependencies. Skip cancelled dependencies. Call + check_clobbered_conditions. + (copy_insn_list): Remove function, renamed moved to lists.c. + (save_backtrack_point): Use new spelling copy_INSN_LIST. + (unschedule_insns_until): Ensure TODO_SPEC is reset properly. + (restore_last_backtrack_point): Likewise. Call toggle_cancelled_flags. + (estimate_insn_tick): Ignore cancelled dependencies. + (haifa_speculate_insn): Move declaration. + (try_ready): Move code into recompute_todo_spec and call it. Tweak + some asserts. Ensure predicated patterns are restored if necessary. + Dump DEP_CONTROL flag. + (haifa_change_pattern): Merge with sched_change_pattern. + (sched_change_pattern): Remove function. + * sched-deps.c (NON_FLUSH_JUMP_KIND, NON_FLUSH_JUMP): Remove. All + uses changed to simply not test NON_FLUSH_JUMP_P. + (ds_to_dk, dk_to_ds, dump_dep, ds_to_dt, dump_ds, check_dep): Handle + REG_DEP_CONTROL. + (dep_spec_p): If DO_PREDICATION, REG_DEP_CONTROL is speculative. + (reg_pending_control_uses, control_dependency_cache): New static + variables. + (sched_get_reverse_condition_uncached): New function. + (sd_find_dep_between): Remove pointless assert. Look in + control_dependency_cache. + (ask_dependency_caches, set_dependency_caches, sd_delete_dep, + extend_dependency_caches, sched_deps_finish): Handle REG_DEP_CONTROL + and control_dependency_cache. + (sd_unresolve_dep): Use dep_spec_p. + (add_dependence): Now a wrapper around add_dependence_1, handling + REG_DEP_CONTROL specially. + (flush_pending_lists): Clear pending_jump_insns. + (sched_analyze_1): Handle pending_jump_insns like a memory flush. + (sched_analyze_2): Unconditionally add to pending memory flushes, + keep previous behaviour but apply it to pending_jump_insns instead. + (sched_analyze_insn): Defer adding jump reg dependencies using + reg_pending_control_uses; add them to the control_uses list. Handle + pending_jump_insns and control_uses when adding dependence lists. + (deps_analyze_insn): Update INSN_COND_DEPS. + (deps_analyze_insn): Add jumps to pending_jump_insns rather than + last_pending_memory_flush. + (init_deps): Initialize pending_jump_insns. + (free_deps): Free control_uses. + (remove_from_deps): Remove from pending_jump_insns. + (init_deps_global): Allocate reg_pending_control_uses). + (finish_deps_global): Free it. + (add_dependence_1): Renamed from add_dependence. Handle + REG_DEP_CONTROL. + * rtl.h (record_hard_reg_uses, find_all_hard_reg_sets): Declare. + (copy_INSN_LIST, concat_INSN_LIST): Declare. + * sched-int.h (struct deps_reg): Add control_uses. + (struct deps_desc): Add pending_jump_insns. + (struct _haifa_deps_insn_data): Add cond_deps. + (struct _haifa_insn_data): Add must_recompute_spec and predicated_pat. + (INSN_COND_DEPS, PREDICATED_PAT): New macros. + (BITS_PER_DEP_WEAK): Adjust for two extra bits in the word. + (DEP_CONTROL): New macro. + (DEP_TYPES): Include it. + (HARD_DEP): Adjust definition. + (DEP_CANCELLED): New macro. + (enum SCHED_FLAGS): Add DO_PREDICATION. + (sched_get_reverse_condition_uncached, real_insn_for_shadow): Declare. + * sched-rgn.c (concat_INSN_LIST): Remove function. + (deps_join): Handle pending_jump_insns. + (free_pending_lists): Likewise. + * config/c6x/c6x.c (c6x_set_sched_flags): Set DO_PREDICATION for final + schedule. + +2011-10-21 Georg-Johann Lay + + PR target/50820 + * config/avr/libgcc.S (__EIND__): New define to 0x3C. + (__tablejump__): Consistently use EIND for indirect jump/call. + (__tablejump_elpm__): Ditto. + +2011-10-21 Bernd Schmidt + + * config/c6x/c6x.md (attr "op_pattern"): New. + (load_sdata_pic, mov_insn for QIHIM and SISFVM): Set it. + * config/c6x/c6x-mult.md.in (mulhi3_VARIANT_, mulhisi3_insn_VARIANT_): + Likewise. + * config/c6x/c6x-mult.md: Regenerate. + * config/c6x/c6x.c: Include "regrename.h". + (unit_req_table): New typedef. + (unit_reqs): Use it for the declaration. + (unit_req_factor, get_unit_reqs, merge_unit_reqs, unit_req_imbalance, + get_unit_operand_masks, try_rename_operands, reshuffle_units): New + static functions. + (count_unit_reqs): New arg reqs. All callers changed. Use + get_unit_reqs, and don't merge here. + (res_mii): New arg reqs. All callers changed. Rewrite to use a loop + using unit_req_factor. + (hwloop_optimize): Call reshuffle_units. Call merge_unit_reqs after + count_unit_reqs. + (c6x_reorg): Add reg notes problem, and call df_analyze. + * Makefile.in ($(out_object_file)): Depend on regrename.h. + +2011-10-21 Kai Tietz + + * fold-const.c (simple_operand_p_2): Handle integral + casts from boolean-operands. + +2011-10-21 Jan Hubicka + + * cgraph.c (dump_cgraph_node): Dump alias flag. + * cgraphunit.c (handle_alias_pairs): Handle weakrefs with + no destination. + (get_alias_symbol): New function. + (output_weakrefs): Output also weakrefs with no destinatoin. + (lto_output_node): Output weakref alias flag when at function boundary. + +2011-10-21 Andrew Stubbs + + PR target/50809 + * config/arm/driver-arm.c (vendors): Make static. + +2011-10-21 Uros Bizjak + + * config/i386/i386.c (ix86_emit_swdivsf): Force b into register. + (ix86_emit_swsqrtsf): Force a into register. + +2011-10-20 Mike Stump + + * regcprop.c (copyprop_hardreg_forward_1): Update recog_data + after validate_change wipes it out. + +2011-10-20 Ulrich Weigand + + * config/spu/spu.md ("vec_permv16qi"): Reduce selector modulo 32 + before using the shufb instruction. + +2011-10-20 Kirill Yukhin + + PR target/50766 + * config/i386/i386.md (bmi_bextr_): Update register/ + memory operand order. + (bmi2_bzhi_3): Ditto. + (bmi2_pdep_3): Ditto. + (bmi2_pext_3): Ditto. + +2011-10-20 Richard Henderson + + * target.def (vec_perm_const_ok): Rename from builtin_vec_perm_ok. + * optabs.c (can_vec_perm_expr_p): Update to match. + (expand_vec_perm_expr): Likewise. + * config/i386/i386.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Rename + from TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK. + * doc/tm.texi.in: Likewise. + +2011-10-20 Sergey Ostanevich + + PR target/50572 + * config/i386/i386.c (processor_target_table): Change Atom + align_loops_max_skip to 15. + +2011-10-20 Richard Henderson + + * target.def (builtin_vec_perm): Remove. + * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove. + + * config/i386/i386.c (ix86_expand_vec_perm_builtin): Remove. + (IX86_BUILTIN_VEC_PERM_*): Remove. + (bdesc_args): Remove vec_perm builtins + (ix86_expand_builtin): Likewise. + (ix86_expand_vec_perm_const_1): Rename from + ix86_expand_vec_perm_builtin_1. + (extract_vec_perm_cst): Merge into... + (ix86_vectorize_vec_perm_const_ok): ... here. Rename from + ix86_vectorize_builtin_vec_perm_ok. + (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove. + + * config/rs6000/rs6000.c (rs6000_builtin_vec_perm): Remove. + (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove. + + * config/spu/spu.c (spu_builtin_vec_perm): Remove. + (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove. + 2011-10-20 Uros Bizjak PR target/47989 @@ -10,10 +208,14 @@ 2011-10-20 Dodji Seketeli + * ggc-zone.c (ggc_internal_alloc_zone_stat): Rename + ggc_alloced_size_order_for_request into ggc_round_alloc_size like + it was done in ggc-page.c. + PR other/50659 * doc/cppopts.texi: Use @smallexample/@end smallexample in - documentation for -fdebug-cpp instead of @quotation/@end quotation - that is not supported by contrib/texi2pod.pl. + documentation for -fdebug-cpp instead of @quotation/@end quotation + that is not supported by contrib/texi2pod.pl. 2011-10-19 Jan Hubicka @@ -32,8 +234,8 @@ 2011-10-20 Ramana Radhakrishnan - PR target/50106 - * config/arm/arm.c (thumb_unexpanded_epilogue): Handle return + PR target/50106 + * config/arm/arm.c (thumb_unexpanded_epilogue): Handle return reg size from 1-3. 2011-10-20 Richard Guenther