diff options
author | Tyker <tyker1@outlook.com> | 2020-05-11 11:50:35 +0200 |
---|---|---|
committer | Tyker <tyker1@outlook.com> | 2020-05-11 11:52:21 +0200 |
commit | 78d85c20919ff0a92e2a4e83c9be65a9cd493c0c (patch) | |
tree | e36eb88f8f70840cbf28002ede2e408ce25eb898 /llvm/lib/Transforms/Utils/AssumeBundleBuilder.cpp | |
parent | da100de0a68fb3c17bf0856f432465c0721c841f (diff) | |
download | llvm-78d85c20919ff0a92e2a4e83c9be65a9cd493c0c.zip llvm-78d85c20919ff0a92e2a4e83c9be65a9cd493c0c.tar.gz llvm-78d85c20919ff0a92e2a4e83c9be65a9cd493c0c.tar.bz2 |
[AssumeBundles] fix crashes
Summary:
this patch fixe crash/asserts found in the test-suite.
the AssumeptionCache cannot be assumed to have all assumes contrary to what i tought.
prevent generation of information for terminators, because this can create broken IR in transfromation where we insert the new terminator before removing the old one.
Reviewers: jdoerfert
Reviewed By: jdoerfert
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D79458
Diffstat (limited to 'llvm/lib/Transforms/Utils/AssumeBundleBuilder.cpp')
-rw-r--r-- | llvm/lib/Transforms/Utils/AssumeBundleBuilder.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/Utils/AssumeBundleBuilder.cpp b/llvm/lib/Transforms/Utils/AssumeBundleBuilder.cpp index 4e47dd8..ee5e142 100644 --- a/llvm/lib/Transforms/Utils/AssumeBundleBuilder.cpp +++ b/llvm/lib/Transforms/Utils/AssumeBundleBuilder.cpp @@ -201,8 +201,9 @@ IntrinsicInst *llvm::buildAssumeFromInst(Instruction *I) { return Builder.build(); } -void llvm::salvageKnowledge(Instruction *I, AssumptionCache *AC, DominatorTree* DT) { - if (!EnableKnowledgeRetention) +void llvm::salvageKnowledge(Instruction *I, AssumptionCache *AC, + DominatorTree *DT) { + if (!EnableKnowledgeRetention || I->isTerminator()) return; AssumeBuilderState Builder(I->getModule(), I, AC, DT); Builder.addInstruction(I); |