clang  19.0.0git
Public Member Functions | Friends | List of all members
clang::CodeGen::CGBuilderTy Class Reference

#include "/home/runner/work/llvm/llvm/repo/clang/lib/CodeGen/CGBuilder.h"

Inheritance diagram for clang::CodeGen::CGBuilderTy:
Inheritance graph
[legend]

Public Member Functions

 CGBuilderTy (const CodeGenTypeCache &TypeCache, llvm::LLVMContext &C)
 
 CGBuilderTy (const CodeGenTypeCache &TypeCache, llvm::LLVMContext &C, const llvm::ConstantFolder &F, const CGBuilderInserterTy &Inserter)
 
 CGBuilderTy (const CodeGenTypeCache &TypeCache, llvm::Instruction *I)
 
 CGBuilderTy (const CodeGenTypeCache &TypeCache, llvm::BasicBlock *BB)
 
llvm::ConstantInt * getSize (CharUnits N)
 
llvm::ConstantInt * getSize (uint64_t N)
 
llvm::LoadInst * CreateLoad (Address Addr, const llvm::Twine &Name="")
 
llvm::LoadInst * CreateLoad (Address Addr, const char *Name)
 
llvm::LoadInst * CreateLoad (Address Addr, bool IsVolatile, const llvm::Twine &Name="")
 
llvm::LoadInst * CreateAlignedLoad (llvm::Type *Ty, llvm::Value *Addr, CharUnits Align, const llvm::Twine &Name="")
 
llvm::StoreInst * CreateStore (llvm::Value *Val, Address Addr, bool IsVolatile=false)
 
llvm::StoreInst * CreateAlignedStore (llvm::Value *Val, llvm::Value *Addr, CharUnits Align, bool IsVolatile=false)
 
llvm::StoreInst * CreateDefaultAlignedStore (llvm::Value *Val, llvm::Value *Addr, bool IsVolatile=false)
 
llvm::LoadInst * CreateFlagLoad (llvm::Value *Addr, const llvm::Twine &Name="")
 Emit a load from an i1 flag variable. More...
 
llvm::StoreInst * CreateFlagStore (bool Value, llvm::Value *Addr)
 Emit a store to an i1 flag variable. More...
 
llvm::AtomicCmpXchgInst * CreateAtomicCmpXchg (Address Addr, llvm::Value *Cmp, llvm::Value *New, llvm::AtomicOrdering SuccessOrdering, llvm::AtomicOrdering FailureOrdering, llvm::SyncScope::ID SSID=llvm::SyncScope::System)
 
llvm::AtomicRMWInst * CreateAtomicRMW (llvm::AtomicRMWInst::BinOp Op, Address Addr, llvm::Value *Val, llvm::AtomicOrdering Ordering, llvm::SyncScope::ID SSID=llvm::SyncScope::System)
 
Address CreateAddrSpaceCast (Address Addr, llvm::Type *Ty, llvm::Type *ElementTy, const llvm::Twine &Name="")
 
Address CreatePointerBitCastOrAddrSpaceCast (Address Addr, llvm::Type *Ty, llvm::Type *ElementTy, const llvm::Twine &Name="")
 
Address CreateStructGEP (Address Addr, unsigned Index, const llvm::Twine &Name="")
 
Address CreateConstArrayGEP (Address Addr, uint64_t Index, const llvm::Twine &Name="")
 Given addr = [n x T]* ... More...
 
Address CreateConstInBoundsGEP (Address Addr, uint64_t Index, const llvm::Twine &Name="")
 Given addr = T* ... More...
 
Address CreateConstGEP (Address Addr, uint64_t Index, const llvm::Twine &Name="")
 Given addr = T* ... More...
 
Address CreateGEP (CodeGenFunction &CGF, Address Addr, llvm::Value *Index, const llvm::Twine &Name="")
 
Address CreateConstInBoundsByteGEP (Address Addr, CharUnits Offset, const llvm::Twine &Name="")
 Given a pointer to i8, adjust it by a given constant offset. More...
 
Address CreateConstByteGEP (Address Addr, CharUnits Offset, const llvm::Twine &Name="")
 
Address CreateConstInBoundsGEP2_32 (Address Addr, unsigned Idx0, unsigned Idx1, const llvm::Twine &Name="")
 
Address CreateConstGEP2_32 (Address Addr, unsigned Idx0, unsigned Idx1, const llvm::Twine &Name="")
 
Address CreateGEP (Address Addr, ArrayRef< llvm::Value * > IdxList, llvm::Type *ElementType, CharUnits Align, const Twine &Name="")
 
Address CreateInBoundsGEP (Address Addr, ArrayRef< llvm::Value * > IdxList, llvm::Type *ElementType, CharUnits Align, const Twine &Name="")
 
llvm::Value * CreateIsNull (Address Addr, const Twine &Name="")
 
llvm::CallInst * CreateMemCpy (Address Dest, Address Src, llvm::Value *Size, bool IsVolatile=false)
 
llvm::CallInst * CreateMemCpy (Address Dest, Address Src, uint64_t Size, bool IsVolatile=false)
 
llvm::CallInst * CreateMemCpyInline (Address Dest, Address Src, uint64_t Size)
 
llvm::CallInst * CreateMemMove (Address Dest, Address Src, llvm::Value *Size, bool IsVolatile=false)
 
llvm::CallInst * CreateMemSet (Address Dest, llvm::Value *Value, llvm::Value *Size, bool IsVolatile=false)
 
llvm::CallInst * CreateMemSetInline (Address Dest, llvm::Value *Value, uint64_t Size)
 
Address CreatePreserveStructAccessIndex (Address Addr, unsigned Index, unsigned FieldIndex, llvm::MDNode *DbgInfo)
 
Address CreatePreserveUnionAccessIndex (Address Addr, unsigned FieldIndex, llvm::MDNode *DbgInfo)
 
Address CreateLaunderInvariantGroup (Address Addr)
 
Address CreateStripInvariantGroup (Address Addr)
 

Friends

class Address
 

Detailed Description

Definition at line 50 of file CGBuilder.h.

Constructor & Destructor Documentation

◆ CGBuilderTy() [1/4]

clang::CodeGen::CGBuilderTy::CGBuilderTy ( const CodeGenTypeCache TypeCache,
llvm::LLVMContext &  C 
)
inline

Definition at line 88 of file CGBuilder.h.

◆ CGBuilderTy() [2/4]

clang::CodeGen::CGBuilderTy::CGBuilderTy ( const CodeGenTypeCache TypeCache,
llvm::LLVMContext &  C,
const llvm::ConstantFolder &  F,
const CGBuilderInserterTy Inserter 
)
inline

Definition at line 90 of file CGBuilder.h.

◆ CGBuilderTy() [3/4]

clang::CodeGen::CGBuilderTy::CGBuilderTy ( const CodeGenTypeCache TypeCache,
llvm::Instruction *  I 
)
inline

Definition at line 94 of file CGBuilder.h.

◆ CGBuilderTy() [4/4]

clang::CodeGen::CGBuilderTy::CGBuilderTy ( const CodeGenTypeCache TypeCache,
llvm::BasicBlock *  BB 
)
inline

Definition at line 96 of file CGBuilder.h.

Member Function Documentation

◆ CreateAddrSpaceCast()

Address clang::CodeGen::CGBuilderTy::CreateAddrSpaceCast ( Address  Addr,
llvm::Type *  Ty,
llvm::Type *  ElementTy,
const llvm::Twine &  Name = "" 
)
inline

◆ CreateAlignedLoad()

llvm::LoadInst* clang::CodeGen::CGBuilderTy::CreateAlignedLoad ( llvm::Type *  Ty,
llvm::Value *  Addr,
CharUnits  Align,
const llvm::Twine &  Name = "" 
)
inline

◆ CreateAlignedStore()

llvm::StoreInst* clang::CodeGen::CGBuilderTy::CreateAlignedStore ( llvm::Value *  Val,
llvm::Value *  Addr,
CharUnits  Align,
bool  IsVolatile = false 
)
inline

◆ CreateAtomicCmpXchg()

llvm::AtomicCmpXchgInst* clang::CodeGen::CGBuilderTy::CreateAtomicCmpXchg ( Address  Addr,
llvm::Value *  Cmp,
llvm::Value *  New,
llvm::AtomicOrdering  SuccessOrdering,
llvm::AtomicOrdering  FailureOrdering,
llvm::SyncScope::ID  SSID = llvm::SyncScope::System 
)
inline

◆ CreateAtomicRMW()

llvm::AtomicRMWInst* clang::CodeGen::CGBuilderTy::CreateAtomicRMW ( llvm::AtomicRMWInst::BinOp  Op,
Address  Addr,
llvm::Value *  Val,
llvm::AtomicOrdering  Ordering,
llvm::SyncScope::ID  SSID = llvm::SyncScope::System 
)
inline

◆ CreateConstArrayGEP()

Address clang::CodeGen::CGBuilderTy::CreateConstArrayGEP ( Address  Addr,
uint64_t  Index,
const llvm::Twine &  Name = "" 
)
inline

◆ CreateConstByteGEP()

Address clang::CodeGen::CGBuilderTy::CreateConstByteGEP ( Address  Addr,
CharUnits  Offset,
const llvm::Twine &  Name = "" 
)
inline

Definition at line 315 of file CGBuilder.h.

◆ CreateConstGEP()

Address clang::CodeGen::CGBuilderTy::CreateConstGEP ( Address  Addr,
uint64_t  Index,
const llvm::Twine &  Name = "" 
)
inline

Given addr = T* ...

produce name = getelementptr inbounds addr, i64 index where i64 is actually the target word size.

Definition at line 278 of file CGBuilder.h.

Referenced by emitDependData(), clang::CodeGen::CGOpenMPRuntime::emitTaskInit(), clang::CodeGen::CGOpenMPRuntime::emitUpdateClause(), and shuffleAndStore().

◆ CreateConstGEP2_32()

Address clang::CodeGen::CGBuilderTy::CreateConstGEP2_32 ( Address  Addr,
unsigned  Idx0,
unsigned  Idx1,
const llvm::Twine &  Name = "" 
)
inline

◆ CreateConstInBoundsByteGEP()

Address clang::CodeGen::CGBuilderTy::CreateConstInBoundsByteGEP ( Address  Addr,
CharUnits  Offset,
const llvm::Twine &  Name = "" 
)
inline

◆ CreateConstInBoundsGEP()

Address clang::CodeGen::CGBuilderTy::CreateConstInBoundsGEP ( Address  Addr,
uint64_t  Index,
const llvm::Twine &  Name = "" 
)
inline

Given addr = T* ...

produce name = getelementptr inbounds addr, i64 index where i64 is actually the target word size.

Definition at line 261 of file CGBuilder.h.

Referenced by clang::CodeGen::CodeGenFunction::EmitExtVectorElementLValue(), clang::CodeGen::CodeGenFunction::EmitLValueForField(), and clang::CodeGen::CodeGenFunction::EmitNewArrayInitializer().

◆ CreateConstInBoundsGEP2_32()

Address clang::CodeGen::CGBuilderTy::CreateConstInBoundsGEP2_32 ( Address  Addr,
unsigned  Idx0,
unsigned  Idx1,
const llvm::Twine &  Name = "" 
)
inline

Definition at line 325 of file CGBuilder.h.

◆ CreateDefaultAlignedStore()

llvm::StoreInst* clang::CodeGen::CGBuilderTy::CreateDefaultAlignedStore ( llvm::Value *  Val,
llvm::Value *  Addr,
bool  IsVolatile = false 
)
inline

Definition at line 151 of file CGBuilder.h.

◆ CreateFlagLoad()

llvm::LoadInst* clang::CodeGen::CGBuilderTy::CreateFlagLoad ( llvm::Value *  Addr,
const llvm::Twine &  Name = "" 
)
inline

◆ CreateFlagStore()

llvm::StoreInst* clang::CodeGen::CGBuilderTy::CreateFlagStore ( bool  Value,
llvm::Value *  Addr 
)
inline

Emit a store to an i1 flag variable.

Definition at line 164 of file CGBuilder.h.

References CreateAlignedStore(), and clang::CharUnits::One().

Referenced by clang::CodeGen::CodeGenFunction::FinallyInfo::enter(), and clang::CodeGen::CodeGenFunction::FinallyInfo::exit().

◆ CreateGEP() [1/2]

Address clang::CodeGen::CGBuilderTy::CreateGEP ( Address  Addr,
ArrayRef< llvm::Value * >  IdxList,
llvm::Type *  ElementType,
CharUnits  Align,
const Twine &  Name = "" 
)
inline

Definition at line 336 of file CGBuilder.h.

◆ CreateGEP() [2/2]

Address clang::CodeGen::CGBuilderTy::CreateGEP ( CodeGenFunction CGF,
Address  Addr,
llvm::Value *  Index,
const llvm::Twine &  Name = "" 
)
inline

◆ CreateInBoundsGEP()

Address clang::CodeGen::CGBuilderTy::CreateInBoundsGEP ( Address  Addr,
ArrayRef< llvm::Value * >  IdxList,
llvm::Type *  ElementType,
CharUnits  Align,
const Twine &  Name = "" 
)
inline

◆ CreateIsNull()

llvm::Value* clang::CodeGen::CGBuilderTy::CreateIsNull ( Address  Addr,
const Twine &  Name = "" 
)
inline

◆ CreateLaunderInvariantGroup()

Address clang::CodeGen::CGBuilderTy::CreateLaunderInvariantGroup ( Address  Addr)
inline

◆ CreateLoad() [1/3]

llvm::LoadInst* clang::CodeGen::CGBuilderTy::CreateLoad ( Address  Addr,
bool  IsVolatile,
const llvm::Twine &  Name = "" 
)
inline

Definition at line 120 of file CGBuilder.h.

◆ CreateLoad() [2/3]

llvm::LoadInst* clang::CodeGen::CGBuilderTy::CreateLoad ( Address  Addr,
const char *  Name 
)
inline

Definition at line 113 of file CGBuilder.h.

◆ CreateLoad() [3/3]

llvm::LoadInst* clang::CodeGen::CGBuilderTy::CreateLoad ( Address  Addr,
const llvm::Twine &  Name = "" 
)
inline

Definition at line 108 of file CGBuilder.h.

Referenced by complexTempStructure(), CreateCoercedLoad(), clang::CodeGen::CodeGenFunction::EmitARCDestroyStrong(), emitAtomicCmpXchg(), EmitAtomicCmpXchg128ForMSIntrin(), EmitAtomicOp(), EmitBitTestIntrinsic(), clang::CodeGen::CodeGenFunction::emitBlockByrefAddress(), clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitCfiCheckFail(), EmitCleanup(), emitCmdValueForGetterSetterBody(), clang::CodeGen::CodeGenFunction::EmitCXXPseudoDestructorExpr(), clang::CodeGen::CodeGenFunction::EmitDelegateCallArg(), clang::CodeGen::CodeGenFunction::EmitFunctionEpilog(), clang::CodeGen::CodeGenFunction::EmitFunctionProlog(), clang::CodeGen::CodeGenFunction::EmitLoadOfBitfieldLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfExtVectorElementLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfPointer(), clang::CodeGen::CodeGenFunction::EmitLoadOfReference(), clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(), EmitMemberInitializer(), emitOMPArraySectionBase(), clang::CodeGen::CodeGenFunction::EmitParmDecl(), clang::CodeGen::CodeGenFunction::EmitReturnValueCheck(), clang::CodeGen::CodeGenFunction::EmitSEHExceptionCode(), clang::CodeGen::CGOpenMPRuntime::emitSingleRegion(), clang::CodeGen::CodeGenFunction::EmitStoreThroughBitfieldLValue(), clang::CodeGen::CodeGenFunction::EmitStoreThroughExtVectorComponentLValue(), clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue(), emitTlsGuardCheck(), clang::CodeGen::CodeGenFunction::EmitTypeCheck(), clang::CodeGen::emitVoidPtrDirectVAArg(), clang::CodeGen::emitVoidPtrVAArg(), emitWriteback(), EmitX86_64VAArgFromMemory(), clang::CodeGen::CodeGenFunction::GenerateBlockFunction(), clang::CodeGen::CodeGenFunction::GenerateCopyHelperFunction(), clang::CodeGen::CodeGenFunction::GenerateCXXGlobalInitFunc(), clang::CodeGen::CodeGenFunction::GenerateDestroyHelperFunction(), clang::CodeGen::CodeGenFunction::generateObjCGetterBody(), clang::CodeGen::CodeGenFunction::generateObjCSetterBody(), clang::CodeGen::CodeGenFunction::GetAddrOfBlockDecl(), clang::CodeGen::CodeGenFunction::getExceptionFromSlot(), clang::CodeGen::CodeGenFunction::getSelectorFromSlot(), clang::CodeGen::CodeGenFunction::GetVTablePtr(), clang::CodeGen::CGCXXABI::loadIncomingCXXThis(), and performTypeAdjustment().

◆ CreateMemCpy() [1/2]

llvm::CallInst* clang::CodeGen::CGBuilderTy::CreateMemCpy ( Address  Dest,
Address  Src,
llvm::Value *  Size,
bool  IsVolatile = false 
)
inline

◆ CreateMemCpy() [2/2]

llvm::CallInst* clang::CodeGen::CGBuilderTy::CreateMemCpy ( Address  Dest,
Address  Src,
uint64_t  Size,
bool  IsVolatile = false 
)
inline

◆ CreateMemCpyInline()

llvm::CallInst* clang::CodeGen::CGBuilderTy::CreateMemCpyInline ( Address  Dest,
Address  Src,
uint64_t  Size 
)
inline

◆ CreateMemMove()

llvm::CallInst* clang::CodeGen::CGBuilderTy::CreateMemMove ( Address  Dest,
Address  Src,
llvm::Value *  Size,
bool  IsVolatile = false 
)
inline

◆ CreateMemSet()

llvm::CallInst* clang::CodeGen::CGBuilderTy::CreateMemSet ( Address  Dest,
llvm::Value *  Value,
llvm::Value *  Size,
bool  IsVolatile = false 
)
inline

◆ CreateMemSetInline()

llvm::CallInst* clang::CodeGen::CGBuilderTy::CreateMemSetInline ( Address  Dest,
llvm::Value *  Value,
uint64_t  Size 
)
inline

◆ CreatePointerBitCastOrAddrSpaceCast()

Address clang::CodeGen::CGBuilderTy::CreatePointerBitCastOrAddrSpaceCast ( Address  Addr,
llvm::Type *  Ty,
llvm::Type *  ElementTy,
const llvm::Twine &  Name = "" 
)
inline

◆ CreatePreserveStructAccessIndex()

Address clang::CodeGen::CGBuilderTy::CreatePreserveStructAccessIndex ( Address  Addr,
unsigned  Index,
unsigned  FieldIndex,
llvm::MDNode *  DbgInfo 
)
inline

◆ CreatePreserveUnionAccessIndex()

Address clang::CodeGen::CGBuilderTy::CreatePreserveUnionAccessIndex ( Address  Addr,
unsigned  FieldIndex,
llvm::MDNode *  DbgInfo 
)
inline

◆ CreateStore()

llvm::StoreInst* clang::CodeGen::CGBuilderTy::CreateStore ( llvm::Value *  Val,
Address  Addr,
bool  IsVolatile = false 
)
inline

Definition at line 136 of file CGBuilder.h.

References CreateAlignedStore(), clang::CodeGen::Address::getAlignment(), and clang::CharUnits::getAsAlign().

Referenced by castToBase(), clang::CodeGen::CodeGenFunction::createCleanupActiveFlag(), CreateCoercedStore(), clang::CodeGen::CodeGenFunction::createTLSAtExitStub(), clang::CodeGen::CodeGenFunction::EmitAggregateStore(), clang::CodeGen::CodeGenFunction::EmitARCInitWeak(), EmitAtomicCmpXchg128ForMSIntrin(), EmitAtomicOp(), clang::CodeGen::CodeGenFunction::EmitAtomicStore(), clang::CodeGen::CodeGenFunction::EmitAutoVarAlloca(), EmitBitTestIntrinsic(), clang::CodeGen::CodeGenFunction::emitByrefStructureInit(), clang::CodeGen::CodeGenFunction::EmitCall(), EmitCheckedMixedSignMultiply(), EmitCheckedUnsignedMultiplySignedResult(), clang::CodeGen::CodeGenFunction::EmitCheckValue(), clang::CodeGen::CodeGenFunction::EmitDelegateCallArg(), clang::CodeGen::CGOpenMPRuntime::emitDepobjElementsSizes(), clang::CodeGen::CodeGenFunction::EmitExtVectorElementExpr(), clang::CodeGen::CodeGenFunction::EmitFunctionProlog(), emitGlobalToListReduceFunction(), clang::CodeGen::CGObjCRuntime::EmitInitOfCatchParam(), clang::CodeGen::CodeGenFunction::EmitLandingPad(), emitListToGlobalReduceFunction(), clang::CodeGen::CodeGenFunction::EmitMustTailThunk(), clang::CodeGen::CodeGenFunction::EmitNewArrayInitializer(), clang::CodeGen::CodeGenFunction::EmitObjCMessageExpr(), clang::CodeGen::CGOpenMPRuntime::emitParallelCall(), clang::CodeGen::CodeGenFunction::EmitSEHExceptionCodeSave(), clang::CodeGen::CGOpenMPRuntime::emitSingleRegion(), clang::CodeGen::CodeGenFunction::EmitStoreOfScalar(), clang::CodeGen::CodeGenFunction::EmitStoreThroughBitfieldLValue(), clang::CodeGen::CodeGenFunction::EmitStoreThroughExtVectorComponentLValue(), clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue(), EmitSystemZIntrinsicWithCC(), clang::CodeGen::CGOpenMPRuntime::emitTaskReductionFixups(), clang::CodeGen::CGOpenMPRuntimeGPU::emitTeamsCall(), clang::CodeGen::EmitVAArgInstr(), clang::CodeGen::emitVoidPtrDirectVAArg(), emitWasmCatchPadBlock(), emitWritebackArg(), EmitX86_64VAArgFromMemory(), clang::CodeGen::CodeGenFunction::GenerateBlockFunction(), clang::CodeGen::CodeGenFunction::GenerateCopyHelperFunction(), clang::CodeGen::CodeGenFunction::GenerateCXXGlobalInitFunc(), clang::CodeGen::CodeGenFunction::generateObjCGetterBody(), clang::CodeGen::CodeGenFunction::generateObjCSetterBody(), clang::CodeGen::CodeGenFunction::GenerateSEHFilterFunction(), InitCatchParam(), clang::CodeGen::CodeGenFunction::InitializeVTablePointer(), clang::CodeGen::CodeGenFunction::PopCleanupBlocks(), clang::CodeGen::DominatingLLVMValue::save(), clang::CodeGen::CodeGenFunction::setBlockContextParameter(), SetupCleanupBlockActivation(), clang::CodeGen::CodeGenFunction::OMPMapVars::setVarAddr(), and clang::CodeGen::CodeGenFunction::StartFunction().

◆ CreateStripInvariantGroup()

Address clang::CodeGen::CGBuilderTy::CreateStripInvariantGroup ( Address  Addr)
inline

◆ CreateStructGEP()

Address clang::CodeGen::CGBuilderTy::CreateStructGEP ( Address  Addr,
unsigned  Index,
const llvm::Twine &  Name = "" 
)
inline

◆ getSize() [1/2]

llvm::ConstantInt* clang::CodeGen::CGBuilderTy::getSize ( CharUnits  N)
inline

◆ getSize() [2/2]

llvm::ConstantInt* clang::CodeGen::CGBuilderTy::getSize ( uint64_t  N)
inline

Definition at line 102 of file CGBuilder.h.

References clang::CodeGen::CodeGenTypeCache::SizeTy.

Friends And Related Function Documentation

◆ Address

friend class Address
friend

Definition at line 51 of file CGBuilder.h.


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