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:
- include/llvm/TableGen/Record.h
- lib/TableGen/Record.cpp