LLVM  8.0.1
Public Types | Public Member Functions | Static Public Member Functions | List of all members
llvm::BinOpInit Class Reference

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

#include "llvm/TableGen/Record.h"

Inheritance diagram for llvm::BinOpInit:
Inheritance graph
[legend]
Collaboration diagram for llvm::BinOpInit:
Collaboration graph
[legend]

Public Types

enum  BinaryOp : uint8_t {
  ADD, AND, OR, SHL,
  SRA, SRL, LISTCONCAT, STRCONCAT,
  CONCAT, EQ, NE, LE,
  LT, GE, GT
}
 

Public Member Functions

 BinOpInit (const BinOpInit &)=delete
 
BinOpInitoperator= (const BinOpInit &)=delete
 
void Profile (FoldingSetNodeID &ID) const
 
OpInitclone (ArrayRef< Init *> Operands) const override
 
unsigned getNumOperands () const override
 
InitgetOperand (unsigned i) const override
 
BinaryOp getOpcode () const
 
InitgetLHS () const
 
InitgetRHS () const
 
InitFold (Record *CurRec) const
 
InitresolveReferences (Resolver &R) const override
 This method is used by classes that refer to other variables which may not be defined at the time the expression is formed. More...
 
std::string getAsString () const override
 Convert this value to a string form. More...
 
- Public Member Functions inherited from llvm::OpInit
 OpInit (const OpInit &)=delete
 
OpInitoperator= (OpInit &)=delete
 
InitgetBit (unsigned Bit) const override
 This method is used to return the initializer for the specified bit. More...
 
- Public Member Functions inherited from llvm::TypedInit
 TypedInit (const TypedInit &)=delete
 
TypedInitoperator= (const TypedInit &)=delete
 
RecTygetType () const
 
InitgetCastTo (RecTy *Ty) const override
 If this initializer is convertible to Ty, return an initializer whose type is-a Ty, generating a !cast operation if required. More...
 
InitconvertInitializerTo (RecTy *Ty) const override
 Convert to an initializer whose type is-a Ty, or return nullptr if this is not possible (this can happen if the initializer's type is convertible to Ty, but there are unresolved references). More...
 
InitconvertInitializerBitRange (ArrayRef< unsigned > Bits) const override
 This method is used to implement the bitrange selection operator. More...
 
InitconvertInitListSlice (ArrayRef< unsigned > Elements) const override
 This method is used to implement the list slice selection operator. More...
 
RecTygetFieldType (StringInit *FieldName) const override
 This method is used to implement the FieldInit class. More...
 
- Public Member Functions inherited from llvm::Init
InitKind getKind () const
 
 Init (const Init &)=delete
 
Initoperator= (const Init &)=delete
 
virtual ~Init ()=default
 
virtual bool isComplete () const
 This virtual method should be overridden by values that may not be completely specified yet. More...
 
virtual bool isConcrete () const
 Is this a concrete and fully resolved value without any references or stuck operations? Unset values are concrete. More...
 
void print (raw_ostream &OS) const
 Print out this value. More...
 
virtual std::string getAsUnquotedString () const
 Convert this value to a string form, without adding quote markers. More...
 
void dump () const
 Debugging method that may be called through a debugger, just invokes print on stderr. More...
 
- 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 BinOpInitget (BinaryOp opc, Init *lhs, Init *rhs, RecTy *Type)
 
static InitgetStrConcat (Init *lhs, 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_CodeInit, IK_DagInit, IK_DefInit, IK_FieldInit,
  IK_IntInit, IK_ListInit, IK_FirstOpInit, IK_BinOpInit,
  IK_TernOpInit, IK_UnOpInit, IK_LastOpInit, IK_FoldOpInit,
  IK_IsAOpInit, IK_StringInit, IK_VarInit, IK_VarListElementInit,
  IK_VarBitInit, IK_VarDefInit, IK_LastTypedInit, IK_UnsetInit
}
 Discriminator enum (for isa<>, dyn_cast<>, et al.) More...
 
- Protected Member Functions inherited from llvm::OpInit
 OpInit (InitKind K, RecTy *Type, uint8_t Opc)
 
- Protected Member Functions inherited from llvm::TypedInit
 TypedInit (InitKind K, 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) - Combine two inits.

Definition at line 799 of file Record.h.

Member Enumeration Documentation

◆ BinaryOp

enum llvm::BinOpInit::BinaryOp : uint8_t
Enumerator
ADD 
AND 
OR 
SHL 
SRA 
SRL 
LISTCONCAT 
STRCONCAT 
CONCAT 
EQ 
NE 
LE 
LT 
GE 
GT 

Definition at line 801 of file Record.h.

Constructor & Destructor Documentation

◆ BinOpInit()

llvm::BinOpInit::BinOpInit ( const BinOpInit )
delete

Member Function Documentation

◆ classof()

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

Definition at line 814 of file Record.h.

References llvm::Init::getKind().

◆ clone()

OpInit* llvm::BinOpInit::clone ( ArrayRef< Init *>  Operands) const
inlineoverridevirtual

Implements llvm::OpInit.

Definition at line 825 of file Record.h.

References assert(), get(), getOpcode(), getType(), and llvm::ArrayRef< T >::size().

◆ Fold()

Init * BinOpInit::Fold ( Record CurRec) const

◆ get()

BinOpInit * BinOpInit::get ( BinaryOp  opc,
Init lhs,
Init rhs,
RecTy Type 
)
static

◆ getAsString()

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

◆ getLHS()

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

Definition at line 841 of file Record.h.

◆ getNumOperands()

unsigned llvm::BinOpInit::getNumOperands ( ) const
inlineoverridevirtual

Implements llvm::OpInit.

Definition at line 831 of file Record.h.

◆ getOpcode()

BinaryOp llvm::BinOpInit::getOpcode ( ) const
inline

Definition at line 840 of file Record.h.

◆ getOperand()

Init* llvm::BinOpInit::getOperand ( unsigned  i) const
inlineoverridevirtual

Implements llvm::OpInit.

Definition at line 832 of file Record.h.

References llvm_unreachable.

◆ getRHS()

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

Definition at line 842 of file Record.h.

References llvm::RecTy::getAsString().

◆ getStrConcat()

Init * BinOpInit::getStrConcat ( Init lhs,
Init rhs 
)
static

Definition at line 838 of file Record.cpp.

References ConcatStringInits(), llvm::StringRecTy::get(), get(), and STRCONCAT.

Referenced by isObjectStart(), and QualifyName().

◆ operator=()

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

◆ Profile()

void BinOpInit::Profile ( FoldingSetNodeID ID) const

Definition at line 827 of file Record.cpp.

References getOpcode(), getType(), and ProfileBinOpInit().

◆ resolveReferences()

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

This method 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 963 of file Record.cpp.

References get(), llvm::Resolver::getCurrentRecord(), getOpcode(), getType(), and llvm::Init::resolveReferences().


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