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="", llvm::GEPNoWrapFlags NW=llvm::GEPNoWrapFlags::none()) |
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 50 of file CGBuilder.h.
|
inline |
Definition at line 88 of file CGBuilder.h.
|
inline |
Definition at line 90 of file CGBuilder.h.
|
inline |
Definition at line 94 of file CGBuilder.h.
|
inline |
Definition at line 96 of file CGBuilder.h.
|
inline |
Definition at line 189 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 128 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 143 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 169 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 180 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 241 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 315 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 278 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 331 of file CGBuilder.h.
Referenced by forConstantArrayExpansion().
|
inline |
Given a pointer to i8, adjust it by a given constant offset.
Definition at line 305 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 261 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 325 of file CGBuilder.h.
|
inline |
Definition at line 151 of file CGBuilder.h.
|
inline |
Emit a load from an i1 flag variable.
Definition at line 158 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 164 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 336 of file CGBuilder.h.
References CreateGEP(), and clang::CodeGen::Address::getElementType().
|
inline |
Definition at line 292 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(), EmitX86_64VAArgFromMemory(), and clang::CodeGen::CGOpenMPRuntime::getDepobjElements().
|
inline |
Definition at line 346 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 356 of file CGBuilder.h.
References CreateIsNull(), clang::CodeGen::Address::getBasePointer(), and clang::CodeGen::Address::hasOffset().
Referenced by CreateIsNull(), EmitTypeidFromVTable(), emitWriteback(), emitWritebackArg(), and PerformReturnAdjustment().
Definition at line 437 of file CGBuilder.h.
References CreateLaunderInvariantGroup(), clang::CodeGen::Address::getBasePointer(), and clang::CodeGen::Address::replaceBasePointer().
Referenced by CreateLaunderInvariantGroup().
|
inline |
Definition at line 120 of file CGBuilder.h.
References CreateAlignedLoad(), clang::CodeGen::Address::getAlignment(), clang::CharUnits::getAsAlign(), and clang::CodeGen::Address::getElementType().
|
inline |
Definition at line 113 of file CGBuilder.h.
References CreateAlignedLoad(), clang::CodeGen::Address::getAlignment(), clang::CharUnits::getAsAlign(), and clang::CodeGen::Address::getElementType().
|
inline |
Definition at line 108 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 365 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 372 of file CGBuilder.h.
References CreateMemCpy(), clang::CodeGen::Address::getAlignment(), and clang::CharUnits::getAsAlign().
|
inline |
Definition at line 381 of file CGBuilder.h.
References CreateMemCpyInline(), clang::CodeGen::Address::getAlignment(), and clang::CharUnits::getAsAlign().
Referenced by CreateMemCpyInline().
|
inline |
Definition at line 389 of file CGBuilder.h.
References CreateMemMove(), clang::CodeGen::Address::getAlignment(), and clang::CharUnits::getAsAlign().
Referenced by CreateMemMove().
|
inline |
Definition at line 398 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 405 of file CGBuilder.h.
References CreateMemSetInline(), clang::CodeGen::Address::getAlignment(), and clang::CharUnits::getAsAlign().
Referenced by CreateMemSetInline().
|
inline |
Definition at line 203 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 413 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 429 of file CGBuilder.h.
References CreatePreserveUnionAccessIndex(), clang::CodeGen::Address::getBasePointer(), and clang::CodeGen::Address::replaceBasePointer().
Referenced by CreatePreserveUnionAccessIndex().
|
inline |
Definition at line 136 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(), handleHlslSplitdouble(), InitCatchParam(), clang::CodeGen::DominatingLLVMValue::save(), SetupCleanupBlockActivation(), and clang::CodeGen::CodeGenFunction::OMPMapVars::setVarAddr().
Definition at line 443 of file CGBuilder.h.
References CreateStripInvariantGroup(), clang::CodeGen::Address::getBasePointer(), and clang::CodeGen::Address::replaceBasePointer().
Referenced by CreateStripInvariantGroup().
|
inline |
Definition at line 219 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 99 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 102 of file CGBuilder.h.
References clang::CodeGen::CodeGenTypeCache::SizeTy.
|
friend |
Definition at line 51 of file CGBuilder.h.
Referenced by CreateAddrSpaceCast(), CreateConstArrayGEP(), CreateConstByteGEP(), CreateConstGEP(), CreateConstInBoundsByteGEP(), CreateConstInBoundsGEP(), CreateGEP(), CreatePreserveStructAccessIndex(), and CreateStructGEP().