diff options
author | Reid Kleckner <reid@kleckner.net> | 2015-06-17 21:31:17 +0000 |
---|---|---|
committer | Reid Kleckner <reid@kleckner.net> | 2015-06-17 21:31:17 +0000 |
commit | 05b39483c1ee930a1b0e0502b5d67f28e70ff4d7 (patch) | |
tree | eb0ffcdc08f3086102aeeab4f2e760ebbb6a5147 /llvm/lib/Target/X86/X86ExpandPseudo.cpp | |
parent | c5ad8a9f75dd7e436920b7c6319bf899fb3cf507 (diff) | |
download | bcm5719-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.cpp | 8 |
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. |