LLVM  3.7.0
Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
llvm::TypedInit Class Referenceabstract

TypedInit - This is the common super-class of types that have a specific, explicit, type. More...

#include <Record.h>

Inheritance diagram for llvm::TypedInit:
[legend]
Collaboration diagram for llvm::TypedInit:
[legend]

Public Member Functions

RecTygetType () const
 
InitconvertInitializerTo (RecTy *Ty) const override
 convertInitializerTo - This virtual function converts to the appropriate Init based on the passed in type. More...
 
InitconvertInitializerBitRange (const std::vector< unsigned > &Bits) const override
 convertInitializerBitRange - This method is used to implement the bitrange selection operator. More...
 
InitconvertInitListSlice (const std::vector< unsigned > &Elements) const override
 convertInitListSlice - This method is used to implement the list slice selection operator. More...
 
RecTygetFieldType (const std::string &FieldName) const override
 getFieldType - This method is used to implement the FieldInit class. More...
 
virtual InitresolveListElementReference (Record &R, const RecordVal *RV, unsigned Elt) const =0
 resolveListElementReference - This method is used to implement VarListElementInit::resolveReferences. More...
 
- Public Member Functions inherited from llvm::Init
InitKind getKind () const
 
virtual ~Init ()
 
virtual bool isComplete () const
 isComplete - This virtual method should be overridden by values that may not be completely specified yet. More...
 
void print (raw_ostream &OS) const
 print - Print out this value. More...
 
virtual std::string getAsString () const =0
 getAsString - Convert this value to a string form. More...
 
virtual std::string getAsUnquotedString () const
 getAsUnquotedString - Convert this value to a string form, without adding quote markers. More...
 
void dump () const
 dump - Debugging method that may be called through a debugger, just invokes print on stderr. More...
 
virtual InitgetFieldInit (Record &R, const RecordVal *RV, const std::string &FieldName) const
 getFieldInit - This method complements getFieldType to return the initializer for the specified field. More...
 
virtual InitresolveReferences (Record &R, const RecordVal *RV) const
 resolveReferences - This method is used by classes that refer to other variables which may not be defined at the time the expression is formed. More...
 
virtual InitgetBit (unsigned Bit) const =0
 getBit - This method is used to return the initializer for the specified bit. More...
 
virtual InitgetBitVar () const
 getBitVar - This method is used to retrieve the initializer for bit reference. More...
 
virtual unsigned getBitNum () const
 getBitNum - This method is used to retrieve the bit number of a bit reference. More...
 

Static Public Member Functions

static bool classof (const Init *I)
 

Protected Member Functions

 TypedInit (InitKind K, RecTy *T)
 
 ~TypedInit ()
 
- Protected Member Functions inherited from llvm::Init
 Init (InitKind K)
 

Additional Inherited Members

- Protected Types inherited from llvm::Init
enum  InitKind {
  IK_BitInit, IK_FirstTypedInit, IK_BitsInit, IK_DagInit,
  IK_DefInit, IK_FieldInit, IK_IntInit, IK_ListInit,
  IK_FirstOpInit, IK_BinOpInit, IK_TernOpInit, IK_UnOpInit,
  IK_LastOpInit, IK_StringInit, IK_VarInit, IK_VarListElementInit,
  IK_LastTypedInit, IK_UnsetInit, IK_VarBitInit
}
 Discriminator enum (for isa<>, dyn_cast<>, et al.) More...
 

Detailed Description

TypedInit - This is the common super-class of types that have a specific, explicit, type.

Definition at line 361 of file Record.h.

Constructor & Destructor Documentation

llvm::TypedInit::TypedInit ( InitKind  K,
RecTy T 
)
inlineexplicitprotected

Definition at line 368 of file Record.h.

llvm::TypedInit::~TypedInit ( )
inlineprotected

Definition at line 369 of file Record.h.

References llvm::Init::getKind(), and llvm::Init::IK_DefInit.

Member Function Documentation

static bool llvm::TypedInit::classof ( const Init I)
inlinestatic
Init * TypedInit::convertInitializerBitRange ( const std::vector< unsigned > &  Bits) const
overridevirtual

convertInitializerBitRange - This method is used to implement the bitrange selection operator.

Given an initializer, it selects the specified bits out, returning them as a new init of bits type. If it is not legal to use the bit subscript operator on this initializer, return null.

Reimplemented from llvm::Init.

Reimplemented in llvm::IntInit, and llvm::BitsInit.

Definition at line 1170 of file Record.cpp.

References llvm::dyn_cast(), llvm::BitsInit::get(), llvm::VarBitInit::get(), llvm::BitsRecTy::getNumBits(), and getType().

Init * TypedInit::convertInitializerTo ( RecTy Ty) const
overridevirtual

convertInitializerTo - This virtual function converts to the appropriate Init based on the passed in type.

Implements llvm::Init.

Reimplemented in llvm::DagInit, llvm::DefInit, llvm::ListInit, llvm::StringInit, llvm::IntInit, and llvm::BitsInit.

Definition at line 1094 of file Record.cpp.

References llvm::BitRecTy::get(), llvm::BitsInit::get(), llvm::VarBitInit::get(), getType(), and llvm::RecTy::typeIsConvertibleTo().

Init * TypedInit::convertInitListSlice ( const std::vector< unsigned > &  Elements) const
overridevirtual

convertInitListSlice - This method is used to implement the list slice selection operator.

Given an initializer, it selects the specified list elements, returning them as a new init of list type. If it is not legal to take a slice of this, return null.

Reimplemented from llvm::Init.

Reimplemented in llvm::ListInit.

Definition at line 1186 of file Record.cpp.

References llvm::dyn_cast(), llvm::ListInit::get(), llvm::VarListElementInit::get(), and getType().

RecTy * TypedInit::getFieldType ( const std::string &  FieldName) const
overridevirtual

getFieldType - This method is used to implement the FieldInit class.

Implementors of this method should return the type of the named field if they are of record type.

Reimplemented from llvm::Init.

Reimplemented in llvm::DefInit, and llvm::VarInit.

Definition at line 1086 of file Record.cpp.

References llvm::tgtok::Field, and getType().

RecTy* llvm::TypedInit::getType ( ) const
inline
virtual Init* llvm::TypedInit::resolveListElementReference ( Record R,
const RecordVal RV,
unsigned  Elt 
) const
pure virtual

resolveListElementReference - This method is used to implement VarListElementInit::resolveReferences.

If the list element is resolvable now, we return the resolved value, otherwise we return null.

Implemented in llvm::DagInit, llvm::FieldInit, llvm::DefInit, llvm::VarListElementInit, llvm::VarInit, llvm::OpInit, llvm::ListInit, llvm::StringInit, llvm::IntInit, and llvm::BitsInit.

Referenced by llvm::OpInit::resolveListElementReference(), and llvm::VarListElementInit::resolveListElementReference().


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