diff options
Diffstat (limited to 'llvm/lib/Transforms/Utils/LCSSA.cpp')
-rw-r--r-- | llvm/lib/Transforms/Utils/LCSSA.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/Utils/LCSSA.cpp b/llvm/lib/Transforms/Utils/LCSSA.cpp index 6de59f9..020a40b 100644 --- a/llvm/lib/Transforms/Utils/LCSSA.cpp +++ b/llvm/lib/Transforms/Utils/LCSSA.cpp @@ -111,6 +111,10 @@ bool llvm::formLCSSAForInstructions(SmallVectorImpl<Instruction *> &Worklist, Instruction *User = cast<Instruction>(U.getUser()); BasicBlock *UserBB = User->getParent(); + // Skip uses in unreachable blocks. + if (!DT.isReachableFromEntry(UserBB)) + continue; + // For practical purposes, we consider that the use in a PHI // occurs in the respective predecessor block. For more info, // see the `phi` doc in LangRef and the LCSSA doc. |