LLVM 20.0.0git
|
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/Analysis/ScalarEvolution.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/ValueHandle.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/ErrorHandling.h"
#include <cassert>
#include <cstddef>
Go to the source code of this file.
Classes | |
class | llvm::SCEVConstant |
This class represents a constant integer value. More... | |
class | llvm::SCEVVScale |
This class represents the value of vscale, as used when defining the length of a scalable vector or returned by the llvm.vscale() intrinsic. More... | |
class | llvm::SCEVCastExpr |
This is the base class for unary cast operator classes. More... | |
class | llvm::SCEVPtrToIntExpr |
This class represents a cast from a pointer to a pointer-sized integer value. More... | |
class | llvm::SCEVIntegralCastExpr |
This is the base class for unary integral cast operator classes. More... | |
class | llvm::SCEVTruncateExpr |
This class represents a truncation of an integer value to a smaller integer value. More... | |
class | llvm::SCEVZeroExtendExpr |
This class represents a zero extension of a small integer value to a larger integer value. More... | |
class | llvm::SCEVSignExtendExpr |
This class represents a sign extension of a small integer value to a larger integer value. More... | |
class | llvm::SCEVNAryExpr |
This node is a base class providing common functionality for n'ary operators. More... | |
class | llvm::SCEVCommutativeExpr |
This node is the base class for n'ary commutative operators. More... | |
class | llvm::SCEVAddExpr |
This node represents an addition of some number of SCEVs. More... | |
class | llvm::SCEVMulExpr |
This node represents multiplication of some number of SCEVs. More... | |
class | llvm::SCEVUDivExpr |
This class represents a binary unsigned division operation. More... | |
class | llvm::SCEVAddRecExpr |
This node represents a polynomial recurrence on the trip count of the specified loop. More... | |
class | llvm::SCEVMinMaxExpr |
This node is the base class min/max selections. More... | |
class | llvm::SCEVSMaxExpr |
This class represents a signed maximum selection. More... | |
class | llvm::SCEVUMaxExpr |
This class represents an unsigned maximum selection. More... | |
class | llvm::SCEVSMinExpr |
This class represents a signed minimum selection. More... | |
class | llvm::SCEVUMinExpr |
This class represents an unsigned minimum selection. More... | |
class | llvm::SCEVSequentialMinMaxExpr |
This node is the base class for sequential/in-order min/max selections. More... | |
class | llvm::SCEVSequentialUMinExpr |
This class represents a sequential/in-order unsigned minimum selection. More... | |
class | llvm::SCEVUnknown |
This means that we are dealing with an entirely unknown SCEV value, and only represent it as its LLVM Value. More... | |
struct | llvm::SCEVVisitor< SC, RetVal > |
This class defines a simple visitor class that may be used for various SCEV analysis purposes. More... | |
class | llvm::SCEVTraversal< SV > |
Visit all nodes in the expression tree using worklist traversal. More... | |
class | llvm::SCEVRewriteVisitor< SC > |
This visitor recursively visits a SCEV expression and re-writes it. More... | |
class | llvm::SCEVParameterRewriter |
The SCEVParameterRewriter takes a scalar evolution expression and updates the SCEVUnknown components following the Map (Value -> SCEV). More... | |
class | llvm::SCEVLoopAddRecRewriter |
The SCEVLoopAddRecRewriter takes a scalar evolution expression and applies the Map (Loop -> SCEV) to all AddRecExprs. More... | |
Namespaces | |
namespace | llvm |
This is an optimization pass for GlobalISel generic memory operations. | |
Typedefs | |
using | llvm::ValueToValueMap = DenseMap< const Value *, Value * > |
using | llvm::ValueToSCEVMapTy = DenseMap< const Value *, const SCEV * > |
using | llvm::LoopToScevMapT = DenseMap< const Loop *, const SCEV * > |
Enumerations | |
enum | llvm::SCEVTypes : unsigned short { llvm::scConstant , llvm::scVScale , llvm::scTruncate , llvm::scZeroExtend , llvm::scSignExtend , llvm::scAddExpr , llvm::scMulExpr , llvm::scUDivExpr , llvm::scAddRecExpr , llvm::scUMaxExpr , llvm::scSMaxExpr , llvm::scUMinExpr , llvm::scSMinExpr , llvm::scSequentialUMinExpr , llvm::scPtrToInt , llvm::scUnknown , llvm::scCouldNotCompute } |
Functions | |
unsigned short | llvm::computeExpressionSize (ArrayRef< const SCEV * > Args) |
template<typename SV > | |
void | llvm::visitAll (const SCEV *Root, SV &Visitor) |
Use SCEVTraversal to visit all nodes in the given expression tree. | |
template<typename PredTy > | |
bool | llvm::SCEVExprContains (const SCEV *Root, PredTy Pred) |
Return true if any node in Root satisfies the predicate Pred . | |