LLVM API Documentation
#include <ScalarEvolutionExpressions.h>
Inheritance diagram for llvm::SCEVUnknown:
Public Member Functions | |
Value * | getValue () const |
virtual bool | isLoopInvariant (const Loop *L) const |
virtual bool | hasComputableLoopEvolution (const Loop *QL) const |
SCEVHandle | replaceSymbolicValuesWithConcrete (const SCEVHandle &Sym, const SCEVHandle &Conc) const |
virtual const Type * | getType () const |
virtual void | print (std::ostream &OS) const |
Static Public Member Functions | |
static SCEVHandle | get (Value *V) |
static SCEVHandle | getIntegerSCEV (int Val, const Type *Ty) |
static bool | classof (const SCEVUnknown *S) |
Methods for support type inquiry through isa, cast, and dyn_cast:. | |
static bool | classof (const SCEV *S) |
Protected Member Functions | |
~SCEVUnknown () |
Definition at line 444 of file ScalarEvolutionExpressions.h.
SCEVUnknown::~SCEVUnknown | ( | ) | [protected] |
Definition at line 370 of file ScalarEvolution.cpp.
static bool llvm::SCEVUnknown::classof | ( | const SCEV * | S | ) | [inline, static] |
Definition at line 478 of file ScalarEvolutionExpressions.h.
References llvm::SCEV::getSCEVType(), and llvm::scUnknown.
static bool llvm::SCEVUnknown::classof | ( | const SCEVUnknown * | S | ) | [inline, static] |
Methods for support type inquiry through isa, cast, and dyn_cast:.
Definition at line 477 of file ScalarEvolutionExpressions.h.
SCEVHandle SCEVUnknown::get | ( | Value * | V | ) | [static] |
get method - For SCEVUnknown, this just gets and returns a new SCEVUnknown.
Definition at line 1048 of file ScalarEvolution.cpp.
References llvm::SCEVConstant::get().
Referenced by llvm::SCEVSDivExpr::get(), llvm::SCEVZeroExtendExpr::get(), llvm::SCEVTruncateExpr::get(), getIntegerSCEV(), llvm::SCEV::getNegativeSCEV(), llvm::SCEVAddRecExpr::getNumIterationsInRange(), PartialFact(), and llvm::SCEVExpander::visitAddRecExpr().
SCEVHandle SCEVUnknown::getIntegerSCEV | ( | int | Val, | |
const Type * | Ty | |||
) | [static] |
getIntegerSCEV - Given an integer or FP type, create a constant for the specified signed integer value and return a SCEV for the constant.
Definition at line 455 of file ScalarEvolution.cpp.
References llvm::CallingConv::C, get(), llvm::ConstantSInt::get(), llvm::ConstantFP::get(), llvm::ConstantExpr::getCast(), llvm::Constant::getNullValue(), llvm::Type::isFloatingPoint(), and Ty.
Referenced by llvm::SCEVAddRecExpr::evaluateAtIteration(), llvm::SCEVAddExpr::get(), llvm::SCEV::getNegativeSCEV(), llvm::SCEVAddRecExpr::getNumIterationsInRange(), llvm::SCEVExpander::getOrInsertCanonicalInductionVariable(), PartialFact(), and llvm::SCEVExpander::visitAddRecExpr().
const Type * SCEVUnknown::getType | ( | ) | const [virtual] |
getType - Return the LLVM type of this SCEV expression.
Implements llvm::SCEV.
Definition at line 380 of file ScalarEvolution.cpp.
References llvm::Value::getType().
Value* llvm::SCEVUnknown::getValue | ( | ) | const [inline] |
Definition at line 459 of file ScalarEvolutionExpressions.h.
Referenced by llvm::SCEVExpander::visitUnknown().
virtual bool llvm::SCEVUnknown::hasComputableLoopEvolution | ( | const Loop * | QL | ) | 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 462 of file ScalarEvolutionExpressions.h.
bool SCEVUnknown::isLoopInvariant | ( | const Loop * | L | ) | const [virtual] |
isLoopInvariant - Return true if the value of this SCEV is unchanging in the specified loop.
Implements llvm::SCEV.
Definition at line 372 of file ScalarEvolution.cpp.
References llvm::Loop::contains(), and I.
void SCEVUnknown::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 384 of file ScalarEvolution.cpp.
References llvm::WriteAsOperand().
SCEVHandle llvm::SCEVUnknown::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 466 of file ScalarEvolutionExpressions.h.