aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimplify.c
diff options
context:
space:
mode:
authorH.J. Lu <hongjiu.lu@intel.com>2014-01-17 15:23:58 +0000
committerH.J. Lu <hjl@gcc.gnu.org>2014-01-17 07:23:58 -0800
commit9a7f94d78b9468ba79ebad169fb1f262cf5950ac (patch)
tree85cbf2b0c5da82944051e42957aaab5b6f8e81ad /gcc/gimplify.c
parent0ffc4683170aa3cdb3c244745f7d52ae798da520 (diff)
downloadgcc-9a7f94d78b9468ba79ebad169fb1f262cf5950ac.zip
gcc-9a7f94d78b9468ba79ebad169fb1f262cf5950ac.tar.gz
gcc-9a7f94d78b9468ba79ebad169fb1f262cf5950ac.tar.bz2
Add X86_TUNE_AVOID_LEA_FOR_ADDR
ix86_split_lea_for_addr transforms a single LEA instruction into a series of MOV and ADD instructions. For lea 0x400(%edx, %ecx, 8), %edx we get mov %ecx, %edx add %ecx, %edx add %ecx, %edx add %ecx, %edx add %ecx, %edx add %ecx, %edx add %ecx, %edx add %ecx, %edx add $0x400, %edx For -mtune=intel, we want to turn on X86_TUNE_OPT_AGU, but avoid ix86_split_lea_for_addr to optimize for both Haswell and Silvermont. This patch adds X86_TUNE_AVOID_LEA_FOR_ADDR and PROCESSOR_INTEL. We keep PROCESSOR_INTEL the same as PROCESSOR_SILVERMONT, except that X86_TUNE_AVOID_LEA_FOR_ADDR isn't turned on for PROCESSOR_INTEL. * config/i386/i386-c.c (ix86_target_macros_internal): Handle PROCESSOR_INTEL. Treat like PROCESSOR_GENERIC. * config/i386/i386.c (intel_memcpy): New. Duplicate slm_memcpy. (intel_memset): New. Duplicate slm_memset. (intel_cost): New. Duplicate slm_cost. (m_INTEL): New macro. (processor_target_table): Add "intel". (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT with PROCESSOR_INTEL for "intel". (ix86_lea_outperforms): Support PROCESSOR_INTEL. Duplicate PROCESSOR_SILVERMONT. (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR instead of TARGET_OPT_AGU. (ix86_issue_rate): Likewise. (ix86_adjust_cost): Likewise. (ia32_multipass_dfa_lookahead): Likewise. (swap_top_of_ready_list): Likewise. (ix86_sched_reorder): Likewise. * config/i386/i386.h (TARGET_INTEL): New. (TARGET_AVOID_LEA_FOR_ADDR): Likewise. (processor_type): Add PROCESSOR_INTEL. * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT. Add X86_TUNE_AVOID_LEA_FOR_ADDR. From-SVN: r206717
Diffstat (limited to 'gcc/gimplify.c')
0 files changed, 0 insertions, 0 deletions