LLVM API Documentation
Common base class shared among various IRBuilders. More...
#include <IRBuilder.h>
Classes | |
class | FastMathFlagGuard |
class | InsertPoint |
InsertPoint - A saved insertion point. More... | |
class | InsertPointGuard |
Public Member Functions | |
IRBuilderBase (LLVMContext &context, MDNode *FPMathTag=nullptr) | |
void | ClearInsertionPoint () |
Clear the insertion point: created instructions will not be inserted into a block. | |
BasicBlock * | GetInsertBlock () const |
BasicBlock::iterator | GetInsertPoint () const |
LLVMContext & | getContext () const |
void | SetInsertPoint (BasicBlock *TheBB) |
This specifies that created instructions should be appended to the end of the specified block. | |
void | SetInsertPoint (Instruction *I) |
This specifies that created instructions should be inserted before the specified instruction. | |
void | SetInsertPoint (BasicBlock *TheBB, BasicBlock::iterator IP) |
This specifies that created instructions should be inserted at the specified point. | |
void | SetInsertPoint (Use &U) |
Find the nearest point that dominates this use, and specify that created instructions should be inserted at this point. | |
void | SetCurrentDebugLocation (const DebugLoc &L) |
Set location information used by debugging information. | |
DebugLoc | getCurrentDebugLocation () const |
Get location information used by debugging information. | |
void | SetInstDebugLocation (Instruction *I) const |
If this builder has a current debug location, set it on the specified instruction. | |
Type * | getCurrentFunctionReturnType () const |
Get the return type of the current function that we're emitting into. | |
InsertPoint | saveIP () const |
Returns the current insert point. | |
InsertPoint | saveAndClearIP () |
Returns the current insert point, clearing it in the process. | |
void | restoreIP (InsertPoint IP) |
Sets the current insert point to a previously-saved location. | |
MDNode * | getDefaultFPMathTag () const |
Get the floating point math metadata being used. | |
FastMathFlags | getFastMathFlags () const |
Get the flags to be applied to created floating point ops. | |
void | clearFastMathFlags () |
Clear the fast-math flags. | |
void | SetDefaultFPMathTag (MDNode *FPMathTag) |
Set the floating point math metadata to be used. | |
void | SetFastMathFlags (FastMathFlags NewFMF) |
Set the fast-math flags to be used with generated fp-math operators. | |
Value * | CreateGlobalString (StringRef Str, const Twine &Name="") |
Make a new global variable with initializer type i8*. | |
ConstantInt * | getInt1 (bool V) |
Get a constant value representing either true or false. | |
ConstantInt * | getTrue () |
Get the constant value for i1 true. | |
ConstantInt * | getFalse () |
Get the constant value for i1 false. | |
ConstantInt * | getInt8 (uint8_t C) |
Get a constant 8-bit value. | |
ConstantInt * | getInt16 (uint16_t C) |
Get a constant 16-bit value. | |
ConstantInt * | getInt32 (uint32_t C) |
Get a constant 32-bit value. | |
ConstantInt * | getInt64 (uint64_t C) |
Get a constant 64-bit value. | |
ConstantInt * | getIntN (unsigned N, uint64_t C) |
Get a constant N-bit value, zero extended or truncated from a 64-bit value. | |
ConstantInt * | getInt (const APInt &AI) |
Get a constant integer value. | |
IntegerType * | getInt1Ty () |
Fetch the type representing a single bit. | |
IntegerType * | getInt8Ty () |
Fetch the type representing an 8-bit integer. | |
IntegerType * | getInt16Ty () |
Fetch the type representing a 16-bit integer. | |
IntegerType * | getInt32Ty () |
Fetch the type representing a 32-bit integer. | |
IntegerType * | getInt64Ty () |
Fetch the type representing a 64-bit integer. | |
IntegerType * | getIntNTy (unsigned N) |
Fetch the type representing an N-bit integer. | |
Type * | getHalfTy () |
Fetch the type representing a 16-bit floating point value. | |
Type * | getFloatTy () |
Fetch the type representing a 32-bit floating point value. | |
Type * | getDoubleTy () |
Fetch the type representing a 64-bit floating point value. | |
Type * | getVoidTy () |
Fetch the type representing void. | |
PointerType * | getInt8PtrTy (unsigned AddrSpace=0) |
Fetch the type representing a pointer to an 8-bit integer value. | |
IntegerType * | getIntPtrTy (const DataLayout *DL, unsigned AddrSpace=0) |
Fetch the type representing a pointer to an integer value. | |
CallInst * | CreateMemSet (Value *Ptr, Value *Val, uint64_t Size, unsigned Align, bool isVolatile=false, MDNode *TBAATag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr) |
Create and insert a memset to the specified pointer and the specified value. | |
CallInst * | CreateMemSet (Value *Ptr, Value *Val, Value *Size, unsigned Align, bool isVolatile=false, MDNode *TBAATag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr) |
CallInst * | CreateMemCpy (Value *Dst, Value *Src, uint64_t Size, unsigned Align, bool isVolatile=false, MDNode *TBAATag=nullptr, MDNode *TBAAStructTag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr) |
Create and insert a memcpy between the specified pointers. | |
CallInst * | CreateMemCpy (Value *Dst, Value *Src, Value *Size, unsigned Align, bool isVolatile=false, MDNode *TBAATag=nullptr, MDNode *TBAAStructTag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr) |
CallInst * | CreateMemMove (Value *Dst, Value *Src, uint64_t Size, unsigned Align, bool isVolatile=false, MDNode *TBAATag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr) |
Create and insert a memmove between the specified pointers. | |
CallInst * | CreateMemMove (Value *Dst, Value *Src, Value *Size, unsigned Align, bool isVolatile=false, MDNode *TBAATag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr) |
CallInst * | CreateLifetimeStart (Value *Ptr, ConstantInt *Size=nullptr) |
Create a lifetime.start intrinsic. | |
CallInst * | CreateLifetimeEnd (Value *Ptr, ConstantInt *Size=nullptr) |
Create a lifetime.end intrinsic. | |
Protected Attributes | |
BasicBlock * | BB |
BasicBlock::iterator | InsertPt |
LLVMContext & | Context |
MDNode * | DefaultFPMathTag |
FastMathFlags | FMF |
Common base class shared among various IRBuilders.
Definition at line 50 of file IRBuilder.h.
llvm::IRBuilderBase::IRBuilderBase | ( | LLVMContext & | context, |
MDNode * | FPMathTag = nullptr |
||
) | [inline] |
Definition at line 61 of file IRBuilder.h.
References ClearInsertionPoint().
void llvm::IRBuilderBase::clearFastMathFlags | ( | ) | [inline] |
Clear the fast-math flags.
Definition at line 183 of file IRBuilder.h.
References llvm::FastMathFlags::clear(), and FMF.
void llvm::IRBuilderBase::ClearInsertionPoint | ( | ) | [inline] |
Clear the insertion point: created instructions will not be inserted into a block.
Definition at line 72 of file IRBuilder.h.
Referenced by llvm::SCEVExpander::clearInsertPoint(), IRBuilderBase(), restoreIP(), and saveAndClearIP().
Value * IRBuilderBase::CreateGlobalString | ( | StringRef | Str, |
const Twine & | Name = "" |
||
) |
Make a new global variable with initializer type i8*.
Make a new global variable with an initializer that has array of i8 type filled in with the null terminated string value specified. The new global variable will be marked mergable with any others of the same contents. If Name is specified, it is the name of the global variable created.
CreateGlobalString - Make a new global variable with an initializer that has array of i8 type filled in with the nul terminated string value specified. If Name is specified, it is the name of the global variable created.
Definition at line 26 of file IRBuilder.cpp.
References BB, Context, llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), llvm::ConstantDataArray::getString(), llvm::Value::getType(), llvm::GlobalValue::PrivateLinkage, llvm::Value::setName(), and llvm::GlobalValue::setUnnamedAddr().
Referenced by llvm::IRBuilder< true, TargetFolder >::CreateGlobalStringPtr().
CallInst * IRBuilderBase::CreateLifetimeEnd | ( | Value * | Ptr, |
ConstantInt * | Size = nullptr |
||
) |
Create a lifetime.end intrinsic.
If the pointer isn't i8* it will be converted.
Definition at line 161 of file IRBuilder.cpp.
References BB, createCallHelper(), llvm::Intrinsic::getDeclaration(), getInt64(), getInt64Ty(), llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), llvm::ConstantInt::getType(), and llvm::Value::getType().
CallInst * IRBuilderBase::CreateLifetimeStart | ( | Value * | Ptr, |
ConstantInt * | Size = nullptr |
||
) |
Create a lifetime.start intrinsic.
If the pointer isn't i8* it will be converted.
Definition at line 146 of file IRBuilder.cpp.
References BB, createCallHelper(), llvm::Intrinsic::getDeclaration(), getInt64(), getInt64Ty(), llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), llvm::ConstantInt::getType(), and llvm::Value::getType().
CallInst* llvm::IRBuilderBase::CreateMemCpy | ( | Value * | Dst, |
Value * | Src, | ||
uint64_t | Size, | ||
unsigned | Align, | ||
bool | isVolatile = false , |
||
MDNode * | TBAATag = nullptr , |
||
MDNode * | TBAAStructTag = nullptr , |
||
MDNode * | ScopeTag = nullptr , |
||
MDNode * | NoAliasTag = nullptr |
||
) | [inline] |
Create and insert a memcpy between the specified pointers.
If the pointers aren't i8*, they will be converted. If a TBAA tag is specified, it will be added to the instruction. Likewise with alias.scope and noalias tags.
Definition at line 388 of file IRBuilder.h.
References getInt64().
Referenced by llvm::SimplifyFortifiedLibCalls::fold().
CallInst * IRBuilderBase::CreateMemCpy | ( | Value * | Dst, |
Value * | Src, | ||
Value * | Size, | ||
unsigned | Align, | ||
bool | isVolatile = false , |
||
MDNode * | TBAATag = nullptr , |
||
MDNode * | TBAAStructTag = nullptr , |
||
MDNode * | ScopeTag = nullptr , |
||
MDNode * | NoAliasTag = nullptr |
||
) |
Definition at line 89 of file IRBuilder.cpp.
References BB, createCallHelper(), llvm::Intrinsic::getDeclaration(), getInt1(), getInt32(), llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), llvm::Value::getType(), llvm::LLVMContext::MD_alias_scope, llvm::LLVMContext::MD_noalias, llvm::LLVMContext::MD_tbaa, llvm::LLVMContext::MD_tbaa_struct, llvm::LibFunc::memcpy, and llvm::Instruction::setMetadata().
CallInst* llvm::IRBuilderBase::CreateMemMove | ( | Value * | Dst, |
Value * | Src, | ||
uint64_t | Size, | ||
unsigned | Align, | ||
bool | isVolatile = false , |
||
MDNode * | TBAATag = nullptr , |
||
MDNode * | ScopeTag = nullptr , |
||
MDNode * | NoAliasTag = nullptr |
||
) | [inline] |
Create and insert a memmove between the specified pointers.
If the pointers aren't i8*, they will be converted. If a TBAA tag is specified, it will be added to the instruction. Likewise with alias.scope and noalias tags.
Definition at line 409 of file IRBuilder.h.
References getInt64().
Referenced by llvm::SimplifyFortifiedLibCalls::fold().
CallInst * IRBuilderBase::CreateMemMove | ( | Value * | Dst, |
Value * | Src, | ||
Value * | Size, | ||
unsigned | Align, | ||
bool | isVolatile = false , |
||
MDNode * | TBAATag = nullptr , |
||
MDNode * | ScopeTag = nullptr , |
||
MDNode * | NoAliasTag = nullptr |
||
) |
Definition at line 120 of file IRBuilder.cpp.
References BB, createCallHelper(), llvm::Intrinsic::getDeclaration(), getInt1(), getInt32(), llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), llvm::Value::getType(), llvm::LLVMContext::MD_alias_scope, llvm::LLVMContext::MD_noalias, llvm::LLVMContext::MD_tbaa, llvm::LibFunc::memmove, and llvm::Instruction::setMetadata().
CallInst* llvm::IRBuilderBase::CreateMemSet | ( | Value * | Ptr, |
Value * | Val, | ||
uint64_t | Size, | ||
unsigned | Align, | ||
bool | isVolatile = false , |
||
MDNode * | TBAATag = nullptr , |
||
MDNode * | ScopeTag = nullptr , |
||
MDNode * | NoAliasTag = nullptr |
||
) | [inline] |
Create and insert a memset to the specified pointer and the specified value.
If the pointer isn't an i8*, it will be converted. If a TBAA tag is specified, it will be added to the instruction. Likewise with alias.scope and noalias tags.
Definition at line 370 of file IRBuilder.h.
References getInt64().
Referenced by llvm::SimplifyFortifiedLibCalls::fold().
CallInst * IRBuilderBase::CreateMemSet | ( | Value * | Ptr, |
Value * | Val, | ||
Value * | Size, | ||
unsigned | Align, | ||
bool | isVolatile = false , |
||
MDNode * | TBAATag = nullptr , |
||
MDNode * | ScopeTag = nullptr , |
||
MDNode * | NoAliasTag = nullptr |
||
) |
Definition at line 64 of file IRBuilder.cpp.
References BB, createCallHelper(), llvm::Intrinsic::getDeclaration(), getInt1(), getInt32(), llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), llvm::Value::getType(), llvm::LLVMContext::MD_alias_scope, llvm::LLVMContext::MD_noalias, llvm::LLVMContext::MD_tbaa, llvm::LibFunc::memset, and llvm::Instruction::setMetadata().
LLVMContext& llvm::IRBuilderBase::getContext | ( | ) | const [inline] |
Definition at line 79 of file IRBuilder.h.
References Context.
Referenced by foldSelectICmpAnd(), and generateUnsignedDivisionCode().
DebugLoc llvm::IRBuilderBase::getCurrentDebugLocation | ( | ) | const [inline] |
Get location information used by debugging information.
Definition at line 123 of file IRBuilder.h.
Type * IRBuilderBase::getCurrentFunctionReturnType | ( | ) | const |
Get the return type of the current function that we're emitting into.
Definition at line 37 of file IRBuilder.cpp.
References BB, llvm::BasicBlock::getParent(), and llvm::Function::getReturnType().
Referenced by llvm::IRBuilder< true, TargetFolder >::CreateAggregateRet().
MDNode* llvm::IRBuilderBase::getDefaultFPMathTag | ( | ) | const [inline] |
Get the floating point math metadata being used.
Definition at line 177 of file IRBuilder.h.
References DefaultFPMathTag.
Type* llvm::IRBuilderBase::getDoubleTy | ( | ) | [inline] |
Fetch the type representing a 64-bit floating point value.
Definition at line 341 of file IRBuilder.h.
References Context.
ConstantInt* llvm::IRBuilderBase::getFalse | ( | ) | [inline] |
Get the constant value for i1 false.
Definition at line 261 of file IRBuilder.h.
References Context.
Referenced by llvm::UpgradeIntrinsicCall().
FastMathFlags llvm::IRBuilderBase::getFastMathFlags | ( | ) | const [inline] |
Get the flags to be applied to created floating point ops.
Definition at line 180 of file IRBuilder.h.
References FMF.
Type* llvm::IRBuilderBase::getFloatTy | ( | ) | [inline] |
Fetch the type representing a 32-bit floating point value.
Definition at line 336 of file IRBuilder.h.
References Context.
Type* llvm::IRBuilderBase::getHalfTy | ( | ) | [inline] |
Fetch the type representing a 16-bit floating point value.
Definition at line 331 of file IRBuilder.h.
References Context.
BasicBlock* llvm::IRBuilderBase::GetInsertBlock | ( | ) | const [inline] |
Definition at line 77 of file IRBuilder.h.
References BB.
Referenced by createCallHelper(), llvm::EmitBinaryFloatFnCall(), llvm::EmitFPutC(), llvm::EmitFPutS(), llvm::EmitFWrite(), llvm::AArch64TargetLowering::emitLoadLinked(), llvm::ARMTargetLowering::emitLoadLinked(), llvm::EmitMemChr(), llvm::EmitMemCmp(), llvm::EmitMemCpyChk(), llvm::EmitPutChar(), llvm::EmitPutS(), llvm::AArch64TargetLowering::emitStoreConditional(), llvm::ARMTargetLowering::emitStoreConditional(), llvm::EmitStrChr(), llvm::EmitStrCpy(), llvm::EmitStrLen(), llvm::EmitStrNCmp(), llvm::EmitStrNCpy(), llvm::EmitStrNLen(), llvm::EmitUnaryFloatFnCall(), generateUnsignedDivisionCode(), insertSinCosCall(), makeDMB(), saveAndClearIP(), and saveIP().
BasicBlock::iterator llvm::IRBuilderBase::GetInsertPoint | ( | ) | const [inline] |
Definition at line 78 of file IRBuilder.h.
References InsertPt.
Referenced by createCallHelper(), llvm::expandDivision(), llvm::expandRemainder(), generateUnsignedDivisionCode(), saveAndClearIP(), and saveIP().
ConstantInt* llvm::IRBuilderBase::getInt | ( | const APInt & | AI | ) | [inline] |
Get a constant integer value.
Definition at line 292 of file IRBuilder.h.
References Context, and llvm::ConstantInt::get().
ConstantInt* llvm::IRBuilderBase::getInt1 | ( | bool | V | ) | [inline] |
Get a constant value representing either true or false.
Definition at line 251 of file IRBuilder.h.
References llvm::ConstantInt::get(), and getInt1Ty().
Referenced by CreateMemCpy(), CreateMemMove(), and CreateMemSet().
ConstantInt* llvm::IRBuilderBase::getInt16 | ( | uint16_t | C | ) | [inline] |
Get a constant 16-bit value.
Definition at line 271 of file IRBuilder.h.
References llvm::ConstantInt::get(), and getInt16Ty().
IntegerType* llvm::IRBuilderBase::getInt16Ty | ( | ) | [inline] |
Fetch the type representing a 16-bit integer.
Definition at line 311 of file IRBuilder.h.
References Context.
Referenced by getInt16().
IntegerType* llvm::IRBuilderBase::getInt1Ty | ( | ) | [inline] |
Fetch the type representing a single bit.
Definition at line 301 of file IRBuilder.h.
References Context.
Referenced by getInt1().
ConstantInt* llvm::IRBuilderBase::getInt32 | ( | uint32_t | C | ) | [inline] |
Get a constant 32-bit value.
Definition at line 276 of file IRBuilder.h.
References llvm::ConstantInt::get(), and getInt32Ty().
Referenced by CreateMemCpy(), CreateMemMove(), CreateMemSet(), createOrdering(), generateSignedDivisionCode(), generateSignedRemainderCode(), generateUnsignedDivisionCode(), makeDMB(), OptimizeIntegerToVectorInsertions(), OptimizeIntToFloatBitCast(), and llvm::UpgradeIntrinsicCall().
IntegerType* llvm::IRBuilderBase::getInt32Ty | ( | ) | [inline] |
Fetch the type representing a 32-bit integer.
Definition at line 316 of file IRBuilder.h.
References Context.
Referenced by llvm::IRBuilder< true, TargetFolder >::CreateVectorSplat(), llvm::EmitFPutC(), llvm::EmitFPutS(), llvm::EmitMemChr(), llvm::EmitMemCmp(), llvm::EmitPutChar(), llvm::EmitPutS(), llvm::EmitStrChr(), llvm::EmitStrNCmp(), llvm::expandDivisionUpTo32Bits(), llvm::expandRemainderUpTo32Bits(), getInt32(), and insertSinCosCall().
ConstantInt* llvm::IRBuilderBase::getInt64 | ( | uint64_t | C | ) | [inline] |
Get a constant 64-bit value.
Definition at line 281 of file IRBuilder.h.
References llvm::ConstantInt::get(), and getInt64Ty().
Referenced by CreateLifetimeEnd(), CreateLifetimeStart(), CreateMemCpy(), CreateMemMove(), CreateMemSet(), generateSignedDivisionCode(), generateSignedRemainderCode(), generateUnsignedDivisionCode(), and HandleByValArgumentInit().
IntegerType* llvm::IRBuilderBase::getInt64Ty | ( | ) | [inline] |
Fetch the type representing a 64-bit integer.
Definition at line 321 of file IRBuilder.h.
References Context.
Referenced by CreateLifetimeEnd(), CreateLifetimeStart(), llvm::expandDivisionUpTo64Bits(), llvm::expandRemainderUpTo64Bits(), and getInt64().
ConstantInt* llvm::IRBuilderBase::getInt8 | ( | uint8_t | C | ) | [inline] |
Get a constant 8-bit value.
Definition at line 266 of file IRBuilder.h.
References llvm::ConstantInt::get(), and getInt8Ty().
Referenced by llvm::UpgradeIntrinsicCall().
PointerType* llvm::IRBuilderBase::getInt8PtrTy | ( | unsigned | AddrSpace = 0 | ) | [inline] |
Fetch the type representing a pointer to an 8-bit integer value.
Definition at line 351 of file IRBuilder.h.
References Context.
Referenced by llvm::CastToCStr(), llvm::EmitFPutS(), llvm::EmitFWrite(), llvm::EmitMemChr(), llvm::EmitMemCmp(), llvm::EmitMemCpyChk(), llvm::EmitPutS(), llvm::EmitStrChr(), llvm::EmitStrCpy(), llvm::EmitStrLen(), llvm::EmitStrNCmp(), llvm::EmitStrNCpy(), and llvm::EmitStrNLen().
IntegerType* llvm::IRBuilderBase::getInt8Ty | ( | ) | [inline] |
Fetch the type representing an 8-bit integer.
Definition at line 306 of file IRBuilder.h.
References Context.
Referenced by llvm::SimplifyFortifiedLibCalls::fold(), and getInt8().
ConstantInt* llvm::IRBuilderBase::getIntN | ( | unsigned | N, |
uint64_t | C | ||
) | [inline] |
Get a constant N-bit value, zero extended or truncated from a 64-bit value.
Definition at line 287 of file IRBuilder.h.
References llvm::ConstantInt::get(), and getIntNTy().
IntegerType* llvm::IRBuilderBase::getIntNTy | ( | unsigned | N | ) | [inline] |
Fetch the type representing an N-bit integer.
Definition at line 326 of file IRBuilder.h.
References Context.
Referenced by getIntN().
IntegerType* llvm::IRBuilderBase::getIntPtrTy | ( | const DataLayout * | DL, |
unsigned | AddrSpace = 0 |
||
) | [inline] |
Fetch the type representing a pointer to an integer value.
Definition at line 356 of file IRBuilder.h.
References Context, and llvm::DataLayout::getIntPtrType().
ConstantInt* llvm::IRBuilderBase::getTrue | ( | ) | [inline] |
Get the constant value for i1 true.
Definition at line 256 of file IRBuilder.h.
References Context.
Referenced by generateUnsignedDivisionCode().
Type* llvm::IRBuilderBase::getVoidTy | ( | ) | [inline] |
void llvm::IRBuilderBase::restoreIP | ( | InsertPoint | IP | ) | [inline] |
Sets the current insert point to a previously-saved location.
Definition at line 169 of file IRBuilder.h.
References ClearInsertionPoint(), llvm::IRBuilderBase::InsertPoint::getBlock(), llvm::IRBuilderBase::InsertPoint::getPoint(), llvm::IRBuilderBase::InsertPoint::isSet(), and SetInsertPoint().
Referenced by llvm::IRBuilderBase::InsertPointGuard::~InsertPointGuard().
InsertPoint llvm::IRBuilderBase::saveAndClearIP | ( | ) | [inline] |
Returns the current insert point, clearing it in the process.
Definition at line 162 of file IRBuilder.h.
References ClearInsertionPoint(), GetInsertBlock(), and GetInsertPoint().
InsertPoint llvm::IRBuilderBase::saveIP | ( | ) | const [inline] |
Returns the current insert point.
Definition at line 157 of file IRBuilder.h.
References GetInsertBlock(), and GetInsertPoint().
void llvm::IRBuilderBase::SetCurrentDebugLocation | ( | const DebugLoc & | L | ) | [inline] |
Set location information used by debugging information.
Definition at line 118 of file IRBuilder.h.
Referenced by llvm::IRBuilder< true, TargetFolder >::IRBuilder(), llvm::SCEVExpander::replaceCongruentIVs(), SetInsertPoint(), SimplifyTerminatorOnSelect(), TryToSimplifyUncondBranchWithICmpInIt(), and llvm::IRBuilderBase::InsertPointGuard::~InsertPointGuard().
void llvm::IRBuilderBase::SetDefaultFPMathTag | ( | MDNode * | FPMathTag | ) | [inline] |
Set the floating point math metadata to be used.
Definition at line 186 of file IRBuilder.h.
References DefaultFPMathTag.
void llvm::IRBuilderBase::SetFastMathFlags | ( | FastMathFlags | NewFMF | ) | [inline] |
Set the fast-math flags to be used with generated fp-math operators.
Definition at line 189 of file IRBuilder.h.
References FMF.
void llvm::IRBuilderBase::SetInsertPoint | ( | BasicBlock * | TheBB | ) | [inline] |
This specifies that created instructions should be appended to the end of the specified block.
Definition at line 83 of file IRBuilder.h.
References BB, llvm::BasicBlock::end(), and InsertPt.
Referenced by llvm::SCEVExpander::expandCodeFor(), FoldTwoEntryPHINode(), generatedUnsignedRemainderCode(), generateSignedDivisionCode(), generateSignedRemainderCode(), generateUnsignedDivisionCode(), insertSinCosCall(), llvm::IRBuilder< true, TargetFolder >::IRBuilder(), ProcessUAddIdiom(), ProcessUGT_ADDCST_ADD(), ProcessUMulZExtIdiom(), restoreIP(), SetInsertPoint(), SimplifyBranchOnICmpChain(), SimplifyCondBranchToTwoReturns(), llvm::InstCombiner::SliceUpIllegalIntegerPHI(), SwitchToLookupTable(), TryToSimplifyUncondBranchWithICmpInIt(), llvm::UpgradeIntrinsicCall(), and llvm::ObjectSizeOffsetEvaluator::visitPHINode().
void llvm::IRBuilderBase::SetInsertPoint | ( | Instruction * | I | ) | [inline] |
This specifies that created instructions should be inserted before the specified instruction.
Definition at line 90 of file IRBuilder.h.
References BB, llvm::BasicBlock::end(), llvm::Instruction::getDebugLoc(), llvm::Instruction::getParent(), I, InsertPt, and SetCurrentDebugLocation().
void llvm::IRBuilderBase::SetInsertPoint | ( | BasicBlock * | TheBB, |
BasicBlock::iterator | IP | ||
) | [inline] |
This specifies that created instructions should be inserted at the specified point.
Definition at line 99 of file IRBuilder.h.
void llvm::IRBuilderBase::SetInsertPoint | ( | Use & | U | ) | [inline] |
Find the nearest point that dominates this use, and specify that created instructions should be inserted at this point.
Definition at line 106 of file IRBuilder.h.
References llvm::BasicBlock::getTerminator(), llvm::Use::getUser(), and SetInsertPoint().
void llvm::IRBuilderBase::SetInstDebugLocation | ( | Instruction * | I | ) | const [inline] |
If this builder has a current debug location, set it on the specified instruction.
Definition at line 127 of file IRBuilder.h.
References llvm::DebugLoc::isUnknown(), and llvm::Instruction::setDebugLoc().
Referenced by createCallHelper(), and llvm::IRBuilder< true, TargetFolder >::Insert().
BasicBlock* llvm::IRBuilderBase::BB [protected] |
Definition at line 53 of file IRBuilder.h.
Referenced by ClearInsertionPoint(), CreateGlobalString(), CreateLifetimeEnd(), CreateLifetimeStart(), CreateMemCpy(), CreateMemMove(), CreateMemSet(), getCurrentFunctionReturnType(), GetInsertBlock(), llvm::IRBuilder< true, TargetFolder >::Insert(), and SetInsertPoint().
LLVMContext& llvm::IRBuilderBase::Context [protected] |
Definition at line 55 of file IRBuilder.h.
Referenced by llvm::IRBuilder< true, TargetFolder >::CreateAggregateRet(), llvm::IRBuilder< true, TargetFolder >::CreateConstGEP1_32(), llvm::IRBuilder< true, TargetFolder >::CreateConstGEP1_64(), llvm::IRBuilder< true, TargetFolder >::CreateConstGEP2_32(), llvm::IRBuilder< true, TargetFolder >::CreateConstGEP2_64(), llvm::IRBuilder< true, TargetFolder >::CreateConstInBoundsGEP1_32(), llvm::IRBuilder< true, TargetFolder >::CreateConstInBoundsGEP1_64(), llvm::IRBuilder< true, TargetFolder >::CreateConstInBoundsGEP2_32(), llvm::IRBuilder< true, TargetFolder >::CreateConstInBoundsGEP2_64(), llvm::IRBuilder< true, TargetFolder >::CreateFence(), CreateGlobalString(), llvm::IRBuilder< true, TargetFolder >::CreateGlobalStringPtr(), llvm::IRBuilder< true, TargetFolder >::CreatePtrDiff(), llvm::IRBuilder< true, TargetFolder >::CreateRet(), llvm::IRBuilder< true, TargetFolder >::CreateRetVoid(), llvm::IRBuilder< true, TargetFolder >::CreateUnreachable(), getContext(), getDoubleTy(), getFalse(), getFloatTy(), getHalfTy(), getInt(), getInt16Ty(), getInt1Ty(), getInt32Ty(), getInt64Ty(), getInt8PtrTy(), getInt8Ty(), getIntNTy(), getIntPtrTy(), getTrue(), and getVoidTy().
MDNode* llvm::IRBuilderBase::DefaultFPMathTag [protected] |
Definition at line 57 of file IRBuilder.h.
Referenced by getDefaultFPMathTag(), SetDefaultFPMathTag(), and llvm::IRBuilderBase::FastMathFlagGuard::~FastMathFlagGuard().
FastMathFlags llvm::IRBuilderBase::FMF [protected] |
Definition at line 58 of file IRBuilder.h.
Referenced by clearFastMathFlags(), getFastMathFlags(), SetFastMathFlags(), and llvm::IRBuilderBase::FastMathFlagGuard::~FastMathFlagGuard().
BasicBlock::iterator llvm::IRBuilderBase::InsertPt [protected] |
Definition at line 54 of file IRBuilder.h.
Referenced by ClearInsertionPoint(), GetInsertPoint(), llvm::IRBuilder< true, TargetFolder >::Insert(), and SetInsertPoint().