LLVM 20.0.0git
Classes | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
llvm::sandboxir::Context Class Reference

#include "llvm/SandboxIR/Context.h"

Classes

struct  TypeDeleter
 Type has a protected destructor to prohibit the user from managing the lifetime of the Type objects. More...
 

Public Types

using EraseInstrCallback = std::function< void(Instruction *)>
 
using CreateInstrCallback = std::function< void(Instruction *)>
 
using MoveInstrCallback = std::function< void(Instruction *, const BBIterator &)>
 
using CallbackID = uint64_t
 An ID for a registered callback.
 

Public Member Functions

 Context (LLVMContext &LLVMCtx)
 
 ~Context ()
 
TrackergetTracker ()
 
void save ()
 Convenience function for getTracker().save()
 
void revert ()
 Convenience function for getTracker().revert()
 
void accept ()
 Convenience function for getTracker().accept()
 
sandboxir::ValuegetValue (llvm::Value *V) const
 
const sandboxir::ValuegetValue (const llvm::Value *V) const
 
ModulegetModule (llvm::Module *LLVMM) const
 
ModulegetOrCreateModule (llvm::Module *LLVMM)
 
TypegetType (llvm::Type *LLVMTy)
 
FunctioncreateFunction (llvm::Function *F)
 Create a sandboxir::Function for an existing LLVM IR F, including all blocks and instructions.
 
ModulecreateModule (llvm::Module *LLVMM)
 Create a sandboxir::Module corresponding to LLVMM.
 
size_t getNumValues () const
 \Returns the number of values registered with Context.
 
CallbackID registerEraseInstrCallback (EraseInstrCallback CB)
 Register a callback that gets called when a SandboxIR instruction is about to be removed from its parent.
 
void unregisterEraseInstrCallback (CallbackID ID)
 
CallbackID registerCreateInstrCallback (CreateInstrCallback CB)
 Register a callback that gets called right after a SandboxIR instruction is created.
 
void unregisterCreateInstrCallback (CallbackID ID)
 
CallbackID registerMoveInstrCallback (MoveInstrCallback CB)
 Register a callback that gets called when a SandboxIR instruction is about to be moved.
 
void unregisterMoveInstrCallback (CallbackID ID)
 

Protected Member Functions

std::unique_ptr< ValuedetachLLVMValue (llvm::Value *V)
 Remove V from the maps and returns the unique_ptr.
 
std::unique_ptr< Valuedetach (Value *V)
 Remove SBV from all SandboxIR maps and stop owning it.
 
ValueregisterValue (std::unique_ptr< Value > &&VPtr)
 Take ownership of VPtr and store it in LLVMValueToValueMap.
 
ValuegetOrCreateValueInternal (llvm::Value *V, llvm::User *U=nullptr)
 This is the actual function that creates sandboxir values for V, and among others handles all instruction types.
 
ArgumentgetOrCreateArgument (llvm::Argument *LLVMArg)
 Get or create a sandboxir::Argument for an existing LLVM IR LLVMArg.
 
ValuegetOrCreateValue (llvm::Value *LLVMV)
 Get or create a sandboxir::Value for an existing LLVM IR LLVMV.
 
ConstantgetOrCreateConstant (llvm::Constant *LLVMC)
 Get or create a sandboxir::Constant from an existing LLVM IR LLVMC.
 
void runEraseInstrCallbacks (Instruction *I)
 
void runCreateInstrCallbacks (Instruction *I)
 
void runMoveInstrCallbacks (Instruction *I, const BBIterator &Where)
 
BasicBlockcreateBasicBlock (llvm::BasicBlock *BB)
 Create a sandboxir::BasicBlock for an existing LLVM IR BB.
 
auto & getLLVMIRBuilder ()
 
VAArgInstcreateVAArgInst (llvm::VAArgInst *SI)
 
FreezeInstcreateFreezeInst (llvm::FreezeInst *SI)
 
FenceInstcreateFenceInst (llvm::FenceInst *SI)
 
SelectInstcreateSelectInst (llvm::SelectInst *SI)
 
InsertElementInstcreateInsertElementInst (llvm::InsertElementInst *IEI)
 
ExtractElementInstcreateExtractElementInst (llvm::ExtractElementInst *EEI)
 
ShuffleVectorInstcreateShuffleVectorInst (llvm::ShuffleVectorInst *SVI)
 
ExtractValueInstcreateExtractValueInst (llvm::ExtractValueInst *IVI)
 
InsertValueInstcreateInsertValueInst (llvm::InsertValueInst *IVI)
 
BranchInstcreateBranchInst (llvm::BranchInst *I)
 
LoadInstcreateLoadInst (llvm::LoadInst *LI)
 
StoreInstcreateStoreInst (llvm::StoreInst *SI)
 
ReturnInstcreateReturnInst (llvm::ReturnInst *I)
 
CallInstcreateCallInst (llvm::CallInst *I)
 
InvokeInstcreateInvokeInst (llvm::InvokeInst *I)
 
CallBrInstcreateCallBrInst (llvm::CallBrInst *I)
 
LandingPadInstcreateLandingPadInst (llvm::LandingPadInst *I)
 
CatchPadInstcreateCatchPadInst (llvm::CatchPadInst *I)
 
CleanupPadInstcreateCleanupPadInst (llvm::CleanupPadInst *I)
 
CatchReturnInstcreateCatchReturnInst (llvm::CatchReturnInst *I)
 
CleanupReturnInstcreateCleanupReturnInst (llvm::CleanupReturnInst *I)
 
GetElementPtrInstcreateGetElementPtrInst (llvm::GetElementPtrInst *I)
 
CatchSwitchInstcreateCatchSwitchInst (llvm::CatchSwitchInst *I)
 
ResumeInstcreateResumeInst (llvm::ResumeInst *I)
 
SwitchInstcreateSwitchInst (llvm::SwitchInst *I)
 
UnaryOperatorcreateUnaryOperator (llvm::UnaryOperator *I)
 
BinaryOperatorcreateBinaryOperator (llvm::BinaryOperator *I)
 
AtomicRMWInstcreateAtomicRMWInst (llvm::AtomicRMWInst *I)
 
AtomicCmpXchgInstcreateAtomicCmpXchgInst (llvm::AtomicCmpXchgInst *I)
 
AllocaInstcreateAllocaInst (llvm::AllocaInst *I)
 
CastInstcreateCastInst (llvm::CastInst *I)
 
PHINodecreatePHINode (llvm::PHINode *I)
 
UnreachableInstcreateUnreachableInst (llvm::UnreachableInst *UI)
 
CmpInstcreateCmpInst (llvm::CmpInst *I)
 
ICmpInstcreateICmpInst (llvm::ICmpInst *I)
 
FCmpInstcreateFCmpInst (llvm::FCmpInst *I)
 

Protected Attributes

LLVMContextLLVMCtx
 
Tracker IRTracker
 
DenseMap< llvm::Value *, std::unique_ptr< Value > > LLVMValueToValueMap
 Maps LLVM Value to the corresponding sandboxir::Value.
 
DenseMap< llvm::Module *, std::unique_ptr< Module > > LLVMModuleToModuleMap
 Maps an LLVM Module to the corresponding sandboxir::Module.
 
DenseMap< llvm::Type *, std::unique_ptr< Type, TypeDeleter > > LLVMTypeToTypeMap
 Maps LLVM Type to the corresonding sandboxir::Type.
 
MapVector< CallbackID, EraseInstrCallbackEraseInstrCallbacks
 Callbacks called when an IR instruction is about to get erased.
 
MapVector< CallbackID, CreateInstrCallbackCreateInstrCallbacks
 Callbacks called when an IR instruction is about to get created.
 
MapVector< CallbackID, MoveInstrCallbackMoveInstrCallbacks
 Callbacks called when an IR instruction is about to get moved.
 
CallbackID NextCallbackID = 0
 A counter used for assigning callback IDs during registration.
 
IRBuilder< ConstantFolderLLVMIRBuilder
 
friend VAArgInst
 
friend FreezeInst
 
friend FenceInst
 
friend SelectInst
 
friend InsertElementInst
 
friend ExtractElementInst
 
friend ShuffleVectorInst
 
friend ExtractValueInst
 
friend InsertValueInst
 
friend BranchInst
 
friend LoadInst
 
friend StoreInst
 
friend ReturnInst
 
friend CallInst
 
friend InvokeInst
 
friend CallBrInst
 
friend LandingPadInst
 
friend CatchPadInst
 
friend CleanupPadInst
 
friend CatchReturnInst
 
friend CleanupReturnInst
 
friend GetElementPtrInst
 
friend CatchSwitchInst
 
friend ResumeInst
 
friend SwitchInst
 
friend UnaryOperator
 
friend BinaryOperator
 
friend AtomicRMWInst
 
friend AtomicCmpXchgInst
 
friend AllocaInst
 
friend CastInst
 
friend PHINode
 
friend UnreachableInst
 
friend CmpInst
 
friend ICmpInst
 
friend FCmpInst
 

Friends

class Type
 MessagePack types as defined in the standard, with the exception of Integer being divided into a signed Int and unsigned UInt variant in order to map directly to C++ types.
 
class PointerType
 
class IntegerType
 
class StructType
 
class Region
 
class IRSnapshotChecker
 
class Instruction
 
class EraseFromParent
 
class Utils
 
class BasicBlock
 Various leaf nodes.
 

Detailed Description

Definition at line 29 of file Context.h.

Member Typedef Documentation

◆ CallbackID

An ID for a registered callback.

Used for deregistration. Using a 64-bit integer so we don't have to worry about the unlikely case of overflowing a 32-bit counter.

Definition at line 43 of file Context.h.

◆ CreateInstrCallback

Definition at line 34 of file Context.h.

◆ EraseInstrCallback

Definition at line 32 of file Context.h.

◆ MoveInstrCallback

Definition at line 37 of file Context.h.

Constructor & Destructor Documentation

◆ Context()

llvm::sandboxir::Context::Context ( LLVMContext LLVMCtx)

Definition at line 608 of file Context.cpp.

◆ ~Context()

llvm::sandboxir::Context::~Context ( )

Definition at line 612 of file Context.cpp.

Member Function Documentation

◆ accept()

void llvm::sandboxir::Context::accept ( )
inline

Convenience function for getTracker().accept()

Definition at line 209 of file Context.h.

References llvm::sandboxir::Tracker::accept(), and IRTracker.

◆ createAllocaInst()

AllocaInst * llvm::sandboxir::Context::createAllocaInst ( llvm::AllocaInst I)
protected

Definition at line 581 of file Context.cpp.

References AllocaInst, I, and registerValue().

Referenced by llvm::sandboxir::AllocaInst::create().

◆ createAtomicCmpXchgInst()

AtomicCmpXchgInst * llvm::sandboxir::Context::createAtomicCmpXchgInst ( llvm::AtomicCmpXchgInst I)
protected

Definition at line 576 of file Context.cpp.

References AtomicCmpXchgInst, I, and registerValue().

◆ createAtomicRMWInst()

AtomicRMWInst * llvm::sandboxir::Context::createAtomicRMWInst ( llvm::AtomicRMWInst I)
protected

Definition at line 571 of file Context.cpp.

References AtomicRMWInst, I, and registerValue().

Referenced by llvm::sandboxir::AtomicRMWInst::create().

◆ createBasicBlock()

BasicBlock * llvm::sandboxir::Context::createBasicBlock ( llvm::BasicBlock BB)
protected

Create a sandboxir::BasicBlock for an existing LLVM IR BB.

This will also create all contents of the block.

Definition at line 421 of file Context.cpp.

References assert(), BasicBlock, getValue(), and registerValue().

Referenced by createFunction().

◆ createBinaryOperator()

BinaryOperator * llvm::sandboxir::Context::createBinaryOperator ( llvm::BinaryOperator I)
protected

Definition at line 567 of file Context.cpp.

References BinaryOperator, I, and registerValue().

Referenced by llvm::sandboxir::BinaryOperator::create().

◆ createBranchInst()

BranchInst * llvm::sandboxir::Context::createBranchInst ( llvm::BranchInst I)
protected

Definition at line 483 of file Context.cpp.

References BranchInst, and registerValue().

Referenced by llvm::sandboxir::BranchInst::create().

◆ createCallBrInst()

CallBrInst * llvm::sandboxir::Context::createCallBrInst ( llvm::CallBrInst I)
protected

Definition at line 513 of file Context.cpp.

References CallBrInst, I, and registerValue().

◆ createCallInst()

CallInst * llvm::sandboxir::Context::createCallInst ( llvm::CallInst I)
protected

Definition at line 503 of file Context.cpp.

References CallInst, I, and registerValue().

◆ createCastInst()

CastInst * llvm::sandboxir::Context::createCastInst ( llvm::CastInst I)
protected

Definition at line 585 of file Context.cpp.

References CastInst, I, and registerValue().

Referenced by llvm::sandboxir::CastInst::create().

◆ createCatchPadInst()

CatchPadInst * llvm::sandboxir::Context::createCatchPadInst ( llvm::CatchPadInst I)
protected

Definition at line 527 of file Context.cpp.

References CatchPadInst, I, and registerValue().

Referenced by llvm::sandboxir::CatchPadInst::create().

◆ createCatchReturnInst()

CatchReturnInst * llvm::sandboxir::Context::createCatchReturnInst ( llvm::CatchReturnInst I)
protected

Definition at line 535 of file Context.cpp.

References CatchReturnInst, I, and registerValue().

◆ createCatchSwitchInst()

CatchSwitchInst * llvm::sandboxir::Context::createCatchSwitchInst ( llvm::CatchSwitchInst I)
protected

Definition at line 551 of file Context.cpp.

References CatchSwitchInst, I, and registerValue().

◆ createCleanupPadInst()

CleanupPadInst * llvm::sandboxir::Context::createCleanupPadInst ( llvm::CleanupPadInst I)
protected

Definition at line 531 of file Context.cpp.

References CleanupPadInst, I, and registerValue().

Referenced by llvm::sandboxir::CleanupPadInst::create().

◆ createCleanupReturnInst()

CleanupReturnInst * llvm::sandboxir::Context::createCleanupReturnInst ( llvm::CleanupReturnInst I)
protected

Definition at line 540 of file Context.cpp.

References CleanupReturnInst, I, and registerValue().

Referenced by llvm::sandboxir::CleanupReturnInst::create().

◆ createCmpInst()

CmpInst * llvm::sandboxir::Context::createCmpInst ( llvm::CmpInst I)
protected

◆ createExtractElementInst()

ExtractElementInst * llvm::sandboxir::Context::createExtractElementInst ( llvm::ExtractElementInst EEI)
protected

Definition at line 451 of file Context.cpp.

References ExtractElementInst, and registerValue().

Referenced by llvm::sandboxir::ExtractElementInst::create().

◆ createExtractValueInst()

ExtractValueInst * llvm::sandboxir::Context::createExtractValueInst ( llvm::ExtractValueInst IVI)
protected

Definition at line 471 of file Context.cpp.

References ExtractValueInst, and registerValue().

Referenced by llvm::sandboxir::ExtractValueInst::create().

◆ createFCmpInst()

FCmpInst * llvm::sandboxir::Context::createFCmpInst ( llvm::FCmpInst I)
protected

Definition at line 597 of file Context.cpp.

References FCmpInst, I, and registerValue().

Referenced by llvm::sandboxir::CmpInst::create().

◆ createFenceInst()

FenceInst * llvm::sandboxir::Context::createFenceInst ( llvm::FenceInst SI)
protected

Definition at line 440 of file Context.cpp.

References FenceInst, and registerValue().

◆ createFreezeInst()

FreezeInst * llvm::sandboxir::Context::createFreezeInst ( llvm::FreezeInst SI)
protected

Definition at line 435 of file Context.cpp.

References FreezeInst, and registerValue().

Referenced by llvm::sandboxir::FreezeInst::create().

◆ createFunction()

Function * llvm::sandboxir::Context::createFunction ( llvm::Function F)

Create a sandboxir::Function for an existing LLVM IR F, including all blocks and instructions.

This is the main API function for creating Sandbox IR. Note: this will not fully populate its parent module. The only globals that will be available are those used within the function.

Definition at line 630 of file Context.cpp.

References assert(), createBasicBlock(), F, getOrCreateArgument(), getOrCreateModule(), getValue(), and registerValue().

Referenced by createModule().

◆ createGetElementPtrInst()

GetElementPtrInst * llvm::sandboxir::Context::createGetElementPtrInst ( llvm::GetElementPtrInst I)
protected

Definition at line 546 of file Context.cpp.

References GetElementPtrInst, I, and registerValue().

Referenced by llvm::sandboxir::GetElementPtrInst::create().

◆ createICmpInst()

ICmpInst * llvm::sandboxir::Context::createICmpInst ( llvm::ICmpInst I)
protected

Definition at line 593 of file Context.cpp.

References I, ICmpInst, and registerValue().

Referenced by llvm::sandboxir::CmpInst::create().

◆ createInsertElementInst()

InsertElementInst * llvm::sandboxir::Context::createInsertElementInst ( llvm::InsertElementInst IEI)
protected

Definition at line 458 of file Context.cpp.

References InsertElementInst, and registerValue().

Referenced by llvm::sandboxir::InsertElementInst::create().

◆ createInsertValueInst()

InsertValueInst * llvm::sandboxir::Context::createInsertValueInst ( llvm::InsertValueInst IVI)
protected

Definition at line 477 of file Context.cpp.

References InsertValueInst, and registerValue().

Referenced by llvm::sandboxir::InsertValueInst::create().

◆ createInvokeInst()

InvokeInst * llvm::sandboxir::Context::createInvokeInst ( llvm::InvokeInst I)
protected

Definition at line 508 of file Context.cpp.

References I, InvokeInst, and registerValue().

◆ createLandingPadInst()

LandingPadInst * llvm::sandboxir::Context::createLandingPadInst ( llvm::LandingPadInst I)
protected

Definition at line 523 of file Context.cpp.

References I, LandingPadInst, and registerValue().

Referenced by llvm::sandboxir::LandingPadInst::create().

◆ createLoadInst()

LoadInst * llvm::sandboxir::Context::createLoadInst ( llvm::LoadInst LI)
protected

Definition at line 488 of file Context.cpp.

References LoadInst, and registerValue().

◆ createModule()

Module * llvm::sandboxir::Context::createModule ( llvm::Module LLVMM)

◆ createPHINode()

PHINode * llvm::sandboxir::Context::createPHINode ( llvm::PHINode I)
protected

Definition at line 589 of file Context.cpp.

References I, PHINode, and registerValue().

Referenced by llvm::sandboxir::PHINode::create().

◆ createResumeInst()

ResumeInst * llvm::sandboxir::Context::createResumeInst ( llvm::ResumeInst I)
protected

Definition at line 555 of file Context.cpp.

References I, registerValue(), and ResumeInst.

Referenced by llvm::sandboxir::ResumeInst::create().

◆ createReturnInst()

ReturnInst * llvm::sandboxir::Context::createReturnInst ( llvm::ReturnInst I)
protected

Definition at line 498 of file Context.cpp.

References I, registerValue(), and ReturnInst.

◆ createSelectInst()

SelectInst * llvm::sandboxir::Context::createSelectInst ( llvm::SelectInst SI)
protected

Definition at line 445 of file Context.cpp.

References registerValue(), and SelectInst.

Referenced by llvm::sandboxir::SelectInst::create().

◆ createShuffleVectorInst()

ShuffleVectorInst * llvm::sandboxir::Context::createShuffleVectorInst ( llvm::ShuffleVectorInst SVI)
protected

Definition at line 465 of file Context.cpp.

References registerValue(), and ShuffleVectorInst.

Referenced by llvm::sandboxir::ShuffleVectorInst::create().

◆ createStoreInst()

StoreInst * llvm::sandboxir::Context::createStoreInst ( llvm::StoreInst SI)
protected

Definition at line 493 of file Context.cpp.

References registerValue(), and StoreInst.

Referenced by llvm::sandboxir::StoreInst::create().

◆ createSwitchInst()

SwitchInst * llvm::sandboxir::Context::createSwitchInst ( llvm::SwitchInst I)
protected

Definition at line 559 of file Context.cpp.

References I, registerValue(), and SwitchInst.

Referenced by llvm::sandboxir::SwitchInst::create().

◆ createUnaryOperator()

UnaryOperator * llvm::sandboxir::Context::createUnaryOperator ( llvm::UnaryOperator I)
protected

Definition at line 563 of file Context.cpp.

References I, registerValue(), and UnaryOperator.

Referenced by llvm::sandboxir::UnaryOperator::create().

◆ createUnreachableInst()

UnreachableInst * llvm::sandboxir::Context::createUnreachableInst ( llvm::UnreachableInst UI)
protected

Definition at line 518 of file Context.cpp.

References registerValue(), and UnreachableInst.

Referenced by llvm::sandboxir::UnreachableInst::create().

◆ createVAArgInst()

VAArgInst * llvm::sandboxir::Context::createVAArgInst ( llvm::VAArgInst SI)
protected

Definition at line 430 of file Context.cpp.

References registerValue(), and VAArgInst.

Referenced by llvm::sandboxir::VAArgInst::create().

◆ detach()

std::unique_ptr< Value > llvm::sandboxir::Context::detach ( Value V)
protected

Remove SBV from all SandboxIR maps and stop owning it.

This effectively detaches V from the underlying IR.

Definition at line 27 of file Context.cpp.

References assert(), and detachLLVMValue().

◆ detachLLVMValue()

std::unique_ptr< Value > llvm::sandboxir::Context::detachLLVMValue ( llvm::Value V)
protected

Remove V from the maps and returns the unique_ptr.

Definition at line 16 of file Context.cpp.

References LLVMValueToValueMap.

Referenced by detach().

◆ getLLVMIRBuilder()

auto & llvm::sandboxir::Context::getLLVMIRBuilder ( )
inlineprotected

Definition at line 124 of file Context.h.

References LLVMIRBuilder.

Referenced by llvm::sandboxir::Instruction::setInsertPos().

◆ getModule()

Module * llvm::sandboxir::Context::getModule ( llvm::Module LLVMM) const

Definition at line 614 of file Context.cpp.

References LLVMModuleToModuleMap.

Referenced by llvm::sandboxir::Function::getParent().

◆ getNumValues()

size_t llvm::sandboxir::Context::getNumValues ( ) const
inline

\Returns the number of values registered with Context.

Definition at line 241 of file Context.h.

References LLVMValueToValueMap.

Referenced by llvm::sandboxir::Value::Value().

◆ getOrCreateArgument()

Argument * llvm::sandboxir::Context::getOrCreateArgument ( llvm::Argument LLVMArg)
protected

Get or create a sandboxir::Argument for an existing LLVM IR LLVMArg.

Definition at line 407 of file Context.cpp.

References LLVMValueToValueMap.

Referenced by createFunction().

◆ getOrCreateConstant()

Constant * llvm::sandboxir::Context::getOrCreateConstant ( llvm::Constant LLVMC)
protected

Get or create a sandboxir::Constant from an existing LLVM IR LLVMC.

Definition at line 417 of file Context.cpp.

References getOrCreateValueInternal().

Referenced by llvm::sandboxir::ShuffleVectorInst::convertShuffleMaskForBitcode(), llvm::sandboxir::CastInst::create(), llvm::sandboxir::ExtractValueInst::create(), llvm::sandboxir::InsertValueInst::create(), llvm::sandboxir::SelectInst::create(), llvm::sandboxir::ShuffleVectorInst::create(), llvm::sandboxir::ExtractElementInst::create(), llvm::sandboxir::InsertElementInst::create(), llvm::sandboxir::ConstantArray::get(), llvm::sandboxir::BlockAddress::get(), llvm::sandboxir::ConstantTokenNone::get(), llvm::sandboxir::NoCFIValue::get(), llvm::sandboxir::ConstantPointerNull::get(), llvm::sandboxir::ConstantStruct::get(), llvm::sandboxir::ConstantAggregateZero::get(), llvm::sandboxir::ConstantFP::get(), llvm::sandboxir::ConstantInt::get(), llvm::sandboxir::ConstantPtrAuth::getAddrDiscriminator(), llvm::sandboxir::GlobalAlias::getAliasee(), llvm::sandboxir::GlobalAlias::getAliaseeObject(), llvm::sandboxir::ConstantInt::getBool(), llvm::sandboxir::ConstantPtrAuth::getDiscriminator(), llvm::sandboxir::UndefValue::getElementValue(), llvm::sandboxir::PoisonValue::getElementValue(), llvm::sandboxir::ConstantInt::getFalse(), llvm::sandboxir::NoCFIValue::getGlobalValue(), llvm::sandboxir::ConstantFP::getInfinity(), llvm::sandboxir::GlobalVariable::getInitializer(), llvm::sandboxir::ConstantPtrAuth::getKey(), llvm::sandboxir::ConstantFP::getNaN(), llvm::sandboxir::ConstantFP::getNegativeZero(), llvm::sandboxir::ConstantPtrAuth::getPointer(), llvm::sandboxir::ConstantFP::getQNaN(), llvm::sandboxir::GlobalIFunc::getResolver(), llvm::sandboxir::GlobalIFunc::getResolverFunction(), llvm::sandboxir::UndefValue::getSequentialElement(), llvm::sandboxir::PoisonValue::getSequentialElement(), llvm::sandboxir::ShuffleVectorInst::getShuffleMaskForBitcode(), llvm::sandboxir::ConstantInt::getSigned(), llvm::sandboxir::ConstantFP::getSNaN(), llvm::sandboxir::UndefValue::getStructElement(), llvm::sandboxir::PoisonValue::getStructElement(), llvm::sandboxir::ConstantInt::getTrue(), llvm::sandboxir::ConstantPtrAuth::getWithSameSchema(), and llvm::sandboxir::ConstantFP::getZero().

◆ getOrCreateModule()

Module * llvm::sandboxir::Context::getOrCreateModule ( llvm::Module LLVMM)

Definition at line 621 of file Context.cpp.

References LLVMModuleToModuleMap.

Referenced by createFunction(), and createModule().

◆ getOrCreateValue()

Value * llvm::sandboxir::Context::getOrCreateValue ( llvm::Value LLVMV)
inlineprotected

Get or create a sandboxir::Value for an existing LLVM IR LLVMV.

Definition at line 103 of file Context.h.

References getOrCreateValueInternal().

Referenced by llvm::BasicBlock::createMarker(), createModule(), and llvm::sandboxir::Utils::getMemInstructionBase().

◆ getOrCreateValueInternal()

Value * llvm::sandboxir::Context::getOrCreateValueInternal ( llvm::Value V,
llvm::User U = nullptr 
)
protected

◆ getTracker()

Tracker & llvm::sandboxir::Context::getTracker ( )
inline

Definition at line 203 of file Context.h.

References IRTracker.

Referenced by llvm::sandboxir::SwitchInst::addCase(), llvm::sandboxir::CatchSwitchInst::addHandler(), llvm::sandboxir::PHINode::addIncoming(), llvm::Instruction::cloneDebugInfoFrom(), llvm::sandboxir::ShuffleVectorInst::commute(), llvm::sandboxir::Instruction::copyFastMathFlags(), llvm::Instruction::dropOneDbgRecord(), llvm::Instruction::getAccessType(), llvm::Instruction::getModule(), llvm::sandboxir::Instruction::insertInto(), registerValue(), llvm::sandboxir::SwitchInst::removeCase(), llvm::sandboxir::PHINode::removeIncomingValue(), llvm::sandboxir::Value::replaceAllUsesWith(), llvm::Instruction::replaceSuccessorWith(), llvm::sandboxir::Use::set(), llvm::sandboxir::GlobalAlias::setAliasee(), llvm::sandboxir::AtomicRMWInst::setAlignment(), llvm::sandboxir::AtomicCmpXchgInst::setAlignment(), llvm::sandboxir::AllocaInst::setAlignment(), llvm::sandboxir::GlobalObject::setAlignment(), llvm::sandboxir::AllocaInst::setAllocatedType(), llvm::sandboxir::FuncletPadInst::setArgOperand(), llvm::sandboxir::CatchReturnInst::setCatchPad(), llvm::sandboxir::LandingPadInst::setCleanup(), llvm::sandboxir::CleanupReturnInst::setCleanupPad(), llvm::sandboxir::SwitchInst::setCondition(), llvm::sandboxir::GlobalVariable::setConstant(), llvm::sandboxir::CallBrInst::setDefaultDest(), llvm::sandboxir::SwitchInst::setDefaultDest(), llvm::sandboxir::GlobalVariable::setExternallyInitialized(), llvm::sandboxir::AtomicCmpXchgInst::setFailureOrdering(), llvm::sandboxir::Instruction::setFast(), llvm::sandboxir::Instruction::setFastMathFlags(), llvm::sandboxir::GlobalObject::setGlobalObjectSubClassData(), llvm::sandboxir::Instruction::setHasAllowContract(), llvm::sandboxir::Instruction::setHasAllowReassoc(), llvm::sandboxir::Instruction::setHasAllowReciprocal(), llvm::sandboxir::Instruction::setHasApproxFunc(), llvm::sandboxir::Instruction::setHasNoInfs(), llvm::sandboxir::Instruction::setHasNoNaNs(), llvm::sandboxir::Instruction::setHasNoSignedWrap(), llvm::sandboxir::Instruction::setHasNoUnsignedWrap(), llvm::sandboxir::PHINode::setIncomingBlock(), llvm::sandboxir::PHINode::setIncomingValue(), llvm::sandboxir::CallBrInst::setIndirectDest(), llvm::sandboxir::GlobalVariable::setInitializer(), llvm::sandboxir::PossiblyDisjointInst::setIsDisjoint(), llvm::sandboxir::Instruction::setIsExact(), llvm::sandboxir::PossiblyNonNegInst::setNonNeg(), llvm::sandboxir::User::setOperand(), llvm::sandboxir::AtomicRMWInst::setOrdering(), llvm::sandboxir::FuncletPadInst::setParentPad(), llvm::sandboxir::CatchSwitchInst::setParentPad(), llvm::sandboxir::CmpInst::setPredicate(), llvm::sandboxir::GlobalIFunc::setResolver(), llvm::sandboxir::GlobalObject::setSection(), llvm::sandboxir::ShuffleVectorInst::setShuffleMask(), llvm::sandboxir::CatchReturnInst::setSuccessor(), llvm::sandboxir::SwitchInst::setSuccessor(), llvm::sandboxir::AtomicCmpXchgInst::setSuccessOrdering(), llvm::sandboxir::FenceInst::setSyncScopeID(), llvm::sandboxir::AtomicCmpXchgInst::setSyncScopeID(), llvm::sandboxir::GlobalValue::setUnnamedAddr(), llvm::sandboxir::CleanupReturnInst::setUnwindDest(), llvm::sandboxir::AllocaInst::setUsedWithInAlloca(), llvm::sandboxir::GlobalValue::setVisibility(), llvm::sandboxir::LoadInst::setVolatile(), llvm::sandboxir::StoreInst::setVolatile(), llvm::sandboxir::AtomicRMWInst::setVolatile(), llvm::sandboxir::AtomicCmpXchgInst::setVolatile(), llvm::sandboxir::AtomicCmpXchgInst::setWeak(), llvm::sandboxir::Use::swap(), llvm::sandboxir::ICmpInst::swapOperands(), llvm::sandboxir::FCmpInst::swapOperands(), llvm::sandboxir::SelectInst::swapValues(), and llvm::Value::Value().

◆ getType()

Type * llvm::sandboxir::Context::getType ( llvm::Type LLVMTy)
inline

◆ getValue() [1/2]

const sandboxir::Value * llvm::sandboxir::Context::getValue ( const llvm::Value V) const
inline

Definition at line 212 of file Context.h.

References getValue().

◆ getValue() [2/2]

Value * llvm::sandboxir::Context::getValue ( llvm::Value V) const

Definition at line 601 of file Context.cpp.

References LLVMValueToValueMap.

Referenced by llvm::sandboxir::BasicBlock::begin(), llvm::Instruction::copyMetadata(), createBasicBlock(), createFunction(), llvm::sandboxir::BasicBlock::dumpOS(), llvm::sandboxir::Function::dumpOS(), llvm::sandboxir::Use::get(), llvm::sandboxir::DSOLocalEquivalent::get(), llvm::sandboxir::Function::getArg(), llvm::sandboxir::AllocaInst::getArraySize(), llvm::sandboxir::BlockAddress::getBasicBlock(), llvm::sandboxir::CallBase::getCalledFunction(), llvm::sandboxir::CallBase::getCalledOperand(), llvm::sandboxir::CallBase::getCaller(), llvm::sandboxir::CatchReturnInst::getCatchPad(), llvm::sandboxir::CatchPadInst::getCatchSwitch(), llvm::sandboxir::CatchReturnInst::getCatchSwitchParentPad(), llvm::sandboxir::LandingPadInst::getClause(), llvm::sandboxir::CleanupReturnInst::getCleanupPad(), llvm::sandboxir::AtomicCmpXchgInst::getCompareOperand(), llvm::sandboxir::BranchInst::getCondition(), llvm::sandboxir::SwitchInst::getCondition(), llvm::sandboxir::CallBrInst::getDefaultDest(), llvm::sandboxir::SwitchInst::getDefaultDest(), llvm::sandboxir::ConstantAggregateZero::getElementValue(), llvm::sandboxir::BlockAddress::getFunction(), llvm::sandboxir::DSOLocalEquivalent::getGlobalValue(), llvm::sandboxir::PHINode::getIncomingBlock(), llvm::sandboxir::PHINode::getIncomingValue(), llvm::sandboxir::PHINode::getIncomingValueForBlock(), llvm::sandboxir::CallBrInst::getIndirectDest(), llvm::sandboxir::CallBrInst::getIndirectDestLabelUse(), llvm::sandboxir::InvokeInst::getLandingPadInst(), llvm::sandboxir::AtomicCmpXchgInst::getNewValOperand(), llvm::sandboxir::BBIterator::getNodeParent(), llvm::sandboxir::InvokeInst::getNormalDest(), getOrCreateValueInternal(), llvm::sandboxir::BasicBlock::getParent(), llvm::sandboxir::FuncletPadInst::getParentPad(), llvm::sandboxir::CatchSwitchInst::getParentPad(), llvm::sandboxir::VAArgInst::getPointerOperand(), llvm::sandboxir::AtomicRMWInst::getPointerOperand(), llvm::sandboxir::LoadInst::getPointerOperand(), llvm::sandboxir::StoreInst::getPointerOperand(), llvm::sandboxir::GetElementPtrInst::getPointerOperand(), llvm::sandboxir::ReturnInst::getReturnValue(), llvm::sandboxir::ConstantAggregateZero::getSequentialElement(), llvm::sandboxir::ConstantAggregateZero::getStructElement(), llvm::sandboxir::CatchReturnInst::getSuccessor(), llvm::sandboxir::CallBrInst::getSuccessor(), llvm::sandboxir::SwitchInst::getSuccessor(), llvm::sandboxir::InvokeInst::getSuccessor(), llvm::sandboxir::BasicBlock::getTerminator(), llvm::sandboxir::CleanupReturnInst::getUnwindDest(), llvm::sandboxir::CatchSwitchInst::getUnwindDest(), llvm::sandboxir::AtomicRMWInst::getValOperand(), llvm::sandboxir::ResumeInst::getValue(), getValue(), llvm::sandboxir::StoreInst::getValueOperand(), llvm::sandboxir::PHINode::hasConstantValue(), llvm::sandboxir::BlockAddress::lookup(), llvm::sandboxir::BBIterator::operator++(), llvm::sandboxir::PHINode::removeIncomingValue(), llvm::sandboxir::Value::use_begin(), llvm::Value::Value(), and llvm::sandboxir::User::verifyUserOfLLVMUse().

◆ registerCreateInstrCallback()

Context::CallbackID llvm::sandboxir::Context::registerCreateInstrCallback ( CreateInstrCallback  CB)

Register a callback that gets called right after a SandboxIR instruction is created.

Note that this will also be called when reverting the removal of an instruction. \Returns a callback ID for later deregistration.

Definition at line 700 of file Context.cpp.

References assert(), CreateInstrCallbacks, llvm::sandboxir::MaxRegisteredCallbacks, and NextCallbackID.

Referenced by llvm::sandboxir::DependencyGraph::DependencyGraph(), and llvm::sandboxir::Region::Region().

◆ registerEraseInstrCallback()

Context::CallbackID llvm::sandboxir::Context::registerEraseInstrCallback ( EraseInstrCallback  CB)

Register a callback that gets called when a SandboxIR instruction is about to be removed from its parent.

Note that this will also be called when reverting the creation of an instruction. \Returns a callback ID for later deregistration.

Definition at line 686 of file Context.cpp.

References assert(), EraseInstrCallbacks, llvm::sandboxir::MaxRegisteredCallbacks, and NextCallbackID.

Referenced by llvm::sandboxir::DependencyGraph::DependencyGraph(), llvm::sandboxir::Region::Region(), and llvm::sandboxir::SeedCollector::SeedCollector().

◆ registerMoveInstrCallback()

Context::CallbackID llvm::sandboxir::Context::registerMoveInstrCallback ( MoveInstrCallback  CB)

Register a callback that gets called when a SandboxIR instruction is about to be moved.

Note that this will also be called when reverting a move. \Returns a callback ID for later deregistration.

Definition at line 713 of file Context.cpp.

References assert(), llvm::sandboxir::MaxRegisteredCallbacks, MoveInstrCallbacks, and NextCallbackID.

◆ registerValue()

Value * llvm::sandboxir::Context::registerValue ( std::unique_ptr< Value > &&  VPtr)
protected

◆ revert()

void llvm::sandboxir::Context::revert ( )
inline

Convenience function for getTracker().revert()

Definition at line 207 of file Context.h.

References IRTracker, and llvm::sandboxir::Tracker::revert().

◆ runCreateInstrCallbacks()

void llvm::sandboxir::Context::runCreateInstrCallbacks ( Instruction I)
protected

Definition at line 671 of file Context.cpp.

References CreateInstrCallbacks, and I.

Referenced by registerValue().

◆ runEraseInstrCallbacks()

void llvm::sandboxir::Context::runEraseInstrCallbacks ( Instruction I)
protected

Definition at line 666 of file Context.cpp.

References EraseInstrCallbacks, and I.

Referenced by llvm::sandboxir::Instruction::eraseFromParent().

◆ runMoveInstrCallbacks()

void llvm::sandboxir::Context::runMoveInstrCallbacks ( Instruction I,
const BBIterator Where 
)
protected

Definition at line 676 of file Context.cpp.

References I, and MoveInstrCallbacks.

◆ save()

void llvm::sandboxir::Context::save ( )
inline

Convenience function for getTracker().save()

Definition at line 205 of file Context.h.

References IRTracker, and llvm::sandboxir::Tracker::save().

◆ unregisterCreateInstrCallback()

void llvm::sandboxir::Context::unregisterCreateInstrCallback ( CallbackID  ID)

◆ unregisterEraseInstrCallback()

void llvm::sandboxir::Context::unregisterEraseInstrCallback ( CallbackID  ID)

◆ unregisterMoveInstrCallback()

void llvm::sandboxir::Context::unregisterMoveInstrCallback ( CallbackID  ID)

Definition at line 720 of file Context.cpp.

References assert(), and MoveInstrCallbacks.

Friends And Related Function Documentation

◆ BasicBlock

friend class BasicBlock
friend

Various leaf nodes.

Definition at line 121 of file Context.h.

Referenced by createBasicBlock().

◆ EraseFromParent

friend class EraseFromParent
friend

Definition at line 96 of file Context.h.

◆ Instruction

friend class Instruction
friend

Definition at line 93 of file Context.h.

◆ IntegerType

friend class IntegerType
friend

Definition at line 49 of file Context.h.

◆ IRSnapshotChecker

friend class IRSnapshotChecker
friend

Definition at line 52 of file Context.h.

◆ PointerType

friend class PointerType
friend

Definition at line 48 of file Context.h.

◆ Region

friend class Region
friend

Definition at line 51 of file Context.h.

◆ StructType

friend class StructType
friend

Definition at line 50 of file Context.h.

◆ Type

friend class Type
friend

MessagePack types as defined in the standard, with the exception of Integer being divided into a signed Int and unsigned UInt variant in order to map directly to C++ types.

The types map onto corresponding union members of the Object struct.

Definition at line 47 of file Context.h.

Referenced by getType().

◆ Utils

friend class Utils
friend

Definition at line 108 of file Context.h.

Member Data Documentation

◆ AllocaInst

friend llvm::sandboxir::Context::AllocaInst
protected

Definition at line 185 of file Context.h.

Referenced by createAllocaInst(), and getOrCreateValueInternal().

◆ AtomicCmpXchgInst

friend llvm::sandboxir::Context::AtomicCmpXchgInst
protected

Definition at line 183 of file Context.h.

Referenced by createAtomicCmpXchgInst(), and getOrCreateValueInternal().

◆ AtomicRMWInst

friend llvm::sandboxir::Context::AtomicRMWInst
protected

Definition at line 181 of file Context.h.

Referenced by createAtomicRMWInst(), and getOrCreateValueInternal().

◆ BinaryOperator

friend llvm::sandboxir::Context::BinaryOperator
protected

Definition at line 179 of file Context.h.

Referenced by createBinaryOperator(), and getOrCreateValueInternal().

◆ BranchInst

friend llvm::sandboxir::Context::BranchInst
protected

Definition at line 145 of file Context.h.

Referenced by createBranchInst(), and getOrCreateValueInternal().

◆ CallBrInst

friend llvm::sandboxir::Context::CallBrInst
protected

Definition at line 157 of file Context.h.

Referenced by createCallBrInst(), and getOrCreateValueInternal().

◆ CallInst

friend llvm::sandboxir::Context::CallInst
protected

Definition at line 153 of file Context.h.

Referenced by createCallInst(), and getOrCreateValueInternal().

◆ CastInst

friend llvm::sandboxir::Context::CastInst
protected

Definition at line 187 of file Context.h.

Referenced by createCastInst(), and getOrCreateValueInternal().

◆ CatchPadInst

friend llvm::sandboxir::Context::CatchPadInst
protected

Definition at line 161 of file Context.h.

Referenced by createCatchPadInst(), and getOrCreateValueInternal().

◆ CatchReturnInst

friend llvm::sandboxir::Context::CatchReturnInst
protected

Definition at line 165 of file Context.h.

Referenced by createCatchReturnInst(), and getOrCreateValueInternal().

◆ CatchSwitchInst

friend llvm::sandboxir::Context::CatchSwitchInst
protected

Definition at line 171 of file Context.h.

Referenced by createCatchSwitchInst(), and getOrCreateValueInternal().

◆ CleanupPadInst

friend llvm::sandboxir::Context::CleanupPadInst
protected

Definition at line 163 of file Context.h.

Referenced by createCleanupPadInst(), and getOrCreateValueInternal().

◆ CleanupReturnInst

friend llvm::sandboxir::Context::CleanupReturnInst
protected

Definition at line 167 of file Context.h.

Referenced by createCleanupReturnInst(), and getOrCreateValueInternal().

◆ CmpInst

friend llvm::sandboxir::Context::CmpInst
protected

Definition at line 193 of file Context.h.

◆ CreateInstrCallbacks

MapVector<CallbackID, CreateInstrCallback> llvm::sandboxir::Context::CreateInstrCallbacks
protected

Callbacks called when an IR instruction is about to get created.

Keys are used as IDs for deregistration.

Definition at line 78 of file Context.h.

Referenced by registerCreateInstrCallback(), runCreateInstrCallbacks(), and unregisterCreateInstrCallback().

◆ EraseInstrCallbacks

MapVector<CallbackID, EraseInstrCallback> llvm::sandboxir::Context::EraseInstrCallbacks
protected

Callbacks called when an IR instruction is about to get erased.

Keys are used as IDs for deregistration.

Definition at line 75 of file Context.h.

Referenced by registerEraseInstrCallback(), runEraseInstrCallbacks(), and unregisterEraseInstrCallback().

◆ ExtractElementInst

friend llvm::sandboxir::Context::ExtractElementInst
protected

Definition at line 137 of file Context.h.

Referenced by createExtractElementInst(), and getOrCreateValueInternal().

◆ ExtractValueInst

friend llvm::sandboxir::Context::ExtractValueInst
protected

Definition at line 141 of file Context.h.

Referenced by createExtractValueInst(), and getOrCreateValueInternal().

◆ FCmpInst

friend llvm::sandboxir::Context::FCmpInst
protected

Definition at line 197 of file Context.h.

Referenced by createFCmpInst(), and getOrCreateValueInternal().

◆ FenceInst

friend llvm::sandboxir::Context::FenceInst
protected

Definition at line 131 of file Context.h.

Referenced by createFenceInst(), and getOrCreateValueInternal().

◆ FreezeInst

friend llvm::sandboxir::Context::FreezeInst
protected

Definition at line 129 of file Context.h.

Referenced by createFreezeInst(), and getOrCreateValueInternal().

◆ GetElementPtrInst

friend llvm::sandboxir::Context::GetElementPtrInst
protected

Definition at line 169 of file Context.h.

Referenced by createGetElementPtrInst(), and getOrCreateValueInternal().

◆ ICmpInst

friend llvm::sandboxir::Context::ICmpInst
protected

Definition at line 195 of file Context.h.

Referenced by createICmpInst(), and getOrCreateValueInternal().

◆ InsertElementInst

friend llvm::sandboxir::Context::InsertElementInst
protected

Definition at line 135 of file Context.h.

Referenced by createInsertElementInst(), and getOrCreateValueInternal().

◆ InsertValueInst

friend llvm::sandboxir::Context::InsertValueInst
protected

Definition at line 143 of file Context.h.

Referenced by createInsertValueInst(), and getOrCreateValueInternal().

◆ InvokeInst

friend llvm::sandboxir::Context::InvokeInst
protected

Definition at line 155 of file Context.h.

Referenced by createInvokeInst(), and getOrCreateValueInternal().

◆ IRTracker

Tracker llvm::sandboxir::Context::IRTracker
protected

Definition at line 54 of file Context.h.

Referenced by accept(), getTracker(), revert(), and save().

◆ LandingPadInst

friend llvm::sandboxir::Context::LandingPadInst
protected

Definition at line 159 of file Context.h.

Referenced by createLandingPadInst(), and getOrCreateValueInternal().

◆ LLVMCtx

LLVMContext& llvm::sandboxir::Context::LLVMCtx
protected

◆ LLVMIRBuilder

IRBuilder<ConstantFolder> llvm::sandboxir::Context::LLVMIRBuilder
protected

Definition at line 123 of file Context.h.

Referenced by getLLVMIRBuilder().

◆ LLVMModuleToModuleMap

DenseMap<llvm::Module *, std::unique_ptr<Module> > llvm::sandboxir::Context::LLVMModuleToModuleMap
protected

Maps an LLVM Module to the corresponding sandboxir::Module.

Definition at line 61 of file Context.h.

Referenced by getModule(), and getOrCreateModule().

◆ LLVMTypeToTypeMap

DenseMap<llvm::Type *, std::unique_ptr<Type, TypeDeleter> > llvm::sandboxir::Context::LLVMTypeToTypeMap
protected

Maps LLVM Type to the corresonding sandboxir::Type.

Owns all Sandbox IR Type objects.

Definition at line 71 of file Context.h.

Referenced by getType().

◆ LLVMValueToValueMap

DenseMap<llvm::Value *, std::unique_ptr<Value> > llvm::sandboxir::Context::LLVMValueToValueMap
protected

Maps LLVM Value to the corresponding sandboxir::Value.

Owns all SandboxIR objects.

Definition at line 58 of file Context.h.

Referenced by detachLLVMValue(), getNumValues(), getOrCreateArgument(), getOrCreateValueInternal(), getValue(), and registerValue().

◆ LoadInst

friend llvm::sandboxir::Context::LoadInst
protected

Definition at line 147 of file Context.h.

Referenced by createLoadInst(), and getOrCreateValueInternal().

◆ MoveInstrCallbacks

MapVector<CallbackID, MoveInstrCallback> llvm::sandboxir::Context::MoveInstrCallbacks
protected

Callbacks called when an IR instruction is about to get moved.

Keys are used as IDs for deregistration.

Definition at line 81 of file Context.h.

Referenced by registerMoveInstrCallback(), runMoveInstrCallbacks(), and unregisterMoveInstrCallback().

◆ NextCallbackID

CallbackID llvm::sandboxir::Context::NextCallbackID = 0
protected

A counter used for assigning callback IDs during registration.

The same counter is used for all kinds of callbacks so we can detect mismatched registration/deregistration.

Definition at line 86 of file Context.h.

Referenced by registerCreateInstrCallback(), registerEraseInstrCallback(), and registerMoveInstrCallback().

◆ PHINode

friend llvm::sandboxir::Context::PHINode
protected

Definition at line 189 of file Context.h.

Referenced by createPHINode(), and getOrCreateValueInternal().

◆ ResumeInst

friend llvm::sandboxir::Context::ResumeInst
protected

Definition at line 173 of file Context.h.

Referenced by createResumeInst(), and getOrCreateValueInternal().

◆ ReturnInst

friend llvm::sandboxir::Context::ReturnInst
protected

Definition at line 151 of file Context.h.

Referenced by createReturnInst(), and getOrCreateValueInternal().

◆ SelectInst

friend llvm::sandboxir::Context::SelectInst
protected

Definition at line 133 of file Context.h.

Referenced by createSelectInst(), and getOrCreateValueInternal().

◆ ShuffleVectorInst

friend llvm::sandboxir::Context::ShuffleVectorInst
protected

Definition at line 139 of file Context.h.

Referenced by createShuffleVectorInst(), and getOrCreateValueInternal().

◆ StoreInst

friend llvm::sandboxir::Context::StoreInst
protected

Definition at line 149 of file Context.h.

Referenced by createStoreInst(), and getOrCreateValueInternal().

◆ SwitchInst

friend llvm::sandboxir::Context::SwitchInst
protected

Definition at line 175 of file Context.h.

Referenced by createSwitchInst(), and getOrCreateValueInternal().

◆ UnaryOperator

friend llvm::sandboxir::Context::UnaryOperator
protected

Definition at line 177 of file Context.h.

Referenced by createUnaryOperator(), and getOrCreateValueInternal().

◆ UnreachableInst

friend llvm::sandboxir::Context::UnreachableInst
protected

Definition at line 191 of file Context.h.

Referenced by createUnreachableInst(), and getOrCreateValueInternal().

◆ VAArgInst

friend llvm::sandboxir::Context::VAArgInst
protected

Definition at line 127 of file Context.h.

Referenced by createVAArgInst(), and getOrCreateValueInternal().


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