LLVM API Documentation
#include <ScalarEvolutionExpressions.h>
Inheritance diagram for llvm::SCEVTruncateExpr:
Public Member Functions | |
const SCEVHandle & | getOperand () const |
virtual const Type * | getType () const |
virtual bool | isLoopInvariant (const Loop *L) const |
virtual bool | hasComputableLoopEvolution (const Loop *L) const |
SCEVHandle | replaceSymbolicValuesWithConcrete (const SCEVHandle &Sym, const SCEVHandle &Conc) const |
virtual ConstantRange | getValueRange () const |
virtual void | print (std::ostream &OS) const |
Static Public Member Functions | |
static SCEVHandle | get (const SCEVHandle &Op, const Type *Ty) |
static bool | classof (const SCEVTruncateExpr *S) |
Methods for support type inquiry through isa, cast, and dyn_cast:. | |
static bool | classof (const SCEV *S) |
Definition at line 77 of file ScalarEvolutionExpressions.h.
static bool llvm::SCEVTruncateExpr::classof | ( | const SCEV * | S | ) | [inline, static] |
Definition at line 114 of file ScalarEvolutionExpressions.h.
References llvm::SCEV::getSCEVType(), and llvm::scTruncate.
static bool llvm::SCEVTruncateExpr::classof | ( | const SCEVTruncateExpr * | S | ) | [inline, static] |
Methods for support type inquiry through isa, cast, and dyn_cast:.
Definition at line 113 of file ScalarEvolutionExpressions.h.
SCEVHandle SCEVTruncateExpr::get | ( | const SCEVHandle & | Op, | |
const Type * | Ty | |||
) | [static] |
get method - This just gets and returns a new SCEVTruncate object
Definition at line 555 of file ScalarEvolution.cpp.
References llvm::SCEVAddRecExpr::get(), llvm::SCEVUnknown::get(), and llvm::ConstantExpr::getCast().
Referenced by getTruncateOrZeroExtend(), and replaceSymbolicValuesWithConcrete().
const SCEVHandle& llvm::SCEVTruncateExpr::getOperand | ( | ) | const [inline] |
Definition at line 87 of file ScalarEvolutionExpressions.h.
Referenced by getValueRange(), and llvm::SCEVExpander::visitTruncateExpr().
virtual const Type* llvm::SCEVTruncateExpr::getType | ( | ) | const [inline, virtual] |
getType - Return the LLVM type of this SCEV expression.
Implements llvm::SCEV.
Definition at line 88 of file ScalarEvolutionExpressions.h.
Referenced by getValueRange(), and llvm::SCEVExpander::visitTruncateExpr().
ConstantRange SCEVTruncateExpr::getValueRange | ( | ) | const [virtual] |
getValueRange - Return the tightest constant bounds that this value is known to have. This method is only valid on integer SCEV objects.
Reimplemented from llvm::SCEV.
Definition at line 214 of file ScalarEvolution.cpp.
References getOperand(), and getType().
virtual bool llvm::SCEVTruncateExpr::hasComputableLoopEvolution | ( | const Loop * | L | ) | const [inline, virtual] |
hasComputableLoopEvolution - Return true if this SCEV changes value in a known way in the specified loop. This property being true implies that the value is variant in the loop AND that we can emit an expression to compute the value of the expression at any particular loop iteration.
Implements llvm::SCEV.
Definition at line 94 of file ScalarEvolutionExpressions.h.
virtual bool llvm::SCEVTruncateExpr::isLoopInvariant | ( | const Loop * | L | ) | const [inline, virtual] |
isLoopInvariant - Return true if the value of this SCEV is unchanging in the specified loop.
Implements llvm::SCEV.
Definition at line 90 of file ScalarEvolutionExpressions.h.
void SCEVTruncateExpr::print | ( | std::ostream & | OS | ) | const [virtual] |
print - Print out the internal representation of this scalar to the specified stream. This should really only be used for debugging purposes.
Implements llvm::SCEV.
Definition at line 218 of file ScalarEvolution.cpp.
SCEVHandle llvm::SCEVTruncateExpr::replaceSymbolicValuesWithConcrete | ( | const SCEVHandle & | Sym, | |
const SCEVHandle & | Conc | |||
) | const [inline, virtual] |
replaceSymbolicValuesWithConcrete - If this SCEV internally references the symbolic value "Sym", construct and return a new SCEV that produces the same value, but which uses the concrete value Conc instead of the symbolic value. If this SCEV does not use the symbolic value, it returns itself.
Implements llvm::SCEV.
Definition at line 98 of file ScalarEvolutionExpressions.h.