LLVM: llvm::BinOpInit Class Reference (original) (raw)

!op (X, Y) - Combine two inits. More...

#include "[llvm/TableGen/Record.h](TableGen%5F2Record%5F8h%5Fsource.html)"

Public Types
enum BinaryOp : uint8_t { ADD, SUB, MUL, DIV, AND, OR, XOR, SHL, SRA, SRL, LISTCONCAT, LISTSPLAT, LISTREMOVE, LISTELEM, LISTSLICE, RANGEC, STRCONCAT, INTERLEAVE, CONCAT, MATCH, EQ, NE, LE, LT, GE, GT, GETDAGARG, GETDAGNAME, SETDAGOP, SETDAGOPNAME }
Public Member Functions
BinOpInit (const BinOpInit &)=delete
BinOpInit & operator= (const BinOpInit &)=delete
void Profile (FoldingSetNodeID &ID) const
BinaryOp getOpcode () const
const Init * getLHS () const
const Init * getRHS () const
std::optional< bool > CompareInit (unsigned Opc, const Init *LHS, const Init *RHS) const
const Init * Fold (const Record *CurRec) const
const Init * resolveReferences (Resolver &R) const override
This function is used by classes that refer to other variables which may not be defined at the time the expression is formed.
std::string getAsString () const override
Convert this value to a literal form.
Public Member Functions inherited from llvm::OpInit
OpInit (const OpInit &)=delete
OpInit & operator= (OpInit &)=delete
const Init * getBit (unsigned Bit) const final
Get the Init value of the specified bit.
Public Member Functions inherited from llvm::TypedInit
TypedInit (const TypedInit &)=delete
TypedInit & operator= (const TypedInit &)=delete
const RecTy * getType () const
Get the type of the Init as a RecTy.
RecordKeeper & getRecordKeeper () const
Get the record keeper that initialized this Init.
const Init * getCastTo (const RecTy *Ty) const override
If this value is convertible to type Ty, return a value whose type is Ty, generating a !cast operation if required.
const Init * convertInitializerTo (const RecTy *Ty) const override
Convert to a value whose type is Ty, or return null if this is not possible.
const Init * convertInitializerBitRange (ArrayRef< unsigned > Bits) const override
This function is used to implement the bit range selection operator.
const RecTy * getFieldType (const StringInit *FieldName) const override
This method is used to implement the FieldInit class.
Public Member Functions inherited from llvm::Init
InitKind getKind () const
Get the kind (type) of the value.
RecordKeeper & getRecordKeeper () const
Get the record keeper that initialized this Init.
Init (const Init &)=delete
Init & operator= (const Init &)=delete
virtual ~Init ()=default
virtual bool isComplete () const
Is this a complete value with no unset (uninitialized) subvalues?
virtual bool isConcrete () const
Is this a concrete and fully resolved value without any references or stuck operations?
void print (raw_ostream &OS) const
Print this value.
virtual std::string getAsUnquotedString () const
Convert this value to a literal form, without adding quotes around a string.
void dump () const
Debugging method that may be called through a debugger; just invokes print on stderr.
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 const BinOpInit * get (BinaryOp opc, const Init *lhs, const Init *rhs, const RecTy *Type)
static const Init * getStrConcat (const Init *lhs, const Init *rhs)
static const Init * getListConcat (const TypedInit *lhs, const Init *rhs)
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_DagInit, IK_DefInit, IK_FieldInit, IK_IntInit, IK_ListInit, IK_FirstOpInit, IK_BinOpInit, IK_TernOpInit, IK_UnOpInit, IK_LastOpInit, IK_CondOpInit, IK_FoldOpInit, IK_IsAOpInit, IK_ExistsOpInit, IK_InstancesOpInit, IK_AnonymousNameInit, IK_StringInit, IK_VarInit, IK_VarBitInit, IK_VarDefInit, IK_LastTypedInit, IK_UnsetInit, IK_ArgumentInit }
Discriminator enum (for isa<>, dyn_cast<>, et al.) More...
Protected Member Functions inherited from llvm::OpInit
OpInit (InitKind K, const RecTy *Type, uint8_t Opc)
Protected Member Functions inherited from llvm::TypedInit
TypedInit (InitKind K, const 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

!op (X, Y) - Combine two inits.

Definition at line 885 of file Record.h.

BinaryOp

Enumerator
ADD
SUB
MUL
DIV
AND
OR
XOR
SHL
SRA
SRL
LISTCONCAT
LISTSPLAT
LISTREMOVE
LISTELEM
LISTSLICE
RANGEC
STRCONCAT
INTERLEAVE
CONCAT
MATCH
EQ
NE
LE
LT
GE
GT
GETDAGARG
GETDAGNAME
SETDAGOP
SETDAGOPNAME

Definition at line 887 of file Record.h.

classof()

CompareInit()

Definition at line 1193 of file Record.cpp.

References llvm::dyn_cast(), llvm::dyn_cast_or_null(), EQ, GE, llvm::IntRecTy::get(), llvm::TypedInit::getRecordKeeper(), GT, LE, llvm_unreachable, LT, NE, and llvm::Init::Opc.

Referenced by Fold().

Fold()

Definition at line 1303 of file Record.cpp.

References ADD, AND, llvm::append_range(), assert(), CompareInit(), CONCAT, ConcatStringInits(), llvm::Count, DIV, llvm::dyn_cast(), llvm::dyn_cast_or_null(), EQ, GE, llvm::BitInit::get(), llvm::DagInit::get(), llvm::IntInit::get(), llvm::IntRecTy::get(), llvm::ListInit::get(), llvm::UnsetInit::get(), GETDAGARG, getDagArgNoByKey(), GETDAGNAME, llvm::Record::getLoc(), getOpcode(), llvm::TypedInit::getRecordKeeper(), llvm::TypedInit::getType(), llvm::Value::getType(), GT, I, II, INT64_MIN, INTERLEAVE, interleaveIntList(), interleaveStringList(), llvm::isa(), LE, llvm::List, LISTCONCAT, LISTELEM, LISTREMOVE, LISTSLICE, LISTSPLAT, llvm_unreachable, LT, MATCH, MUL, NE, OR, llvm::PrintError(), llvm::PrintFatalError(), RANGEC, SETDAGOP, SETDAGOPNAME, SHL, SRA, SRL, STRCONCAT, SUB, and XOR.

get()

Definition at line 1095 of file Record.cpp.

References detail::RecordKeeperImpl::Allocator, llvm::FoldingSetImpl< Derived, T >::FindNodeOrInsertPos(), llvm::RecordKeeper::getImpl(), I, llvm::FoldingSetImpl< Derived, T >::InsertNode(), llvm::Init::Opc, ProfileBinOpInit(), and detail::RecordKeeperImpl::TheBinOpInitPool.

Referenced by getListConcat(), getStrConcat(), and resolveReferences().

getAsString()

std::string BinOpInit::getAsString ( ) const overridevirtual

Convert this value to a literal form.

Implements llvm::Init.

Definition at line 1630 of file Record.cpp.

References ADD, AND, CONCAT, DIV, EQ, GE, llvm::RecTy::getAsString(), GETDAGARG, GETDAGNAME, getOpcode(), llvm::TypedInit::getType(), GT, INTERLEAVE, LE, LISTCONCAT, LISTELEM, LISTREMOVE, LISTSLICE, LISTSPLAT, LT, MATCH, MUL, NE, OR, RANGEC, SETDAGOP, SETDAGOPNAME, SHL, SRA, SRL, STRCONCAT, SUB, and XOR.

getLHS()

const Init * llvm::BinOpInit::getLHS ( ) const inline

getListConcat()

getOpcode()

BinaryOp llvm::BinOpInit::getOpcode ( ) const inline

getRHS()

const Init * llvm::BinOpInit::getRHS ( ) const inline

getStrConcat()

operator=()

Profile()

resolveReferences()

This function 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 1602 of file Record.cpp.

References AND, llvm::Init::convertInitializerTo(), llvm::dyn_cast_or_null(), get(), llvm::IntRecTy::get(), getOpcode(), llvm::TypedInit::getRecordKeeper(), llvm::TypedInit::getType(), llvm::Init::Opc, OR, and llvm::Init::resolveReferences().


The documentation for this class was generated from the following files: