]> gcc.gnu.org Git - gcc.git/commit
Avoid instructions that incur expensive length-changing prefix (LCP) stalls on some...
authorTeresa Johnson <tejohnson@google.com>
Fri, 6 Apr 2012 05:03:49 +0000 (05:03 +0000)
committerTeresa Johnson <tejohnson@gcc.gnu.org>
Fri, 6 Apr 2012 05:03:49 +0000 (05:03 +0000)
commit7b38ee83df3686a974d84c17da96101239de47bb
treea12fd9a169d4afde5d4da2344818e26d9caa4a08
parent939c8f05b8ebcb9d34f2b58055899c3f71912a2c
Avoid instructions that incur expensive length-changing prefix (LCP) stalls on some x86-64 implementations...

Avoid instructions that incur expensive length-changing prefix (LCP) stalls
on some x86-64 implementations, notably Core2 and Corei7. Specifically, a move of
a 16-bit constant into memory requires a length-changing prefix and can incur significant
penalties. Modified an old patch written by H.J to split such instructions
during peephole2.

2012-04-05  Teresa Johnson  <tejohnson@google.com>
    H.J. Lu  <hongjiu.lu@intel.com>

* config/i386/i386.h (ix86_tune_indices): Add
X86_TUNE_LCP_STALL.
* config/i386/i386.md (move immediate to memory peephole2):
Add cases for HImode move when LCP stall avoidance is needed.
* config/i386/i386.c (initial_ix86_tune_features): Initialize
X86_TUNE_LCP_STALL entry.

Co-Authored-By: H.J. Lu <hongjiu.lu@intel.com>
From-SVN: r186176
gcc/ChangeLog
gcc/config/i386/i386.c
gcc/config/i386/i386.h
gcc/config/i386/i386.md
This page took 0.059407 seconds and 5 git commands to generate.