aboutsummaryrefslogtreecommitdiff
path: root/contrib/llvm-project/llvm/include/llvm
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/llvm-project/llvm/include/llvm')
-rw-r--r--contrib/llvm-project/llvm/include/llvm/Analysis/ScalarEvolution.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/contrib/llvm-project/llvm/include/llvm/Analysis/ScalarEvolution.h b/contrib/llvm-project/llvm/include/llvm/Analysis/ScalarEvolution.h
index af3ad822e0b0..0880f9c65aa4 100644
--- a/contrib/llvm-project/llvm/include/llvm/Analysis/ScalarEvolution.h
+++ b/contrib/llvm-project/llvm/include/llvm/Analysis/ScalarEvolution.h
@@ -1314,6 +1314,13 @@ public:
void getPoisonGeneratingValues(SmallPtrSetImpl<const Value *> &Result,
const SCEV *S);
+ /// Check whether it is poison-safe to represent the expression S using the
+ /// instruction I. If such a replacement is performed, the poison flags of
+ /// instructions in DropPoisonGeneratingInsts must be dropped.
+ bool canReuseInstruction(
+ const SCEV *S, Instruction *I,
+ SmallVectorImpl<Instruction *> &DropPoisonGeneratingInsts);
+
class FoldID {
const SCEV *Op = nullptr;
const Type *Ty = nullptr;