LLVM
8.0.1
|
!op (X, Y) - Combine two inits. More...
#include "llvm/TableGen/Record.h"
Public Types | |
enum | BinaryOp : uint8_t { ADD, AND, OR, SHL, SRA, SRL, LISTCONCAT, STRCONCAT, CONCAT, EQ, NE, LE, LT, GE, GT } |
Public Member Functions | |
BinOpInit (const BinOpInit &)=delete | |
BinOpInit & | operator= (const BinOpInit &)=delete |
void | Profile (FoldingSetNodeID &ID) const |
OpInit * | clone (ArrayRef< Init *> Operands) const override |
unsigned | getNumOperands () const override |
Init * | getOperand (unsigned i) const override |
BinaryOp | getOpcode () const |
Init * | getLHS () const |
Init * | getRHS () const |
Init * | Fold (Record *CurRec) const |
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... | |
![]() | |
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... | |
![]() | |
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... | |
![]() | |
InitKind | getKind () const |
Init (const Init &)=delete | |
Init & | operator= (const Init &)=delete |
virtual | ~Init ()=default |
virtual bool | isComplete () const |
This virtual method should be overridden by values that may not be completely specified yet. More... | |
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... | |
![]() | |
Node ()=default | |
void * | getNextInBucket () const |
void | SetNextInBucket (void *N) |
Static Public Member Functions | |
static bool | classof (const Init *I) |
static BinOpInit * | get (BinaryOp opc, Init *lhs, Init *rhs, RecTy *Type) |
static Init * | getStrConcat (Init *lhs, Init *rhs) |
![]() | |
static bool | classof (const Init *I) |
![]() | |
static bool | classof (const Init *I) |
Additional Inherited Members | |
![]() | |
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... | |
![]() | |
OpInit (InitKind K, RecTy *Type, uint8_t Opc) | |
![]() | |
TypedInit (InitKind K, RecTy *T, uint8_t Opc=0) | |
![]() | |
Init (InitKind K, uint8_t Opc=0) | |
![]() | |
uint8_t | Opc |
enum llvm::BinOpInit::BinaryOp : uint8_t |
Definition at line 814 of file Record.h.
References llvm::Init::getKind().
Implements llvm::OpInit.
Definition at line 825 of file Record.h.
References assert(), get(), getOpcode(), getType(), and llvm::ArrayRef< T >::size().
Definition at line 846 of file Record.cpp.
References llvm::ISD::ADD, llvm::ISD::AND, llvm::AMDGPU::HSAMD::Kernel::Key::Args, llvm::ListInit::begin(), ConcatStringInits(), llvm::dyn_cast(), llvm::SmallVectorTemplateCommon< T >::end(), llvm::ListInit::end(), EQ, llvm::object::Equal, llvm::AArch64CC::GE, llvm::IntRecTy::get(), llvm::BitInit::get(), llvm::IntInit::get(), llvm::ListInit::get(), llvm::DagInit::get(), llvm::DagInit::getArg(), llvm::DagInit::getArgName(), llvm::DagInit::getAsString(), llvm::DefInit::getDef(), llvm::ListInit::getElementType(), llvm::DagInit::getNumArgs(), getOpcode(), llvm::DagInit::getOperator(), llvm::IntInit::getValue(), llvm::StringInit::getValue(), llvm::AArch64CC::GT, llvm::SmallVectorImpl< T >::insert(), llvm::AArch64CC::LE, llvm_unreachable, llvm::AArch64CC::LT, llvm::AArch64CC::NE, OR, llvm::PrintFatalError(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::ISD::SHL, llvm::ISD::SRA, and llvm::ISD::SRL.
Definition at line 811 of file Record.cpp.
References Allocator, llvm::FoldingSetImpl< T >::FindNodeOrInsertPos(), I, llvm::FoldingSetImpl< T >::InsertNode(), and ProfileBinOpInit().
Referenced by clone(), getStrConcat(), and resolveReferences().
|
overridevirtual |
Convert this value to a string form.
Implements llvm::Init.
Definition at line 973 of file Record.cpp.
References llvm::ISD::ADD, llvm::ISD::AND, EQ, llvm::AArch64CC::GE, getOpcode(), llvm::AArch64CC::GT, llvm::AArch64CC::LE, llvm::AArch64CC::LT, llvm::AArch64CC::NE, OR, llvm::ISD::SHL, llvm::ISD::SRA, and llvm::ISD::SRL.
|
inlineoverridevirtual |
Implements llvm::OpInit.
|
inline |
Definition at line 842 of file Record.h.
References llvm::RecTy::getAsString().
Definition at line 838 of file Record.cpp.
References ConcatStringInits(), llvm::StringRecTy::get(), get(), and STRCONCAT.
Referenced by isObjectStart(), and QualifyName().
void BinOpInit::Profile | ( | FoldingSetNodeID & | ID | ) | const |
Definition at line 827 of file Record.cpp.
References getOpcode(), getType(), and ProfileBinOpInit().
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 963 of file Record.cpp.
References get(), llvm::Resolver::getCurrentRecord(), getOpcode(), getType(), and llvm::Init::resolveReferences().