aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineScheduler.cpp
diff options
context:
space:
mode:
authorSander de Smalen <sander.desmalen@arm.com>2020-02-18 14:32:26 +0000
committerSander de Smalen <sander.desmalen@arm.com>2020-02-18 15:53:29 +0000
commit8fbc92580769dd42b4f00fd41200e0fa9de98405 (patch)
tree6c72cdeff2e0b517e8508106636f4a19df15b0e6 /llvm/lib/CodeGen/MachineScheduler.cpp
parent5e52effca6289a438a2751db532d625097cc6af7 (diff)
downloadllvm-8fbc92580769dd42b4f00fd41200e0fa9de98405.zip
llvm-8fbc92580769dd42b4f00fd41200e0fa9de98405.tar.gz
llvm-8fbc92580769dd42b4f00fd41200e0fa9de98405.tar.bz2
Add OffsetIsScalable to getMemOperandWithOffset
Summary: Making `Scale` a `TypeSize` in AArch64InstrInfo::getMemOpInfo, has the effect that all places where this information is used (notably, TargetInstrInfo::getMemOperandWithOffset) will need to consider Scale - and derived, Offset - possibly being scalable. This patch adds a new operand `bool &OffsetIsScalable` to TargetInstrInfo::getMemOperandWithOffset and fixes up all the places where this function is used, to consider the offset possibly being scalable. In most cases, this means bailing out because the algorithm does not (or cannot) support scalable offsets in places where it does some form of alias checking for example. Reviewers: rovka, efriedma, kristof.beyls Reviewed By: efriedma Subscribers: wuzish, kerbowa, MatzeB, arsenm, nemanjai, jvesely, nhaehnle, hiraditya, kbarton, javed.absar, asb, rbar, johnrusso, simoncook, sabuasal, niosHD, jrtc27, MaskRay, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, PkmX, jocewei, jsji, Jim, lenary, s.egerton, pzheng, sameer.abuasal, apazos, luismarques, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72758
Diffstat (limited to 'llvm/lib/CodeGen/MachineScheduler.cpp')
-rw-r--r--llvm/lib/CodeGen/MachineScheduler.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/MachineScheduler.cpp b/llvm/lib/CodeGen/MachineScheduler.cpp
index ecfccaa..5cfc019 100644
--- a/llvm/lib/CodeGen/MachineScheduler.cpp
+++ b/llvm/lib/CodeGen/MachineScheduler.cpp
@@ -1567,7 +1567,9 @@ void BaseMemOpClusterMutation::clusterNeighboringMemOps(
for (SUnit *SU : MemOps) {
SmallVector<const MachineOperand *, 4> BaseOps;
int64_t Offset;
- if (TII->getMemOperandsWithOffset(*SU->getInstr(), BaseOps, Offset, TRI))
+ bool OffsetIsScalable;
+ if (TII->getMemOperandsWithOffset(*SU->getInstr(), BaseOps, Offset,
+ OffsetIsScalable, TRI))
MemOpRecords.push_back(MemOpInfo(SU, BaseOps, Offset));
#ifndef NDEBUG
for (auto *Op : BaseOps)