diff options
Diffstat (limited to 'lib/Target/AArch64/AArch64StorePairSuppress.cpp')
| -rw-r--r-- | lib/Target/AArch64/AArch64StorePairSuppress.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/Target/AArch64/AArch64StorePairSuppress.cpp b/lib/Target/AArch64/AArch64StorePairSuppress.cpp index 1c6b15790ea98..f904b23794169 100644 --- a/lib/Target/AArch64/AArch64StorePairSuppress.cpp +++ b/lib/Target/AArch64/AArch64StorePairSuppress.cpp @@ -115,6 +115,9 @@ bool AArch64StorePairSuppress::isNarrowFPStore(const MachineInstr &MI) { } bool AArch64StorePairSuppress::runOnMachineFunction(MachineFunction &MF) { + if (skipFunction(*MF.getFunction())) + return false; + const TargetSubtargetInfo &ST = MF.getSubtarget(); TII = static_cast<const AArch64InstrInfo *>(ST.getInstrInfo()); TRI = ST.getRegisterInfo(); @@ -141,8 +144,8 @@ bool AArch64StorePairSuppress::runOnMachineFunction(MachineFunction &MF) { if (!isNarrowFPStore(MI)) continue; unsigned BaseReg; - unsigned Offset; - if (TII->getMemOpBaseRegImmOfs(&MI, BaseReg, Offset, TRI)) { + int64_t Offset; + if (TII->getMemOpBaseRegImmOfs(MI, BaseReg, Offset, TRI)) { if (PrevBaseReg == BaseReg) { // If this block can take STPs, skip ahead to the next block. if (!SuppressSTP && shouldAddSTPToBlock(MI.getParent())) @@ -150,7 +153,7 @@ bool AArch64StorePairSuppress::runOnMachineFunction(MachineFunction &MF) { // Otherwise, continue unpairing the stores in this block. DEBUG(dbgs() << "Unpairing store " << MI << "\n"); SuppressSTP = true; - TII->suppressLdStPair(&MI); + TII->suppressLdStPair(MI); } PrevBaseReg = BaseReg; } else |
