[llvm] r344719 - [TI removal] Switch simple loop unswitch to `Instruction`.
Chandler Carruth via llvm-commits
llvm-commits at lists.llvm.org
Wed Oct 17 17:40:26 PDT 2018
Author: chandlerc
Date: Wed Oct 17 17:40:26 2018
New Revision: 344719
URL: http://llvm.org/viewvc/llvm-project?rev=344719&view=rev
Log:
[TI removal] Switch simple loop unswitch to `Instruction`.
Modified:
llvm/trunk/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
Modified: llvm/trunk/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp?rev=344719&r1=344718&r2=344719&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp (original)
+++ llvm/trunk/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp Wed Oct 17 17:40:26 2018
@@ -1793,7 +1793,7 @@ void visitDomSubTree(DominatorTree &DT,
}
static bool unswitchNontrivialInvariants(
- Loop &L, TerminatorInst &TI, ArrayRef<Value *> Invariants,
+ Loop &L, Instruction &TI, ArrayRef<Value *> Invariants,
DominatorTree &DT, LoopInfo &LI, AssumptionCache &AC,
function_ref<void(bool, ArrayRef<Loop *>)> UnswitchCB,
ScalarEvolution *SE) {
@@ -2188,7 +2188,7 @@ unswitchBestCondition(Loop &L, Dominator
ScalarEvolution *SE) {
// Collect all invariant conditions within this loop (as opposed to an inner
// loop which would be handled when visiting that inner loop).
- SmallVector<std::pair<TerminatorInst *, TinyPtrVector<Value *>>, 4>
+ SmallVector<std::pair<Instruction *, TinyPtrVector<Value *>>, 4>
UnswitchCandidates;
for (auto *BB : L.blocks()) {
if (LI.getLoopFor(BB) != &L)
@@ -2298,7 +2298,7 @@ unswitchBestCondition(Loop &L, Dominator
SmallDenseMap<DomTreeNode *, int, 4> DTCostMap;
// Given a terminator which might be unswitched, computes the non-duplicated
// cost for that terminator.
- auto ComputeUnswitchedCost = [&](TerminatorInst &TI, bool FullUnswitch) {
+ auto ComputeUnswitchedCost = [&](Instruction &TI, bool FullUnswitch) {
BasicBlock &BB = *TI.getParent();
SmallPtrSet<BasicBlock *, 4> Visited;
@@ -2349,11 +2349,11 @@ unswitchBestCondition(Loop &L, Dominator
"Cannot unswitch a condition without multiple distinct successors!");
return Cost * (Visited.size() - 1);
};
- TerminatorInst *BestUnswitchTI = nullptr;
+ Instruction *BestUnswitchTI = nullptr;
int BestUnswitchCost;
ArrayRef<Value *> BestUnswitchInvariants;
for (auto &TerminatorAndInvariants : UnswitchCandidates) {
- TerminatorInst &TI = *TerminatorAndInvariants.first;
+ Instruction &TI = *TerminatorAndInvariants.first;
ArrayRef<Value *> Invariants = TerminatorAndInvariants.second;
BranchInst *BI = dyn_cast<BranchInst>(&TI);
int CandidateCost = ComputeUnswitchedCost(
More information about the llvm-commits
mailing list