|
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 1125 of file ScalarEvolution.cpp.
|
inline |
Definition at line 1133 of file ScalarEvolution.cpp.
References llvm::move(), and llvm::SCEVRewriteVisitor< SCEVCastSinkingRewriter >::SE.
Referenced by rewrite().
|
inlinestatic |
Definition at line 1137 of file ScalarEvolution.cpp.
References Rewriter, SCEVCastSinkingRewriter(), and llvm::SCEVRewriteVisitor< SCEVCastSinkingRewriter >::SE.
Referenced by llvm::ScalarEvolution::getLosslessPtrToIntExpr(), and llvm::ScalarEvolution::getPtrToAddrExpr().
Definition at line 1143 of file ScalarEvolution.cpp.
References llvm::SCEV::getType(), llvm::Type::isPointerTy(), and llvm::SCEVRewriteVisitor< SCEVCastSinkingRewriter >::visit().
|
inline |
Definition at line 1152 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 1164 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 1174 of file ScalarEvolution.cpp.
References assert(), llvm::SCEVUnknown::getType(), llvm::SCEVUnknown::getValue(), llvm::isa(), llvm::Type::isPointerTy(), and llvm::SCEVRewriteVisitor< SCEVCastSinkingRewriter >::SE.