diff options
Diffstat (limited to 'llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp')
-rw-r--r-- | llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp b/llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp index 0bf9003..9b40fc0 100644 --- a/llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp +++ b/llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp @@ -274,6 +274,7 @@ static void buildPartialUnswitchConditionalBranch( BasicBlock &UnswitchedSucc, BasicBlock &NormalSucc, bool InsertFreeze, const Instruction *I, AssumptionCache *AC, const DominatorTree &DT) { IRBuilder<> IRB(&BB); + IRB.SetCurrentDebugLocation(DebugLoc::getCompilerGenerated()); SmallVector<Value *> FrozenInvariants; for (Value *Inv : Invariants) { @@ -330,6 +331,7 @@ static void buildPartialInvariantUnswitchConditionalBranch( } IRBuilder<> IRB(&BB); + IRB.SetCurrentDebugLocation(DebugLoc::getCompilerGenerated()); Value *Cond = VMap[ToDuplicate[0]]; IRB.CreateCondBr(Cond, Direction ? &UnswitchedSucc : &NormalSucc, Direction ? &NormalSucc : &UnswitchedSucc); @@ -2369,6 +2371,7 @@ static void unswitchNontrivialInvariants( // BI (`dyn_cast<BranchInst>(TI)`) is an in-loop instruction hoisted // out of the loop. Cond = new FreezeInst(Cond, Cond->getName() + ".fr", BI->getIterator()); + cast<Instruction>(Cond)->setDebugLoc(DebugLoc::getDropped()); } BI->setCondition(Cond); DTUpdates.push_back({DominatorTree::Insert, SplitBB, ClonedPH}); |