|
LLVM 24.0.0git
|
!cond(condition_1: value1, ... , condition_n: value) Selects the first value for which condition is true. More...
#include "llvm/TableGen/Record.h"
Public Types | |
| using | const_case_iterator = SmallVectorImpl<const Init *>::const_iterator |
| using | const_val_iterator = SmallVectorImpl<const Init *>::const_iterator |
Public Member Functions | |
| CondOpInit (const CondOpInit &)=delete | |
| CondOpInit & | operator= (const CondOpInit &)=delete |
| std::tuple< const RecTy *, ArrayRef< const Init * >, ArrayRef< const Init * > > | getKey () const |
| const RecTy * | getValType () const |
| unsigned | getNumConds () const |
| const Init * | getCond (unsigned Num) const |
| const Init * | getVal (unsigned Num) const |
| ArrayRef< const Init * > | getConds () const |
| ArrayRef< const Init * > | getVals () const |
| auto | getCondAndVals () 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. | |
| bool | isConcrete () const override |
| Is this a concrete and fully resolved value without any references or stuck operations? | |
| bool | isComplete () const override |
| Is this a complete value with no unset (uninitialized) subvalues? | |
| std::string | getAsString () const override |
| Convert this value to a literal form. | |
| const_case_iterator | arg_begin () const |
| const_case_iterator | arg_end () const |
| size_t | case_size () const |
| bool | case_empty () const |
| const_val_iterator | name_begin () const |
| const_val_iterator | name_end () const |
| size_t | val_size () const |
| bool | val_empty () const |
| const Init * | getBit (unsigned Bit) const override |
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 |
| 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::FoldingSetNode | |
| FoldingSetNode ()=default | |
| uint32_t | getFoldingSetHash () const |
| void | setFoldingSetHash (uint32_t Hash) |
Static Public Member Functions | |
| static bool | classof (const Init *I) |
| static const CondOpInit * | get (ArrayRef< const Init * > Conds, ArrayRef< const Init * > Values, const RecTy *Type) |
| 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::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 |
!cond(condition_1: value1, ... , condition_n: value) Selects the first value for which condition is true.
Otherwise reports an error.
|
delete |
|
inline |
Definition at line 1083 of file Record.h.
References getConds().
|
inline |
Definition at line 1084 of file Record.h.
References getConds().
Definition at line 1041 of file Record.h.
References I, and llvm::Init::IK_CondOpInit.
Definition at line 2557 of file Record.cpp.
References Cond, llvm::dyn_cast_or_null(), llvm::IntRecTy::get(), getCondAndVals(), llvm::Record::getLoc(), llvm::Record::getNameInitAsString(), llvm::TypedInit::getRecordKeeper(), getValType(), and llvm::PrintFatalError().
|
static |
Definition at line 2506 of file Record.cpp.
References detail::RecordKeeperImpl::Allocator, assert(), llvm::RecordKeeper::getImpl(), I, llvm::UniquingSet< T, Info >::insert(), llvm::UniquingSet< T, Info >::lookup(), llvm::ArrayRef< T >::size(), detail::RecordKeeperImpl::TheCondOpInitPool, llvm::TrailingObjects< CondOpInit, const Init * >::totalSizeToAlloc(), and llvm::Values.
Referenced by resolveReferences().
|
overridevirtual |
Convert this value to a literal form.
Implements llvm::Init.
Definition at line 2588 of file Record.cpp.
References Cond, and getCondAndVals().
Get the Init value of the specified bit.
Implements llvm::Init.
Definition at line 2599 of file Record.cpp.
References llvm::VarBitInit::get(), llvm::TypedInit::getType(), and llvm::isa().
Definition at line 1058 of file Record.h.
References getConds().
|
inline |
Definition at line 1070 of file Record.h.
References getConds(), getVals(), and llvm::zip_equal().
Referenced by Fold(), getAsString(), isComplete(), isConcrete(), and resolveReferences().
Definition at line 1062 of file Record.h.
References llvm::TrailingObjects< CondOpInit, const Init * >::getTrailingObjects().
Referenced by arg_begin(), arg_end(), getCond(), getCondAndVals(), and getKey().
|
inline |
Definition at line 1050 of file Record.h.
References getConds(), and getVals().
Definition at line 1066 of file Record.h.
References llvm::ArrayRef(), and llvm::TrailingObjects< CondOpInit, const Init * >::getTrailingObjects().
Referenced by getCondAndVals(), getKey(), getVal(), name_begin(), and name_end().
Definition at line 1054 of file Record.h.
Referenced by Fold(), and resolveReferences().
|
overridevirtual |
Is this a complete value with no unset (uninitialized) subvalues?
Reimplemented from llvm::Init.
Definition at line 2582 of file Record.cpp.
References llvm::all_of(), and getCondAndVals().
|
overridevirtual |
Is this a concrete and fully resolved value without any references or stuck operations?
Unset values are concrete.
Reimplemented from llvm::Init.
Definition at line 2576 of file Record.cpp.
References llvm::all_of(), and getCondAndVals().
|
inline |
|
inline |
|
delete |
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 2525 of file Record.cpp.
References Changed, Cond, llvm::Init::convertInitializerTo(), llvm::dyn_cast_or_null(), get(), llvm::IntRecTy::get(), getCondAndVals(), llvm::TypedInit::getRecordKeeper(), getValType(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::Init::resolveReferences().