]> granicus.if.org Git - llvm/commitdiff
Teach isGuaranteedToTransferExecutionToSuccessor about widenable conditions
authorMax Kazantsev <max.kazantsev@azul.com>
Thu, 14 Feb 2019 11:10:21 +0000 (11:10 +0000)
committerMax Kazantsev <max.kazantsev@azul.com>
Thu, 14 Feb 2019 11:10:21 +0000 (11:10 +0000)
Widenable condition intrinsic is guaranteed to return value, notify
the isGuaranteedToTransferExecutionToSuccessor function about it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@354020 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Analysis/ValueTracking.cpp

index 6f88a6b34ca61eea6d0daf9d4dbdd332d21c3c76..deb2fb9509b6036142e2a9c90f166b2050fa85cd 100644 (file)
@@ -4347,7 +4347,8 @@ bool llvm::isGuaranteedToTransferExecutionToSuccessor(const Instruction *I) {
     // is guaranteed to return.
     return CS.onlyReadsMemory() || CS.onlyAccessesArgMemory() ||
            match(I, m_Intrinsic<Intrinsic::assume>()) ||
-           match(I, m_Intrinsic<Intrinsic::sideeffect>());
+           match(I, m_Intrinsic<Intrinsic::sideeffect>()) ||
+           match(I, m_Intrinsic<Intrinsic::experimental_widenable_condition>());
   }
 
   // Other instructions return normally.