aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/ModuloSchedule.cpp
diff options
context:
space:
mode:
authorHendrik Greving <hgreving@google.com>2021-06-23 12:32:04 -0700
committerHendrik Greving <hgreving@google.com>2021-06-25 09:51:22 -0700
commite15e1417b9fdd628476736c7b1637779752ae3c7 (patch)
treefe0a123aa1845fca9bb77583a9dc47f3b6261b56 /llvm/lib/CodeGen/ModuloSchedule.cpp
parentb7f24923a3027e66b78b56174e9950c146203104 (diff)
downloadllvm-e15e1417b9fdd628476736c7b1637779752ae3c7.zip
llvm-e15e1417b9fdd628476736c7b1637779752ae3c7.tar.gz
llvm-e15e1417b9fdd628476736c7b1637779752ae3c7.tar.bz2
[ModuloSchedule] Pass loop block explicitly to kernel rewriter.
This change is NFC upstream. We pass in the loop's block to the kernel rewriter explicitly, instead of assuming it's the loop's top block. This change is made for downstream targets where this assumption doesn't hold. Differential Revision: https://reviews.llvm.org/D104811
Diffstat (limited to 'llvm/lib/CodeGen/ModuloSchedule.cpp')
-rw-r--r--llvm/lib/CodeGen/ModuloSchedule.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/llvm/lib/CodeGen/ModuloSchedule.cpp b/llvm/lib/CodeGen/ModuloSchedule.cpp
index 095da09..b5517c4 100644
--- a/llvm/lib/CodeGen/ModuloSchedule.cpp
+++ b/llvm/lib/CodeGen/ModuloSchedule.cpp
@@ -1275,15 +1275,15 @@ class KernelRewriter {
Register undef(const TargetRegisterClass *RC);
public:
- KernelRewriter(MachineLoop &L, ModuloSchedule &S,
+ KernelRewriter(MachineLoop &L, ModuloSchedule &S, MachineBasicBlock *LoopBB,
LiveIntervals *LIS = nullptr);
void rewrite();
};
} // namespace
KernelRewriter::KernelRewriter(MachineLoop &L, ModuloSchedule &S,
- LiveIntervals *LIS)
- : S(S), BB(L.getTopBlock()), PreheaderBB(L.getLoopPreheader()),
+ MachineBasicBlock *LoopBB, LiveIntervals *LIS)
+ : S(S), BB(LoopBB), PreheaderBB(L.getLoopPreheader()),
ExitBB(L.getExitBlock()), MRI(BB->getParent()->getRegInfo()),
TII(BB->getParent()->getSubtarget().getInstrInfo()), LIS(LIS) {
PreheaderBB = *BB->pred_begin();
@@ -1981,7 +1981,7 @@ void PeelingModuloScheduleExpander::fixupBranches() {
}
void PeelingModuloScheduleExpander::rewriteKernel() {
- KernelRewriter KR(*Schedule.getLoop(), Schedule);
+ KernelRewriter KR(*Schedule.getLoop(), Schedule, BB);
KR.rewrite();
}
@@ -2024,7 +2024,7 @@ void PeelingModuloScheduleExpander::validateAgainstModuloScheduleExpander() {
Preheader->addSuccessor(BB);
// Now run the new expansion algorithm.
- KernelRewriter KR(*Schedule.getLoop(), Schedule);
+ KernelRewriter KR(*Schedule.getLoop(), Schedule, BB);
KR.rewrite();
peelPrologAndEpilogs();