[PATCH] D28534: [LCSSA] Don't let SSAUpdater to break LCSSA during LCSSA construction.
Sanjoy Das via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Jan 19 16:39:37 PST 2017
sanjoy added inline comments.
================
Comment at: lib/Transforms/Utils/LCSSA.cpp:81
// expensive, and we're not mutating the loop structure.
SmallDenseMap<Loop*, SmallVector<BasicBlock *,1>> LoopExitBlocks;
----------------
Note: this cache become less effective since we're not reusing it for the entire worklist anymore.
================
Comment at: lib/Transforms/Utils/LCSSA.cpp:226
// Reprocess each PHI instruction.
Worklist.push_back(PostProcessPN);
}
----------------
Why is it legal to re-use the same `SSAUpdater` to rewrite uses for these newly inserted PHIs? Asking mostly because earlier `SSAUpdate` would get reset for each iteration of the inner loop on the worklist.
================
Comment at: lib/Transforms/Utils/LCSSA.cpp:251
+ bool Changed = false;
+ while (!Worklist.empty()) {
+ Instruction *I = Worklist.pop_back_val();
----------------
(Fix separately without review if you agree) Why not just a range for over an `ArrayRef<Instruction *>`?
https://reviews.llvm.org/D28534
More information about the llvm-commits
mailing list