LLVM API Documentation

Public Types | Public Member Functions | Static Public Member Functions
llvm::TernOpInit Class Reference

#include <Record.h>

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

List of all members.

Public Types

enum  TernaryOp { SUBST, FOREACH, IF }

Public Member Functions

OpInitclone (std::vector< Init * > &Operands) const override
int getNumOperands () const override
InitgetOperand (int i) const override
TernaryOp getOpcode () const
InitgetLHS () const
InitgetMHS () const
InitgetRHS () const
InitFold (Record *CurRec, MultiClass *CurMultiClass) const override
bool isComplete () const override
InitresolveReferences (Record &R, const RecordVal *RV) const override
std::string getAsString () const override
 getAsString - Convert this value to a string form.

Static Public Member Functions

static bool classof (const Init *I)
static TernOpInitget (TernaryOp opc, Init *lhs, Init *mhs, Init *rhs, RecTy *Type)

Detailed Description

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

Definition at line 991 of file Record.h.


Member Enumeration Documentation

Enumerator:
SUBST 
FOREACH 
IF 

Definition at line 993 of file Record.h.


Member Function Documentation

static bool llvm::TernOpInit::classof ( const Init I) [inline, static]

Reimplemented from llvm::OpInit.

Definition at line 1007 of file Record.h.

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

OpInit* llvm::TernOpInit::clone ( std::vector< Init * > &  Operands) const [inline, override, virtual]

Implements llvm::OpInit.

Definition at line 1015 of file Record.h.

References get(), getOpcode(), and llvm::TypedInit::getType().

Init * TernOpInit::Fold ( Record CurRec,
MultiClass CurMultiClass 
) const [override, virtual]
TernOpInit * TernOpInit::get ( TernaryOp  opc,
Init lhs,
Init mhs,
Init rhs,
RecTy Type 
) [static]

Definition at line 1020 of file Record.cpp.

References I.

Referenced by clone(), Fold(), and resolveReferences().

std::string TernOpInit::getAsString ( ) const [override, virtual]

getAsString - Convert this value to a string form.

Implements llvm::Init.

Definition at line 1271 of file Record.cpp.

References FOREACH, llvm::Init::getAsString(), IF, and SUBST.

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

Definition at line 1036 of file Record.h.

Referenced by getOperand().

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

Definition at line 1037 of file Record.h.

Referenced by getOperand().

int llvm::TernOpInit::getNumOperands ( ) const [inline, override, virtual]

Implements llvm::OpInit.

Definition at line 1022 of file Record.h.

Definition at line 1035 of file Record.h.

Referenced by clone(), Fold(), and resolveReferences().

Init* llvm::TernOpInit::getOperand ( int  i) const [inline, override, virtual]

Implements llvm::OpInit.

Definition at line 1023 of file Record.h.

References getLHS(), getMHS(), and getRHS().

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

Definition at line 1038 of file Record.h.

Referenced by getOperand().

bool llvm::TernOpInit::isComplete ( ) const [inline, override, virtual]

isComplete - This virtual method should be overridden by values that may not be completely specified yet.

Reimplemented from llvm::Init.

Definition at line 1044 of file Record.h.

Init * TernOpInit::resolveReferences ( Record R,
const RecordVal RV 
) const [override, virtual]

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

References llvm::Init::convertInitializerTo(), llvm::dyn_cast(), Fold(), llvm::IntRecTy::get(), get(), getOpcode(), llvm::TypedInit::getType(), llvm::IntInit::getValue(), I, IF, and llvm::Init::resolveReferences().


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