LLVM 24.0.0git
llvm::FoldOpInit Class Referencefinal

!foldl (a, b, expr, start, lst) - Fold over a list. More...

#include "llvm/TableGen/Record.h"

Inheritance diagram for llvm::FoldOpInit:
[legend]

Public Member Functions

 FoldOpInit (const FoldOpInit &)=delete
FoldOpInit & operator= (const FoldOpInit &)=delete
std::tuple< const Init *, const Init *, const Init *, const Init *, const Init *, const RecTy * > getKey () const
const Init * Fold (const Record *CurRec) const
bool isComplete () const override
 Is this a complete value with no unset (uninitialized) subvalues?
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.
const Init * getBit (unsigned Bit) const override
 Get the Init value of the specified bit.
std::string getAsString () const override
 Convert this value to a literal form.
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 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::FoldingSetNode
 FoldingSetNode ()=default
uint32_t getFoldingSetHash () const
void setFoldingSetHash (uint32_t Hash)

Static Public Member Functions

static bool classof (const Init *I)
static const FoldOpInit * get (const Init *Start, const Init *List, const Init *A, const Init *B, const Init *Expr, 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

Detailed Description

!foldl (a, b, expr, start, lst) - Fold over a list.

Definition at line 1099 of file Record.h.

Constructor & Destructor Documentation

◆ FoldOpInit()

llvm::FoldOpInit::FoldOpInit ( const FoldOpInit & )
delete

Member Function Documentation

◆ classof()

bool llvm::FoldOpInit::classof ( const Init * I)
inlinestatic

Definition at line 1112 of file Record.h.

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

◆ Fold()

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

Definition at line 2010 of file Record.cpp.

References llvm::dyn_cast(), and llvm::Init::resolveReferences().

Referenced by resolveReferences().

◆ get()

◆ getAsString()

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

Convert this value to a literal form.

Implements llvm::Init.

Definition at line 2045 of file Record.cpp.

◆ getBit()

const Init * FoldOpInit::getBit ( unsigned Bit) const
overridevirtual

Get the Init value of the specified bit.

Implements llvm::Init.

Definition at line 2039 of file Record.cpp.

References llvm::VarBitInit::get(), llvm::TypedInit::getType(), and llvm::isa().

◆ getKey()

std::tuple< const Init *, const Init *, const Init *, const Init *, const Init *, const RecTy * > llvm::FoldOpInit::getKey ( ) const
inline

Definition at line 1120 of file Record.h.

References llvm::TypedInit::getType().

◆ isComplete()

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

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

Reimplemented from llvm::Init.

Definition at line 1128 of file Record.h.

◆ operator=()

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

◆ resolveReferences()

const Init * FoldOpInit::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 2024 of file Record.cpp.

References llvm::ShadowResolver::addShadow(), Fold(), get(), llvm::TypedInit::getType(), and llvm::Init::resolveReferences().


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