summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86ExpandPseudo.cpp
diff options
context:
space:
mode:
authorReid Kleckner <reid@kleckner.net>2015-06-17 21:31:17 +0000
committerReid Kleckner <reid@kleckner.net>2015-06-17 21:31:17 +0000
commit05b39483c1ee930a1b0e0502b5d67f28e70ff4d7 (patch)
treeeb0ffcdc08f3086102aeeab4f2e760ebbb6a5147 /llvm/lib/Target/X86/X86ExpandPseudo.cpp
parentc5ad8a9f75dd7e436920b7c6319bf899fb3cf507 (diff)
downloadbcm5719-llvm-05b39483c1ee930a1b0e0502b5d67f28e70ff4d7.tar.gz
bcm5719-llvm-05b39483c1ee930a1b0e0502b5d67f28e70ff4d7.zip
[X86] Cache variables that only depend on the subtarget
There is a one-to-one relationship between X86Subtarget and X86FrameLowering, but every frame lowering method would previously pull the subtarget off the MachineFunction and query some subtarget properties. Over time, these locals began to grow in complexity and it became important to keep their names and meaning in sync across all of the frame lowering methods, leading to duplication. We can eliminate that duplication by computing them once in the constructor. llvm-svn: 239948
Diffstat (limited to 'llvm/lib/Target/X86/X86ExpandPseudo.cpp')
-rw-r--r--llvm/lib/Target/X86/X86ExpandPseudo.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/llvm/lib/Target/X86/X86ExpandPseudo.cpp b/llvm/lib/Target/X86/X86ExpandPseudo.cpp
index 1b00997e750..82cac9d3f1e 100644
--- a/llvm/lib/Target/X86/X86ExpandPseudo.cpp
+++ b/llvm/lib/Target/X86/X86ExpandPseudo.cpp
@@ -89,14 +89,14 @@ bool X86ExpandPseudo::ExpandMI(MachineBasicBlock &MBB,
const bool Uses64BitFramePtr =
STI->isTarget64BitLP64() || STI->isTargetNaCl64();
// Check if we should use LEA for SP.
+ const X86FrameLowering *TFI = STI->getFrameLowering();
bool UseLEAForSP = STI->useLeaForSP() &&
X86FL->canUseLEAForSPInEpilogue(*MBB.getParent());
unsigned StackPtr = TRI->getStackRegister();
// Check for possible merge with preceding ADD instruction.
- StackAdj += X86FrameLowering::mergeSPUpdates(MBB, MBBI, StackPtr, true);
- X86FrameLowering::emitSPUpdate(MBB, MBBI, StackPtr, StackAdj, Is64Bit,
- Uses64BitFramePtr, UseLEAForSP, *TII,
- *TRI);
+ StackAdj += TFI->mergeSPUpdates(MBB, MBBI, StackPtr, true);
+ TFI->emitSPUpdate(MBB, MBBI, StackPtr, StackAdj, Is64Bit,
+ Uses64BitFramePtr, UseLEAForSP, *TII, *TRI);
}
// Jump to label or value in register.
OpenPOWER on IntegriCloud