diff options
author | Hans Wennborg <hans@hanshq.net> | 2015-12-17 23:18:39 +0000 |
---|---|---|
committer | Hans Wennborg <hans@hanshq.net> | 2015-12-17 23:18:39 +0000 |
commit | a6a2e512cfba695072a390b0552f984dc98e25af (patch) | |
tree | 2661dcf016e37ba35d111f97091cc63af68f3425 /llvm/lib/Target/X86/X86InstrInfo.h | |
parent | 51c8c8f3720ec757e0ea479a192123c16991f6f5 (diff) | |
download | bcm5719-llvm-a6a2e512cfba695072a390b0552f984dc98e25af.tar.gz bcm5719-llvm-a6a2e512cfba695072a390b0552f984dc98e25af.zip |
[X86] Use push-pop for materializing small constants under 'minsize'
Use the 3-byte (4 with REX prefix) push-pop sequence for materializing
small constants. This is smaller than using a mov (5, 6 or 7 bytes
depending on size and REX prefix), but it's likely to be slower, so
only used for 'minsize'.
This is a follow-up to r255656.
Differential Revision: http://reviews.llvm.org/D15549
llvm-svn: 255936
Diffstat (limited to 'llvm/lib/Target/X86/X86InstrInfo.h')
-rw-r--r-- | llvm/lib/Target/X86/X86InstrInfo.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86InstrInfo.h b/llvm/lib/Target/X86/X86InstrInfo.h index edd09d61759..9d40334206b 100644 --- a/llvm/lib/Target/X86/X86InstrInfo.h +++ b/llvm/lib/Target/X86/X86InstrInfo.h @@ -23,6 +23,7 @@ #include "X86GenInstrInfo.inc" namespace llvm { + class MachineInstrBuilder; class X86RegisterInfo; class X86Subtarget; @@ -564,6 +565,9 @@ private: /// operand and follow operands form a reference to the stack frame. bool isFrameOperand(const MachineInstr *MI, unsigned int Op, int &FrameIndex) const; + + /// Expand the MOVImmSExti8 pseudo-instructions. + bool ExpandMOVImmSExti8(MachineInstrBuilder &MIB) const; }; } // End llvm namespace |