diff options
author | Sander de Smalen <sander.desmalen@arm.com> | 2018-09-03 09:15:58 +0000 |
---|---|---|
committer | Sander de Smalen <sander.desmalen@arm.com> | 2018-09-03 09:15:58 +0000 |
commit | 6cab60fa068f9127c02246b740aa9b75523a33d2 (patch) | |
tree | 31e2967f372016110cc07a01ee0a4ace3ea626da /llvm/lib/CodeGen/LiveDebugValues.cpp | |
parent | d96d5e9046b448764587180403c85ec85553ddd6 (diff) | |
download | bcm5719-llvm-6cab60fa068f9127c02246b740aa9b75523a33d2.tar.gz bcm5719-llvm-6cab60fa068f9127c02246b740aa9b75523a33d2.zip |
Extend hasStoreToStackSlot with list of FI accesses.
For instructions that spill/fill to and from multiple frame-indices
in a single instruction, hasStoreToStackSlot and hasLoadFromStackSlot
should return an array of accesses, rather than just the first encounter
of such an access.
This better describes FI accesses for AArch64 (paired) LDP/STP
instructions.
Reviewers: t.p.northover, gberry, thegameg, rengolin, javed.absar, MatzeB
Reviewed By: MatzeB
Differential Revision: https://reviews.llvm.org/D51537
llvm-svn: 341301
Diffstat (limited to 'llvm/lib/CodeGen/LiveDebugValues.cpp')
-rw-r--r-- | llvm/lib/CodeGen/LiveDebugValues.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/CodeGen/LiveDebugValues.cpp b/llvm/lib/CodeGen/LiveDebugValues.cpp index 417bd9d5aeb..dbc19b082d2 100644 --- a/llvm/lib/CodeGen/LiveDebugValues.cpp +++ b/llvm/lib/CodeGen/LiveDebugValues.cpp @@ -470,7 +470,7 @@ bool LiveDebugValues::isSpillInstruction(const MachineInstr &MI, MachineFunction *MF, unsigned &Reg) { const MachineFrameInfo &FrameInfo = MF->getFrameInfo(); int FI; - const MachineMemOperand *MMO; + SmallVector<TargetInstrInfo::FrameAccess, 1> Accesses; // TODO: Handle multiple stores folded into one. if (!MI.hasOneMemOperand()) @@ -478,7 +478,7 @@ bool LiveDebugValues::isSpillInstruction(const MachineInstr &MI, // To identify a spill instruction, use the same criteria as in AsmPrinter. if (!((TII->isStoreToStackSlotPostFE(MI, FI) || - TII->hasStoreToStackSlot(MI, MMO, FI)) && + TII->hasStoreToStackSlot(MI, Accesses)) && FrameInfo.isSpillSlotObjectIndex(FI))) return false; |