clang 20.0.0git
|
#include "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/CodeGen/CGBuilder.h"
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. | |
llvm::StoreInst * | CreateFlagStore (bool Value, llvm::Value *Addr) |
Emit a store to an i1 flag variable. | |
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]* ... produce name = getelementptr inbounds addr, i64 0, i64 index where i64 is actually the target word size. | |
Address | CreateConstInBoundsGEP (Address Addr, uint64_t Index, const llvm::Twine &Name="") |
Given addr = T* ... produce name = getelementptr inbounds addr, i64 index where i64 is actually the target word size. | |
Address | CreateConstGEP (Address Addr, uint64_t Index, const llvm::Twine &Name="") |
Given addr = T* ... produce name = getelementptr inbounds addr, i64 index where i64 is actually the target word size. | |
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. | |
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 |
Definition at line 49 of file CGBuilder.h.
|
inline |
Definition at line 87 of file CGBuilder.h.
|
inline |
Definition at line 89 of file CGBuilder.h.
|
inline |
Definition at line 93 of file CGBuilder.h.
|
inline |
Definition at line 95 of file CGBuilder.h.
|
inline |
Definition at line 188 of file CGBuilder.h.
References Address, CreateAddrSpaceCast(), clang::CodeGen::Address::emitRawPointer(), clang::CodeGen::Address::getAlignment(), clang::CodeGen::Address::getBasePointer(), clang::CodeGen::Address::getPointerAuthInfo(), clang::CodeGen::Address::hasOffset(), and clang::CodeGen::Address::isKnownNonNull().
Referenced by CreateAddrSpaceCast(), CreatePointerBitCastOrAddrSpaceCast(), EmitPointerWithAlignment(), and clang::CodeGen::TargetCodeGenInfo::performAddrSpaceCast().
|
inline |
Definition at line 127 of file CGBuilder.h.
References CreateAlignedLoad(), and clang::CharUnits::getAsAlign().
Referenced by BuildAppleKextVirtualCall(), CreateAlignedLoad(), CreateFlagLoad(), CreateLoad(), createPlaceholderSlot(), EmitISOVolatileLoad(), performTypeAdjustment(), and clang::CodeGen::DominatingLLVMValue::restore().
|
inline |
Definition at line 142 of file CGBuilder.h.
References CreateAlignedStore(), and clang::CharUnits::getAsAlign().
Referenced by CreateAlignedStore(), CreateFlagStore(), CreateStore(), EmitISOVolatileStore(), and clang::CodeGen::CodeGenFunction::FinallyInfo::exit().
|
inline |
Definition at line 168 of file CGBuilder.h.
References clang::CodeGen::Address::emitRawPointer(), clang::CodeGen::Address::getAlignment(), and clang::CharUnits::getAsAlign().
Referenced by emitAtomicCmpXchg(), EmitAtomicCmpXchg128ForMSIntrin(), EmitAtomicCmpXchgForMSIntrin(), and MakeAtomicCmpXchgValue().
|
inline |
Definition at line 179 of file CGBuilder.h.
References clang::CodeGen::Address::emitRawPointer(), clang::CodeGen::Address::getAlignment(), and clang::CharUnits::getAsAlign().
Referenced by EmitAtomicDecrementValue(), EmitAtomicIncrementValue(), EmitBinaryAtomicPost(), EmitBitTestIntrinsic(), and MakeBinaryAtomicValue().
|
inline |
Given addr = [n x T]* ... produce name = getelementptr inbounds addr, i64 0, i64 index where i64 is actually the target word size.
This API assumes that drilling into an array like this is always an inbounds operation.
Definition at line 240 of file CGBuilder.h.
References Address, clang::CharUnits::alignmentAtOffset(), CreateInBoundsGEP(), clang::CharUnits::fromQuantity(), clang::CodeGen::Address::getAlignment(), clang::CodeGen::Address::getBasePointer(), clang::CodeGen::Address::getElementType(), and clang::CodeGen::Address::isKnownNonNull().
Referenced by emitAddrOfVarFromArray(), clang::CodeGen::CGOpenMPRuntime::emitDependClause(), clang::CodeGen::CGOpenMPRuntime::emitDoacrossInit(), EmitDoacrossOrdered(), emitOMPArraySectionBase(), clang::CodeGen::CGOpenMPRuntimeGPU::emitParallelCall(), clang::CodeGen::CGOpenMPRuntime::emitReduction(), clang::CodeGen::CGOpenMPRuntime::emitReductionFunction(), clang::CodeGen::CGOpenMPRuntime::emitSingleRegion(), and clang::CodeGen::CGOpenMPRuntime::emitTaskInit().
|
inline |
Definition at line 314 of file CGBuilder.h.
References Address, clang::CharUnits::alignmentAtOffset(), CreateGEP(), clang::CodeGen::Address::getAlignment(), clang::CodeGen::Address::getBasePointer(), clang::CodeGen::Address::getElementType(), getSize(), and clang::CodeGen::CodeGenTypeCache::Int8Ty.
|
inline |
Given addr = T* ... produce name = getelementptr inbounds addr, i64 index where i64 is actually the target word size.
Definition at line 277 of file CGBuilder.h.
References Address, clang::CharUnits::alignmentAtOffset(), CreateGEP(), clang::CharUnits::fromQuantity(), clang::CodeGen::Address::getAlignment(), clang::CodeGen::Address::getBasePointer(), clang::CodeGen::Address::getElementType(), and getSize().
Referenced by emitDependData(), clang::CodeGen::CGOpenMPRuntime::emitDepobjDependClause(), clang::CodeGen::CGOpenMPRuntime::emitTaskInit(), and clang::CodeGen::CGOpenMPRuntime::emitUpdateClause().
|
inline |
Definition at line 330 of file CGBuilder.h.
Referenced by forConstantArrayExpansion().
|
inline |
Given a pointer to i8, adjust it by a given constant offset.
Definition at line 304 of file CGBuilder.h.
References Address, clang::CharUnits::alignmentAtOffset(), CreateInBoundsGEP(), clang::CodeGen::Address::getAlignment(), clang::CodeGen::Address::getBasePointer(), clang::CodeGen::Address::getElementType(), getSize(), clang::CodeGen::CodeGenTypeCache::Int8Ty, and clang::CodeGen::Address::isKnownNonNull().
Referenced by complexTempStructure(), emitAddressAtOffset(), emitAddrOfZeroSizeField(), EmitNullBaseClassInitialization(), clang::CodeGen::emitVoidPtrDirectVAArg(), performTypeAdjustment(), and clang::CodeGen::CGCXXABI::ReadArrayCookie().
|
inline |
Given addr = T* ... produce name = getelementptr inbounds addr, i64 index where i64 is actually the target word size.
Definition at line 260 of file CGBuilder.h.
References Address, clang::CharUnits::alignmentAtOffset(), CreateInBoundsGEP(), clang::CharUnits::fromQuantity(), clang::CodeGen::Address::getAlignment(), clang::CodeGen::Address::getBasePointer(), clang::CodeGen::Address::getElementType(), getSize(), and clang::CodeGen::Address::isKnownNonNull().
|
inline |
Definition at line 324 of file CGBuilder.h.
|
inline |
Definition at line 150 of file CGBuilder.h.
|
inline |
Emit a load from an i1 flag variable.
Definition at line 157 of file CGBuilder.h.
References CreateAlignedLoad(), and clang::CharUnits::One().
Referenced by clang::CodeGen::CodeGenFunction::pushCleanupAndDeferDeactivation().
|
inline |
Emit a store to an i1 flag variable.
Definition at line 163 of file CGBuilder.h.
References CreateAlignedStore(), and clang::CharUnits::One().
Referenced by emitSuspendExpression(), clang::CodeGen::CodeGenFunction::FinallyInfo::enter(), and clang::CodeGen::CodeGenFunction::FinallyInfo::exit().
|
inline |
Definition at line 335 of file CGBuilder.h.
References CreateGEP(), and clang::CodeGen::Address::getElementType().
|
inline |
Definition at line 291 of file CGBuilder.h.
References Address, clang::CharUnits::alignmentOfArrayElement(), CreateGEP(), clang::CodeGen::Address::emitRawPointer(), clang::CharUnits::fromQuantity(), clang::CodeGen::Address::getAlignment(), and clang::CodeGen::Address::getElementType().
Referenced by clang::CodeGen::ReductionCodeGen::adjustPrivateAddress(), CreateConstByteGEP(), CreateConstGEP(), CreateGEP(), emitArraySubscriptGEP(), emitDependData(), clang::CodeGen::CGOpenMPRuntime::emitDepobjElements(), clang::CodeGen::CGOpenMPRuntime::emitDestroyClause(), EmitOMPAggregateInit(), EmitOMPAggregateReduction(), emitPointerArithmetic(), clang::CodeGen::CGOpenMPRuntime::emitTaskInit(), clang::CodeGen::CGOpenMPRuntime::emitUpdateClause(), clang::CodeGen::CGOpenMPRuntime::emitUserDefinedMapper(), EmitX86_64VAArgFromMemory(), and clang::CodeGen::CGOpenMPRuntime::getDepobjElements().
|
inline |
Definition at line 344 of file CGBuilder.h.
References CreateInBoundsGEP(), clang::CodeGen::Address::getElementType(), and clang::CodeGen::Address::isKnownNonNull().
Referenced by ApplyNonVirtualAndVirtualOffset(), CreateConstArrayGEP(), CreateConstInBoundsByteGEP(), CreateConstInBoundsGEP(), CreateInBoundsGEP(), EmitArrayDelete(), EmitBitTestIntrinsic(), emitNonZeroVLAInit(), emitPartialArrayDestroy(), clang::CodeGen::CGObjCRuntime::EmitValueForIvarAtOffset(), and performTypeAdjustment().
|
inline |
Definition at line 354 of file CGBuilder.h.
References CreateIsNull(), clang::CodeGen::Address::getBasePointer(), and clang::CodeGen::Address::hasOffset().
Referenced by CreateIsNull(), EmitTypeidFromVTable(), clang::CodeGen::CGOpenMPRuntime::emitUDMapperArrayInitOrDel(), clang::CodeGen::CGOpenMPRuntime::emitUserDefinedMapper(), emitWriteback(), emitWritebackArg(), and PerformReturnAdjustment().
Definition at line 435 of file CGBuilder.h.
References CreateLaunderInvariantGroup(), clang::CodeGen::Address::getBasePointer(), and clang::CodeGen::Address::replaceBasePointer().
Referenced by CreateLaunderInvariantGroup().
|
inline |
Definition at line 119 of file CGBuilder.h.
References CreateAlignedLoad(), clang::CodeGen::Address::getAlignment(), clang::CharUnits::getAsAlign(), and clang::CodeGen::Address::getElementType().
|
inline |
Definition at line 112 of file CGBuilder.h.
References CreateAlignedLoad(), clang::CodeGen::Address::getAlignment(), clang::CharUnits::getAsAlign(), and clang::CodeGen::Address::getElementType().
|
inline |
Definition at line 107 of file CGBuilder.h.
References CreateAlignedLoad(), clang::CodeGen::Address::getAlignment(), clang::CharUnits::getAsAlign(), and clang::CodeGen::Address::getElementType().
Referenced by complexTempStructure(), CreateCoercedLoad(), emitAddrOfVarFromArray(), emitAtomicCmpXchg(), EmitAtomicCmpXchg128ForMSIntrin(), EmitAtomicOp(), EmitBitTestIntrinsic(), EmitCleanup(), emitCmdValueForGetterSetterBody(), emitCopyprivateCopyFunction(), emitDistributeParallelForDistributeInnerBoundParams(), EmitMemberInitializer(), emitOMPArraySectionBase(), clang::CodeGen::CGOpenMPRuntime::emitReductionFunction(), clang::CodeGen::CGOpenMPRuntime::emitSingleRegion(), emitTlsGuardCheck(), clang::CodeGen::emitVoidPtrDirectVAArg(), clang::CodeGen::emitVoidPtrVAArg(), emitWriteback(), EmitX86_64VAArgFromMemory(), generateByrefCopyHelper(), generateByrefDisposeHelper(), and clang::CodeGen::CGCXXABI::loadIncomingCXXThis().
|
inline |
Definition at line 363 of file CGBuilder.h.
References CreateMemCpy(), clang::CodeGen::Address::getAlignment(), and clang::CharUnits::getAsAlign().
Referenced by CreateCoercedLoad(), CreateMemCpy(), clang::CodeGen::CGOpenMPRuntime::emitDepobjElements(), emitNonZeroVLAInit(), and EmitNullBaseClassInitialization().
|
inline |
Definition at line 370 of file CGBuilder.h.
References CreateMemCpy(), clang::CodeGen::Address::getAlignment(), and clang::CharUnits::getAsAlign().
|
inline |
Definition at line 379 of file CGBuilder.h.
References CreateMemCpyInline(), clang::CodeGen::Address::getAlignment(), and clang::CharUnits::getAsAlign().
Referenced by CreateMemCpyInline().
|
inline |
Definition at line 387 of file CGBuilder.h.
References CreateMemMove(), clang::CodeGen::Address::getAlignment(), and clang::CharUnits::getAsAlign().
Referenced by CreateMemMove().
|
inline |
Definition at line 396 of file CGBuilder.h.
References CreateMemSet(), clang::CodeGen::Address::getAlignment(), and clang::CharUnits::getAsAlign().
Referenced by CheckAggExprForMemSetUse(), CreateMemSet(), EmitNullBaseClassInitialization(), and initializeAlloca().
|
inline |
Definition at line 403 of file CGBuilder.h.
References CreateMemSetInline(), clang::CodeGen::Address::getAlignment(), and clang::CharUnits::getAsAlign().
Referenced by CreateMemSetInline().
|
inline |
Definition at line 202 of file CGBuilder.h.
References CreateAddrSpaceCast(), clang::CodeGen::Address::getType(), and clang::CodeGen::Address::withElementType().
Referenced by clang::CodeGen::ReductionCodeGen::adjustPrivateAddress(), castToBase(), clang::CodeGen::CGOpenMPRuntime::checkAndEmitLastprivateConditional(), emitCopyprivateCopyFunction(), clang::CodeGen::CGOpenMPRuntime::emitDependClause(), clang::CodeGen::CGOpenMPRuntime::emitDepobjDependClause(), clang::CodeGen::CGOpenMPRuntime::emitDestroyClause(), clang::CodeGen::CGOpenMPRuntime::emitDoacrossInit(), clang::CodeGen::CGOpenMPRuntimeGPU::emitOutlinedFunctionCall(), clang::CodeGen::CGOpenMPRuntimeGPU::emitParallelCall(), emitPrivatesInit(), emitProxyTaskFunction(), clang::CodeGen::CGOpenMPRuntime::emitReduction(), clang::CodeGen::CGOpenMPRuntime::emitReductionFunction(), clang::CodeGen::CGOpenMPRuntime::emitSingleRegion(), clang::CodeGen::CGOpenMPRuntime::emitTaskInit(), clang::CodeGen::CGOpenMPRuntime::emitTaskLoopCall(), clang::CodeGen::CGOpenMPRuntime::emitTaskReductionInit(), clang::CodeGen::CGOpenMPRuntime::emitUsesAllocatorsInit(), clang::CodeGen::CGOpenMPRuntime::getAddressOfLocalVariable(), clang::CodeGen::CodeGenFunction::OMPBuilderCBHelpers::getAddressOfLocalVariable(), clang::CodeGen::CGOpenMPRuntimeGPU::getAddressOfLocalVariable(), clang::CodeGen::CGOpenMPRuntime::getAddrOfArtificialThreadPrivate(), clang::CodeGen::CGOpenMPRuntimeGPU::getParameterAddress(), and clang::CodeGen::CGOpenMPRuntime::getTaskReductionItem().
|
inline |
Definition at line 411 of file CGBuilder.h.
References Address, clang::CharUnits::alignmentAtOffset(), CreatePreserveStructAccessIndex(), clang::CharUnits::fromQuantity(), clang::CodeGen::Address::getAlignment(), and clang::CodeGen::Address::getElementType().
Referenced by CreatePreserveStructAccessIndex(), and emitPreserveStructAccess().
|
inline |
Definition at line 427 of file CGBuilder.h.
References CreatePreserveUnionAccessIndex(), clang::CodeGen::Address::getBasePointer(), and clang::CodeGen::Address::replaceBasePointer().
Referenced by CreatePreserveUnionAccessIndex().
|
inline |
Definition at line 135 of file CGBuilder.h.
References CreateAlignedStore(), clang::CodeGen::Address::getAlignment(), and clang::CharUnits::getAsAlign().
Referenced by castToBase(), EmitAsmStores(), emitAtomicCmpXchg(), EmitAtomicCmpXchg128ForMSIntrin(), EmitAtomicOp(), EmitBitTestIntrinsic(), EmitCheckedMixedSignMultiply(), EmitCheckedUnsignedMultiplySignedResult(), clang::CodeGen::CGOpenMPRuntime::emitDepobjElementsSizes(), clang::CodeGen::CGObjCRuntime::EmitInitOfCatchParam(), clang::CodeGen::CGOpenMPRuntime::emitParallelCall(), clang::CodeGen::CGOpenMPRuntime::emitReduction(), clang::CodeGen::CGOpenMPRuntime::emitSingleRegion(), EmitSystemZIntrinsicWithCC(), clang::CodeGen::CGOpenMPRuntime::emitTaskReductionFixups(), clang::CodeGen::CGOpenMPRuntimeGPU::emitTeamsCall(), clang::CodeGen::CGOpenMPRuntime::emitThreadPrivateVarDefinition(), clang::CodeGen::EmitVAArgInstr(), clang::CodeGen::emitVoidPtrDirectVAArg(), emitWasmCatchPadBlock(), emitWritebackArg(), EmitX86_64VAArgFromMemory(), InitCatchParam(), clang::CodeGen::DominatingLLVMValue::save(), SetupCleanupBlockActivation(), and clang::CodeGen::CodeGenFunction::OMPMapVars::setVarAddr().
Definition at line 441 of file CGBuilder.h.
References CreateStripInvariantGroup(), clang::CodeGen::Address::getBasePointer(), and clang::CodeGen::Address::replaceBasePointer().
Referenced by CreateStripInvariantGroup().
|
inline |
Definition at line 218 of file CGBuilder.h.
References Address, clang::CharUnits::alignmentAtOffset(), CreateStructGEP(), clang::CharUnits::fromQuantity(), clang::CodeGen::Address::getAlignment(), clang::CodeGen::Address::getBasePointer(), clang::CodeGen::Address::getElementType(), and clang::CodeGen::Address::isKnownNonNull().
Referenced by CreateStructGEP(), emitAddrOfFieldStorage(), EmitX86_64VAArgFromMemory(), and EnterStructPointerForCoercedAccess().
|
inline |
Definition at line 98 of file CGBuilder.h.
References clang::CharUnits::getQuantity(), and clang::CodeGen::CodeGenTypeCache::SizeTy.
Referenced by CreateConstByteGEP(), CreateConstGEP(), CreateConstInBoundsByteGEP(), CreateConstInBoundsGEP(), and EmitPointerAuthCommon().
|
inline |
Definition at line 101 of file CGBuilder.h.
References clang::CodeGen::CodeGenTypeCache::SizeTy.
|
friend |
Definition at line 50 of file CGBuilder.h.
Referenced by CreateAddrSpaceCast(), CreateConstArrayGEP(), CreateConstByteGEP(), CreateConstGEP(), CreateConstInBoundsByteGEP(), CreateConstInBoundsGEP(), CreateGEP(), CreatePreserveStructAccessIndex(), and CreateStructGEP().