|
LLVM 23.0.0git
|
The SCEVCastSinkingRewriter takes a scalar evolution expression, which computes a pointer-typed value, and rewrites the whole expression tree so that all the computations are done on integers, and the only pointer-typed operands in the expression are SCEVUnknown. More...
Static Public Member Functions | |
| static const SCEV * | rewrite (const SCEV *Scev, ScalarEvolution &SE, Type *TargetTy, ConversionFn CreatePtrCast) |
Additional Inherited Members | |
| Protected Attributes inherited from llvm::SCEVRewriteVisitor< SCEVCastSinkingRewriter > | |
| ScalarEvolution & | SE |
| SmallDenseMap< const SCEV *, const SCEV * > | RewriteResults |
The SCEVCastSinkingRewriter takes a scalar evolution expression, which computes a pointer-typed value, and rewrites the whole expression tree so that all the computations are done on integers, and the only pointer-typed operands in the expression are SCEVUnknown.
The CreatePtrCast callback is invoked to create the actual conversion (ptrtoint or ptrtoaddr) at the SCEVUnknown leaves.
Definition at line 1045 of file ScalarEvolution.cpp.
|
inline |
Definition at line 1053 of file ScalarEvolution.cpp.
References llvm::move(), and llvm::SCEVRewriteVisitor< SCEVCastSinkingRewriter >::SE.
Referenced by rewrite().
|
inlinestatic |
Definition at line 1057 of file ScalarEvolution.cpp.
References Rewriter, SCEVCastSinkingRewriter(), and llvm::SCEVRewriteVisitor< SCEVCastSinkingRewriter >::SE.
Referenced by llvm::ScalarEvolution::getLosslessPtrToIntExpr(), and llvm::ScalarEvolution::getPtrToAddrExpr().
Definition at line 1063 of file ScalarEvolution.cpp.
References llvm::SCEV::getType(), llvm::Type::isPointerTy(), and llvm::SCEVRewriteVisitor< SCEVCastSinkingRewriter >::visit().
|
inline |
Definition at line 1072 of file ScalarEvolution.cpp.
References llvm::SmallVectorTemplateCommon< T, typename >::back(), Changed, llvm::SCEVNAryExpr::getNoWrapFlags(), llvm::SCEVNAryExpr::operands(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SCEVRewriteVisitor< SCEVCastSinkingRewriter >::SE, and visit().
|
inline |
Definition at line 1084 of file ScalarEvolution.cpp.
References llvm::SmallVectorTemplateCommon< T, typename >::back(), Changed, llvm::SCEVNAryExpr::getNoWrapFlags(), llvm::SCEVNAryExpr::operands(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SCEVRewriteVisitor< SCEVCastSinkingRewriter >::SE, and visit().
|
inline |
Definition at line 1094 of file ScalarEvolution.cpp.
References assert(), llvm::SCEVUnknown::getType(), llvm::SCEVUnknown::getValue(), llvm::isa(), llvm::Type::isPointerTy(), and llvm::SCEVRewriteVisitor< SCEVCastSinkingRewriter >::SE.