clang 22.0.0git
clang::CodeGen::CGBuilderTy Class Reference

#include "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/CodeGen/CGBuilder.h"

Inheritance diagram for clang::CodeGen::CGBuilderTy:
[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.
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

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 92 of file CGBuilder.h.

References clang::C.

◆ CGBuilderTy() [2/4]

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

Definition at line 94 of file CGBuilder.h.

References clang::C.

◆ CGBuilderTy() [3/4]

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

Definition at line 98 of file CGBuilder.h.

◆ CGBuilderTy() [4/4]

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

Definition at line 100 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 319 of file CGBuilder.h.

References clang::Addr, Address, CreateGEP(), and getSize().

Referenced by emitAddrOfZeroSizeField().

◆ 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 282 of file CGBuilder.h.

References clang::Addr, Address, CreateGEP(), clang::CharUnits::fromQuantity(), and getSize().

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

◆ CreateConstGEP2_32()

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

Definition at line 335 of file CGBuilder.h.

References clang::Addr, and Address.

Referenced by emitAddrOfFieldStorage(), and forConstantArrayExpansion().

◆ 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 265 of file CGBuilder.h.

References clang::Addr, Address, CreateInBoundsGEP(), clang::CharUnits::fromQuantity(), and getSize().

◆ CreateConstInBoundsGEP2_32()

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

Definition at line 329 of file CGBuilder.h.

References clang::Addr, and Address.

◆ CreateDefaultAlignedStore()

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

Definition at line 155 of file CGBuilder.h.

References clang::Addr.

◆ CreateFlagLoad()

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

Emit a load from an i1 flag variable.

Definition at line 162 of file CGBuilder.h.

References clang::Addr, CreateAlignedLoad(), and clang::CharUnits::One().

◆ CreateFlagStore()

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

◆ CreateGEP() [1/2]

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

Definition at line 340 of file CGBuilder.h.

References clang::Addr, Address, and CreateGEP().

◆ CreateGEP() [2/2]

◆ 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

Definition at line 441 of file CGBuilder.h.

References clang::Addr, Address, and CreateLaunderInvariantGroup().

Referenced by CreateLaunderInvariantGroup().

◆ CreateLoad() [1/3]

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

Definition at line 124 of file CGBuilder.h.

References clang::Addr, Address, and CreateAlignedLoad().

◆ CreateLoad() [2/3]

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

Definition at line 117 of file CGBuilder.h.

References clang::Addr, Address, and CreateAlignedLoad().

◆ CreateLoad() [3/3]

◆ 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

Definition at line 433 of file CGBuilder.h.

References clang::Addr, Address, and CreatePreserveUnionAccessIndex().

Referenced by CreatePreserveUnionAccessIndex().

◆ CreateStore()

◆ CreateStripInvariantGroup()

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

Definition at line 447 of file CGBuilder.h.

References clang::Addr, Address, and CreateStripInvariantGroup().

Referenced by CreateStripInvariantGroup().

◆ 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 106 of file CGBuilder.h.

◆ Address


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