LLVM 20.0.0git
Public Types | Public Member Functions | Static Public Member Functions | List of all members
llvm::TernOpInit Class Referencefinal

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

#include "llvm/TableGen/Record.h"

Inheritance diagram for llvm::TernOpInit:
Inheritance graph
[legend]

Public Types

enum  TernaryOp : uint8_t {
  SUBST , FOREACH , FILTER , IF ,
  DAG , RANGE , SUBSTR , FIND ,
  SETDAGARG , SETDAGNAME
}
 

Public Member Functions

 TernOpInit (const TernOpInit &)=delete
 
TernOpInitoperator= (const TernOpInit &)=delete
 
void Profile (FoldingSetNodeID &ID) const
 
TernaryOp getOpcode () const
 
const InitgetLHS () const
 
const InitgetMHS () const
 
const InitgetRHS () const
 
const InitFold (const Record *CurRec) const
 
bool isComplete () const override
 Is this a complete value with no unset (uninitialized) subvalues?
 
const InitresolveReferences (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
 
OpInitoperator= (OpInit &)=delete
 
const InitgetBit (unsigned Bit) const final
 Get the Init value of the specified bit.
 
- Public Member Functions inherited from llvm::TypedInit
 TypedInit (const TypedInit &)=delete
 
TypedInitoperator= (const TypedInit &)=delete
 
const RecTygetType () const
 Get the type of the Init as a RecTy.
 
RecordKeepergetRecordKeeper () const
 Get the record keeper that initialized this Init.
 
const InitgetCastTo (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 InitconvertInitializerTo (const RecTy *Ty) const override
 Convert to a value whose type is Ty, or return null if this is not possible.
 
const InitconvertInitializerBitRange (ArrayRef< unsigned > Bits) const override
 This function is used to implement the bit range selection operator.
 
const RecTygetFieldType (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.
 
RecordKeepergetRecordKeeper () const
 Get the record keeper that initialized this Init.
 
 Init (const Init &)=delete
 
Initoperator= (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? Unset values are concrete.
 
void print (raw_ostream &OS) const
 Print this value.
 
virtual std::string getAsString () const =0
 Convert this value to a literal form.
 
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.
 
virtual const InitgetCastTo (const RecTy *Ty) const =0
 If this value is convertible to type Ty, return a value whose type is Ty, generating a !cast operation if required.
 
virtual const InitconvertInitializerTo (const RecTy *Ty) const =0
 Convert to a value whose type is Ty, or return null if this is not possible.
 
virtual const InitconvertInitializerBitRange (ArrayRef< unsigned > Bits) const
 This function is used to implement the bit range selection operator.
 
virtual const RecTygetFieldType (const StringInit *FieldName) const
 This function is used to implement the FieldInit class.
 
virtual const InitresolveReferences (Resolver &R) const
 This function is used by classes that refer to other variables which may not be defined at the time the expression is formed.
 
virtual const InitgetBit (unsigned Bit) const =0
 Get the Init value of the specified bit.
 
- 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 TernOpInitget (TernaryOp opc, const Init *lhs, const Init *mhs, const Init *rhs, const 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_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_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
 

Detailed Description

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

Definition at line 962 of file Record.h.

Member Enumeration Documentation

◆ TernaryOp

Enumerator
SUBST 
FOREACH 
FILTER 
IF 
DAG 
RANGE 
SUBSTR 
FIND 
SETDAGARG 
SETDAGNAME 

Definition at line 964 of file Record.h.

Constructor & Destructor Documentation

◆ TernOpInit()

llvm::TernOpInit::TernOpInit ( const TernOpInit )
delete

Member Function Documentation

◆ classof()

static bool llvm::TernOpInit::classof ( const Init I)
inlinestatic

Definition at line 988 of file Record.h.

References I, and llvm::Init::IK_TernOpInit.

◆ Fold()

const Init * TernOpInit::Fold ( const Record CurRec) const

◆ get()

const TernOpInit * TernOpInit::get ( TernaryOp  opc,
const Init lhs,
const Init mhs,
const Init rhs,
const RecTy Type 
)
static

◆ getAsString()

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

Convert this value to a literal form.

Implements llvm::Init.

Definition at line 1967 of file Record.cpp.

References DAG, FILTER, FIND, FOREACH, llvm::Init::getAsString(), llvm::Init::getAsUnquotedString(), getOpcode(), IF, RANGE, SETDAGARG, SETDAGNAME, SUBST, and SUBSTR.

◆ getLHS()

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

Definition at line 998 of file Record.h.

References LHS.

Referenced by Profile().

◆ getMHS()

const Init * llvm::TernOpInit::getMHS ( ) const
inline

Definition at line 999 of file Record.h.

Referenced by Profile().

◆ getOpcode()

TernaryOp llvm::TernOpInit::getOpcode ( ) const
inline

Definition at line 997 of file Record.h.

References llvm::Init::Opc.

Referenced by Fold(), getAsString(), Profile(), and resolveReferences().

◆ getRHS()

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

Definition at line 1000 of file Record.h.

References RHS.

Referenced by Profile().

◆ isComplete()

bool llvm::TernOpInit::isComplete ( ) const
inlineoverridevirtual

Is this a complete value with no unset (uninitialized) subvalues?

Reimplemented from llvm::Init.

Definition at line 1006 of file Record.h.

References llvm::Init::isComplete(), LHS, and RHS.

◆ operator=()

TernOpInit & llvm::TernOpInit::operator= ( const TernOpInit )
delete

◆ Profile()

void TernOpInit::Profile ( FoldingSetNodeID ID) const

◆ resolveReferences()

const Init * TernOpInit::resolveReferences ( Resolver R) const
overridevirtual

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 1937 of file Record.cpp.

References llvm::ShadowResolver::addShadow(), llvm::Init::convertInitializerTo(), FILTER, FOREACH, llvm::IntRecTy::get(), get(), getOpcode(), llvm::TypedInit::getRecordKeeper(), llvm::TypedInit::getType(), IF, and llvm::Init::resolveReferences().


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