LLVM API Documentation
#include <Record.h>
Public Types | |
enum | TernaryOp { SUBST, FOREACH, IF } |
Public Member Functions | |
OpInit * | clone (std::vector< Init * > &Operands) const override |
int | getNumOperands () const override |
Init * | getOperand (int i) const override |
TernaryOp | getOpcode () const |
Init * | getLHS () const |
Init * | getMHS () const |
Init * | getRHS () const |
Init * | Fold (Record *CurRec, MultiClass *CurMultiClass) const override |
bool | isComplete () const override |
Init * | resolveReferences (Record &R, const RecordVal *RV) const override |
std::string | getAsString () const override |
getAsString - Convert this value to a string form. | |
Static Public Member Functions | |
static bool | classof (const Init *I) |
static TernOpInit * | get (TernaryOp opc, Init *lhs, Init *mhs, Init *rhs, RecTy *Type) |
TernOpInit - !op (X, Y, Z) - Combine two inits.
static bool llvm::TernOpInit::classof | ( | const Init * | I | ) | [inline, static] |
Reimplemented from llvm::OpInit.
Definition at line 1007 of file Record.h.
References llvm::Init::getKind(), and llvm::Init::IK_TernOpInit.
OpInit* llvm::TernOpInit::clone | ( | std::vector< Init * > & | Operands | ) | const [inline, override, virtual] |
Implements llvm::OpInit.
Definition at line 1015 of file Record.h.
References get(), getOpcode(), and llvm::TypedInit::getType().
Init * TernOpInit::Fold | ( | Record * | CurRec, |
MultiClass * | CurMultiClass | ||
) | const [override, virtual] |
Implements llvm::OpInit.
Definition at line 1162 of file Record.cpp.
References llvm::Init::convertInitializerTo(), llvm::dyn_cast(), FOREACH, ForeachHelper(), llvm::IntRecTy::get(), get(), llvm::DefInit::getAsString(), getOpcode(), llvm::TypedInit::getType(), llvm::IntInit::getValue(), I, IF, and SUBST.
Referenced by resolveReferences().
TernOpInit * TernOpInit::get | ( | TernaryOp | opc, |
Init * | lhs, | ||
Init * | mhs, | ||
Init * | rhs, | ||
RecTy * | Type | ||
) | [static] |
Definition at line 1020 of file Record.cpp.
References I.
Referenced by clone(), Fold(), and resolveReferences().
std::string TernOpInit::getAsString | ( | ) | const [override, virtual] |
getAsString - Convert this value to a string form.
Implements llvm::Init.
Definition at line 1271 of file Record.cpp.
References FOREACH, llvm::Init::getAsString(), IF, and SUBST.
Init* llvm::TernOpInit::getLHS | ( | ) | const [inline] |
Definition at line 1036 of file Record.h.
Referenced by getOperand().
Init* llvm::TernOpInit::getMHS | ( | ) | const [inline] |
Definition at line 1037 of file Record.h.
Referenced by getOperand().
int llvm::TernOpInit::getNumOperands | ( | ) | const [inline, override, virtual] |
Implements llvm::OpInit.
TernaryOp llvm::TernOpInit::getOpcode | ( | ) | const [inline] |
Definition at line 1035 of file Record.h.
Referenced by clone(), Fold(), and resolveReferences().
Init* llvm::TernOpInit::getOperand | ( | int | i | ) | const [inline, override, virtual] |
Init* llvm::TernOpInit::getRHS | ( | ) | const [inline] |
Definition at line 1038 of file Record.h.
Referenced by getOperand().
bool llvm::TernOpInit::isComplete | ( | ) | const [inline, override, virtual] |
isComplete - This virtual method should be overridden by values that may not be completely specified yet.
Reimplemented from llvm::Init.
Init * TernOpInit::resolveReferences | ( | Record & | R, |
const RecordVal * | RV | ||
) | const [override, virtual] |
resolveReferences - This method is used by classes that refer to other variables which may not be defined at the time the expression is formed. If a value is set for the variable later, this method will be called on users of the value to allow the value to propagate out.
Reimplemented from llvm::Init.
Definition at line 1240 of file Record.cpp.
References llvm::Init::convertInitializerTo(), llvm::dyn_cast(), Fold(), llvm::IntRecTy::get(), get(), getOpcode(), llvm::TypedInit::getType(), llvm::IntInit::getValue(), I, IF, and llvm::Init::resolveReferences().