[llvm] [MachineLICM] Allow hoisting loads from invariant address (PR #70796)
David Sherwood via llvm-commits
llvm-commits at lists.llvm.org
Thu Nov 9 09:11:33 PST 2023
================
@@ -369,6 +377,36 @@ bool MachineLICMBase::runOnMachineFunction(MachineFunction &MF) {
AA = &getAnalysis<AAResultsWrapperPass>().getAAResults();
SmallVector<MachineLoop *, 8> Worklist(MLI->begin(), MLI->end());
+
+ // Initialize `AllowedToHoistLoads' if needed.
+ if (HoistConstLoads) {
+ auto TmpWorklist = Worklist;
+ // Initialize all loops with true values
+ while (!TmpWorklist.empty()) {
+ auto *L = TmpWorklist.pop_back_val();
+ AllowedToHoistLoads[L] = true;
+ TmpWorklist.insert(TmpWorklist.end(), L->getSubLoops().begin(),
----------------
david-arm wrote:
Oh, does MLI not already include subloops? I was hoping you could get away with just:
```
for (auto *L : Worklist) {
AllowedToHoistLoads[L] = true;
}
```
It's quite likely that was a bogus assumption. :)
https://github.com/llvm/llvm-project/pull/70796
More information about the llvm-commits
mailing list