commit | 2c390c54f64c6303aa4f7151cda5c466ae3ccc23 | [log] [tgz] |
---|---|---|
author | Hans Wennborg <hans@hanshq.net> | Wed Aug 29 12:21:32 2018 +0000 |
committer | Hans Wennborg <hans@hanshq.net> | Wed Aug 29 12:21:32 2018 +0000 |
tree | fa9fa288532951db4818a6c0d44a23334a8d624a | |
parent | c03b9b8854399aa5234fdee1eb3838ce4adccbaf [diff] [blame] |
Revert r340921 "[NFC] Unify guards detection" This broke the build, see e.g. http://lab.llvm.org:8011/builders/clang-cmake-armv8-lnt/builds/4626/ http://lab.llvm.org:8011/builders/clang-ppc64be-linux-lnt/builds/18647/ http://lab.llvm.org:8011/builders/clang-cmake-x86_64-avx2-linux/builds/5856/ http://lab.llvm.org:8011/builders/lld-x86_64-freebsd/builds/22800/ > We have multiple places in code where we try to identify whether or not > some instruction is a guard. This patch factors out this logic into a separate > utility function which works uniformly in all places. > > Differential Revision: https://reviews.llvm.org/D51152 > Reviewed By: fedor.sergeev llvm-svn: 340923
diff --git a/llvm/lib/Transforms/Scalar/LowerGuardIntrinsic.cpp b/llvm/lib/Transforms/Scalar/LowerGuardIntrinsic.cpp index dd81c97..fac57014 100644 --- a/llvm/lib/Transforms/Scalar/LowerGuardIntrinsic.cpp +++ b/llvm/lib/Transforms/Scalar/LowerGuardIntrinsic.cpp
@@ -49,8 +49,10 @@ SmallVector<CallInst *, 8> ToLower; for (auto &I : instructions(F)) - if (isGuard(&I)) - ToLower.push_back(cast<CallInst>(&I)); + if (auto *CI = dyn_cast<CallInst>(&I)) + if (auto *F = CI->getCalledFunction()) + if (F->getIntrinsicID() == Intrinsic::experimental_guard) + ToLower.push_back(CI); if (ToLower.empty()) return false;