LLVM
8.0.1
|
!op (X, Y, Z) - Combine two inits. More...
#include "llvm/TableGen/Record.h"
Public Types | |
enum | TernaryOp : uint8_t { SUBST, FOREACH, IF, DAG } |
Public Member Functions | |
TernOpInit (const TernOpInit &)=delete | |
TernOpInit & | operator= (const TernOpInit &)=delete |
void | Profile (FoldingSetNodeID &ID) const |
OpInit * | clone (ArrayRef< Init *> Operands) const override |
unsigned | getNumOperands () const override |
Init * | getOperand (unsigned i) const override |
TernaryOp | getOpcode () const |
Init * | getLHS () const |
Init * | getMHS () const |
Init * | getRHS () const |
Init * | Fold (Record *CurRec) const |
bool | isComplete () const override |
This virtual method should be overridden by values that may not be completely specified yet. More... | |
Init * | resolveReferences (Resolver &R) const override |
This method is used by classes that refer to other variables which may not be defined at the time the expression is formed. More... | |
std::string | getAsString () const override |
Convert this value to a string form. More... | |
Public Member Functions inherited from llvm::OpInit | |
OpInit (const OpInit &)=delete | |
OpInit & | operator= (OpInit &)=delete |
Init * | getBit (unsigned Bit) const override |
This method is used to return the initializer for the specified bit. More... | |
Public Member Functions inherited from llvm::TypedInit | |
TypedInit (const TypedInit &)=delete | |
TypedInit & | operator= (const TypedInit &)=delete |
RecTy * | getType () const |
Init * | getCastTo (RecTy *Ty) const override |
If this initializer is convertible to Ty, return an initializer whose type is-a Ty, generating a !cast operation if required. More... | |
Init * | convertInitializerTo (RecTy *Ty) const override |
Convert to an initializer whose type is-a Ty, or return nullptr if this is not possible (this can happen if the initializer's type is convertible to Ty, but there are unresolved references). More... | |
Init * | convertInitializerBitRange (ArrayRef< unsigned > Bits) const override |
This method is used to implement the bitrange selection operator. More... | |
Init * | convertInitListSlice (ArrayRef< unsigned > Elements) const override |
This method is used to implement the list slice selection operator. More... | |
RecTy * | getFieldType (StringInit *FieldName) const override |
This method is used to implement the FieldInit class. More... | |
Public Member Functions inherited from llvm::Init | |
InitKind | getKind () const |
Init (const Init &)=delete | |
Init & | operator= (const Init &)=delete |
virtual | ~Init ()=default |
virtual bool | isConcrete () const |
Is this a concrete and fully resolved value without any references or stuck operations? Unset values are concrete. More... | |
void | print (raw_ostream &OS) const |
Print out this value. More... | |
virtual std::string | getAsUnquotedString () const |
Convert this value to a string form, without adding quote markers. More... | |
void | dump () const |
Debugging method that may be called through a debugger, just invokes print on stderr. More... | |
Public Member Functions inherited from llvm::FoldingSetBase::Node | |
Node ()=default | |
void * | getNextInBucket () const |
void | SetNextInBucket (void *N) |
Static Public Member Functions | |
static bool | classof (const Init *I) |
static TernOpInit * | get (TernaryOp opc, Init *lhs, Init *mhs, Init *rhs, RecTy *Type) |
Static Public Member Functions inherited from llvm::OpInit | |
static bool | classof (const Init *I) |
Static Public Member Functions inherited from llvm::TypedInit | |
static bool | classof (const Init *I) |
Additional Inherited Members | |
Protected Types inherited from llvm::Init | |
enum | InitKind : uint8_t { IK_First, IK_FirstTypedInit, IK_BitInit, IK_BitsInit, IK_CodeInit, IK_DagInit, IK_DefInit, IK_FieldInit, IK_IntInit, IK_ListInit, IK_FirstOpInit, IK_BinOpInit, IK_TernOpInit, IK_UnOpInit, IK_LastOpInit, IK_FoldOpInit, IK_IsAOpInit, IK_StringInit, IK_VarInit, IK_VarListElementInit, IK_VarBitInit, IK_VarDefInit, IK_LastTypedInit, IK_UnsetInit } |
Discriminator enum (for isa<>, dyn_cast<>, et al.) More... | |
Protected Member Functions inherited from llvm::OpInit | |
OpInit (InitKind K, RecTy *Type, uint8_t Opc) | |
Protected Member Functions inherited from llvm::TypedInit | |
TypedInit (InitKind K, RecTy *T, uint8_t Opc=0) | |
Protected Member Functions inherited from llvm::Init | |
Init (InitKind K, uint8_t Opc=0) | |
Protected Attributes inherited from llvm::Init | |
uint8_t | Opc |
enum llvm::TernOpInit::TernaryOp : uint8_t |
|
delete |
Definition at line 869 of file Record.h.
References llvm::Init::getKind().
Implements llvm::OpInit.
Definition at line 880 of file Record.h.
References assert(), get(), getOpcode(), getType(), and llvm::ArrayRef< T >::size().
Definition at line 1079 of file Record.cpp.
References llvm::dyn_cast(), ForeachHelper(), llvm::IntRecTy::get(), llvm::StringInit::get(), llvm::VarInit::get(), llvm::DefInit::get(), llvm::DefInit::getAsString(), getOpcode(), getType(), llvm::AMDGPUISD::IF, Size, and llvm::ListInit::size().
|
static |
Definition at line 1005 of file Record.cpp.
References Allocator, llvm::FoldingSetImpl< T >::FindNodeOrInsertPos(), I, llvm::FoldingSetImpl< T >::InsertNode(), and ProfileTernOpInit().
Referenced by clone(), and resolveReferences().
|
overridevirtual |
Convert this value to a string form.
Implements llvm::Init.
Definition at line 1198 of file Record.cpp.
References getOpcode(), and llvm::AMDGPUISD::IF.
|
inlineoverridevirtual |
Implements llvm::OpInit.
|
inlineoverridevirtual |
This virtual method should be overridden by values that may not be completely specified yet.
Reimplemented from llvm::Init.
Definition at line 906 of file Record.h.
References llvm::RecTy::getAsString(), and llvm::Init::isComplete().
|
delete |
void TernOpInit::Profile | ( | FoldingSetNodeID & | ID | ) | const |
Definition at line 1021 of file Record.cpp.
References getOpcode(), getType(), and ProfileTernOpInit().
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 1168 of file Record.cpp.
References llvm::ShadowResolver::addShadow(), llvm::Init::convertInitializerTo(), llvm::IntRecTy::get(), get(), llvm::Resolver::getCurrentRecord(), getOpcode(), getType(), llvm::AMDGPUISD::IF, and llvm::Init::resolveReferences().