LLVM API Documentation
This provides a uniform API for creating instructions and inserting them into a basic block: either at the end of a BasicBlock, or at a specific iterator location in a block. More...
#include <IRBuilder.h>
This provides a uniform API for creating instructions and inserting them into a basic block: either at the end of a BasicBlock, or at a specific iterator location in a block.
Note that the builder does not expose the full generality of LLVM instructions. For access to extra instruction properties, use the mutators (e.g. setVolatile) on the instructions after they have been created. Convenience state exists to specify fast-math flags and fp-math tags.
The first template argument handles whether or not to preserve names in the final instruction output. This defaults to on. The second template argument specifies a class to use for creating constants. This defaults to creating minimally folded constants. The third template argument allows clients to specify custom insertion hooks that are called on every newly created insertion.
Definition at line 454 of file IRBuilder.h.
llvm::IRBuilder< preserveNames, T, Inserter >::IRBuilder | ( | LLVMContext & | C, |
const T & | F, | ||
const Inserter & | I = Inserter() , |
||
MDNode * | FPMathTag = nullptr |
||
) | [inline] |
Definition at line 457 of file IRBuilder.h.
llvm::IRBuilder< preserveNames, T, Inserter >::IRBuilder | ( | LLVMContext & | C, |
MDNode * | FPMathTag = nullptr |
||
) | [inline, explicit] |
Definition at line 462 of file IRBuilder.h.
llvm::IRBuilder< preserveNames, T, Inserter >::IRBuilder | ( | BasicBlock * | TheBB, |
const T & | F, | ||
MDNode * | FPMathTag = nullptr |
||
) | [inline, explicit] |
Definition at line 466 of file IRBuilder.h.
llvm::IRBuilder< preserveNames, T, Inserter >::IRBuilder | ( | BasicBlock * | TheBB, |
MDNode * | FPMathTag = nullptr |
||
) | [inline, explicit] |
Definition at line 471 of file IRBuilder.h.
llvm::IRBuilder< preserveNames, T, Inserter >::IRBuilder | ( | Instruction * | IP, |
MDNode * | FPMathTag = nullptr |
||
) | [inline, explicit] |
Definition at line 476 of file IRBuilder.h.
llvm::IRBuilder< preserveNames, T, Inserter >::IRBuilder | ( | Use & | U, |
MDNode * | FPMathTag = nullptr |
||
) | [inline, explicit] |
Definition at line 482 of file IRBuilder.h.
llvm::IRBuilder< preserveNames, T, Inserter >::IRBuilder | ( | BasicBlock * | TheBB, |
BasicBlock::iterator | IP, | ||
const T & | F, | ||
MDNode * | FPMathTag = nullptr |
||
) | [inline] |
Definition at line 488 of file IRBuilder.h.
llvm::IRBuilder< preserveNames, T, Inserter >::IRBuilder | ( | BasicBlock * | TheBB, |
BasicBlock::iterator | IP, | ||
MDNode * | FPMathTag = nullptr |
||
) | [inline] |
Definition at line 494 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateAdd | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" , |
||
bool | HasNUW = false , |
||
bool | HasNSW = false |
||
) | [inline] |
Definition at line 648 of file IRBuilder.h.
Referenced by convertMemSetToLoop(), convertTransferToLoop(), llvm::IRBuilder< true, TargetFolder >::CreateNSWAdd(), llvm::IRBuilder< true, TargetFolder >::CreateNUWAdd(), EvaluateGEPOffsetExpression(), foldSelectICmpAnd(), foldUDivShl(), generateUnsignedDivisionCode(), performAtomicOp(), TurnSwitchRangeIntoICmp(), and llvm::ObjectSizeOffsetEvaluator::visitGEPOperator().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateAddrSpaceCast | ( | Value * | V, |
Type * | DestTy, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1178 of file IRBuilder.h.
ReturnInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateAggregateRet | ( | Value *const * | retVals, |
unsigned | N | ||
) | [inline] |
Create a sequence of N insertvalue instructions, with one Value from the retVals array each, that build a aggregate return value one value at a time, and a ret instruction to return the resulting aggregate value.
This is a convenience function for code that uses aggregate return values as a vehicle for having multiple return values.
Definition at line 552 of file IRBuilder.h.
LoadInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateAlignedLoad | ( | Value * | Ptr, |
unsigned | Align, | ||
const char * | Name | ||
) | [inline] |
Definition at line 932 of file IRBuilder.h.
LoadInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateAlignedLoad | ( | Value * | Ptr, |
unsigned | Align, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 937 of file IRBuilder.h.
LoadInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateAlignedLoad | ( | Value * | Ptr, |
unsigned | Align, | ||
bool | isVolatile, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 943 of file IRBuilder.h.
StoreInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateAlignedStore | ( | Value * | Val, |
Value * | Ptr, | ||
unsigned | Align, | ||
bool | isVolatile = false |
||
) | [inline] |
Definition at line 949 of file IRBuilder.h.
AllocaInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateAlloca | ( | Type * | Ty, |
Value * | ArraySize = nullptr , |
||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 911 of file IRBuilder.h.
Referenced by llvm::InstCombiner::visitAllocaInst().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateAnd | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 822 of file IRBuilder.h.
Referenced by checkForNegativeOperand(), llvm::IRBuilder< true, TargetFolder >::CreateAnd(), foldLogOpOfMaskedICmps(), foldSelectICmpAndOr(), generateUnsignedDivisionCode(), GetShiftedValue(), llvm::IntrinsicLowering::LowerIntrinsicCall(), performAtomicOp(), ProcessUMulZExtIdiom(), and llvm::UnrollRuntimeLoopProlog().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateAnd | ( | Value * | LHS, |
const APInt & | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 831 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateAnd | ( | Value * | LHS, |
uint64_t | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 834 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateAShr | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" , |
||
bool | isExact = false |
||
) | [inline] |
Definition at line 804 of file IRBuilder.h.
Referenced by llvm::IRBuilder< true, TargetFolder >::CreateAShr(), generateSignedDivisionCode(), generateSignedRemainderCode(), and generateUnsignedDivisionCode().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateAShr | ( | Value * | LHS, |
const APInt & | RHS, | ||
const Twine & | Name = "" , |
||
bool | isExact = false |
||
) | [inline] |
Definition at line 813 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateAShr | ( | Value * | LHS, |
uint64_t | RHS, | ||
const Twine & | Name = "" , |
||
bool | isExact = false |
||
) | [inline] |
Definition at line 817 of file IRBuilder.h.
AtomicCmpXchgInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateAtomicCmpXchg | ( | Value * | Ptr, |
Value * | Cmp, | ||
Value * | New, | ||
AtomicOrdering | SuccessOrdering, | ||
AtomicOrdering | FailureOrdering, | ||
SynchronizationScope | SynchScope = CrossThread |
||
) | [inline] |
Definition at line 961 of file IRBuilder.h.
AtomicRMWInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateAtomicRMW | ( | AtomicRMWInst::BinOp | Op, |
Value * | Ptr, | ||
Value * | Val, | ||
AtomicOrdering | Ordering, | ||
SynchronizationScope | SynchScope = CrossThread |
||
) | [inline] |
Definition at line 968 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateBinOp | ( | Instruction::BinaryOps | Opc, |
Value * | LHS, | ||
Value * | RHS, | ||
const Twine & | Name = "" , |
||
MDNode * | FPMathTag = nullptr |
||
) | [inline] |
Definition at line 867 of file IRBuilder.h.
Referenced by CreateBinOpAsGiven(), createReplacementInstr(), llvm::FoldBranchToCommonDest(), FoldOperationIntoSelectOperand(), and tryFactorization().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateBitCast | ( | Value * | V, |
Type * | DestTy, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1174 of file IRBuilder.h.
Referenced by llvm::CastToCStr(), createCast(), llvm::AArch64TargetLowering::emitLoadLinked(), llvm::ARMTargetLowering::emitLoadLinked(), llvm::AArch64TargetLowering::emitStoreConditional(), llvm::ARMTargetLowering::emitStoreConditional(), llvm::InlineFunction(), OptimizeIntToFloatBitCast(), OptimizeVectorResize(), tryPromoteAllocaToVector(), and llvm::UpgradeIntrinsicCall().
BranchInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateBr | ( | BasicBlock * | Dest | ) | [inline] |
Create an unconditional 'br label X' instruction.
Definition at line 560 of file IRBuilder.h.
Referenced by llvm::ConstantFoldTerminator(), FoldTwoEntryPHINode(), generateUnsignedDivisionCode(), removeUndefIntroducingPredecessor(), SimplifyTerminatorOnSelect(), SwitchToLookupTable(), and TryToSimplifyUncondBranchWithICmpInIt().
CallInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateCall | ( | Value * | Callee, |
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1361 of file IRBuilder.h.
Referenced by llvm::AArch64TargetLowering::emitLoadLinked(), llvm::ARMTargetLowering::emitLoadLinked(), llvm::EmitPutChar(), llvm::EmitPutS(), llvm::EmitStrLen(), llvm::EmitUnaryFloatFnCall(), insertSinCosCall(), makeDMB(), and llvm::UpgradeIntrinsicCall().
CallInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateCall | ( | Value * | Callee, |
Value * | Arg, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1364 of file IRBuilder.h.
CallInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateCall | ( | Value * | Callee, |
ArrayRef< Value * > | Args, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1388 of file IRBuilder.h.
CallInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateCall2 | ( | Value * | Callee, |
Value * | Arg1, | ||
Value * | Arg2, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1367 of file IRBuilder.h.
Referenced by llvm::EmitBinaryFloatFnCall(), llvm::EmitFPutC(), llvm::EmitFPutS(), llvm::AArch64TargetLowering::emitStoreConditional(), llvm::ARMTargetLowering::emitStoreConditional(), llvm::EmitStrChr(), llvm::EmitStrCpy(), llvm::EmitStrNLen(), generateUnsignedDivisionCode(), ProcessUAddIdiom(), ProcessUGT_ADDCST_ADD(), ProcessUMulZExtIdiom(), and llvm::UpgradeIntrinsicCall().
CallInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateCall3 | ( | Value * | Callee, |
Value * | Arg1, | ||
Value * | Arg2, | ||
Value * | Arg3, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1372 of file IRBuilder.h.
Referenced by llvm::EmitMemChr(), llvm::EmitMemCmp(), llvm::AArch64TargetLowering::emitStoreConditional(), llvm::ARMTargetLowering::emitStoreConditional(), llvm::EmitStrNCmp(), llvm::EmitStrNCpy(), and llvm::UpgradeIntrinsicCall().
CallInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateCall4 | ( | Value * | Callee, |
Value * | Arg1, | ||
Value * | Arg2, | ||
Value * | Arg3, | ||
Value * | Arg4, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1377 of file IRBuilder.h.
Referenced by llvm::EmitFWrite(), and llvm::EmitMemCpyChk().
CallInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateCall5 | ( | Value * | Callee, |
Value * | Arg1, | ||
Value * | Arg2, | ||
Value * | Arg3, | ||
Value * | Arg4, | ||
Value * | Arg5, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1382 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateCast | ( | Instruction::CastOps | Op, |
Value * | V, | ||
Type * | DestTy, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1206 of file IRBuilder.h.
Referenced by llvm::IRBuilder< true, TargetFolder >::CreateAddrSpaceCast(), llvm::IRBuilder< true, TargetFolder >::CreateBitCast(), llvm::IRBuilder< true, TargetFolder >::CreateFPExt(), llvm::IRBuilder< true, TargetFolder >::CreateFPToSI(), llvm::IRBuilder< true, TargetFolder >::CreateFPToUI(), llvm::IRBuilder< true, TargetFolder >::CreateFPTrunc(), llvm::IRBuilder< true, TargetFolder >::CreateIntToPtr(), llvm::IRBuilder< true, TargetFolder >::CreatePtrToInt(), createReplacementInstr(), llvm::IRBuilder< true, TargetFolder >::CreateSExt(), llvm::IRBuilder< true, TargetFolder >::CreateSIToFP(), llvm::IRBuilder< true, TargetFolder >::CreateTrunc(), llvm::IRBuilder< true, TargetFolder >::CreateUIToFP(), llvm::IRBuilder< true, TargetFolder >::CreateZExt(), FoldOperationIntoSelectOperand(), and InstCombineStoreToCast().
BranchInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateCondBr | ( | Value * | Cond, |
BasicBlock * | True, | ||
BasicBlock * | False, | ||
MDNode * | BranchWeights = nullptr |
||
) | [inline] |
Create a conditional 'br Cond, TrueDest, FalseDest' instruction.
Definition at line 566 of file IRBuilder.h.
Referenced by llvm::ConstantFoldTerminator(), convertMemSetToLoop(), convertTransferToLoop(), generateUnsignedDivisionCode(), SimplifyBranchOnICmpChain(), SimplifyTerminatorOnSelect(), SwitchToLookupTable(), and TurnSwitchRangeIntoICmp().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateConstGEP1_32 | ( | Value * | Ptr, |
unsigned | Idx0, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1011 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateConstGEP1_64 | ( | Value * | Ptr, |
uint64_t | Idx0, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1052 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateConstGEP2_32 | ( | Value * | Ptr, |
unsigned | Idx0, | ||
unsigned | Idx1, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1028 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateConstGEP2_64 | ( | Value * | Ptr, |
uint64_t | Idx0, | ||
uint64_t | Idx1, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1069 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateConstInBoundsGEP1_32 | ( | Value * | Ptr, |
unsigned | Idx0, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1019 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateConstInBoundsGEP1_64 | ( | Value * | Ptr, |
uint64_t | Idx0, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1060 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateConstInBoundsGEP2_32 | ( | Value * | Ptr, |
unsigned | Idx0, | ||
unsigned | Idx1, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1040 of file IRBuilder.h.
Referenced by llvm::IRBuilder< true, TargetFolder >::CreateStructGEP().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateConstInBoundsGEP2_64 | ( | Value * | Ptr, |
uint64_t | Idx0, | ||
uint64_t | Idx1, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1081 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateExactSDiv | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 735 of file IRBuilder.h.
Referenced by llvm::IRBuilder< true, TargetFolder >::CreatePtrDiff().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateExactUDiv | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 723 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateExtractElement | ( | Value * | Vec, |
Value * | Idx, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1406 of file IRBuilder.h.
Referenced by insertSinCosCall(), and tryPromoteAllocaToVector().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateExtractInteger | ( | const DataLayout & | DL, |
Value * | From, | ||
IntegerType * | ExtractedTy, | ||
uint64_t | Offset, | ||
const Twine & | Name | ||
) | [inline] |
Return a value that has been extracted from a larger integer type.
Definition at line 1505 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateExtractValue | ( | Value * | Agg, |
ArrayRef< unsigned > | Idxs, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1432 of file IRBuilder.h.
Referenced by createCast(), llvm::AArch64TargetLowering::emitLoadLinked(), llvm::ARMTargetLowering::emitLoadLinked(), insertSinCosCall(), ProcessUAddIdiom(), ProcessUGT_ADDCST_ADD(), and ProcessUMulZExtIdiom().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateFAdd | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" , |
||
MDNode * | FPMathTag = nullptr |
||
) | [inline] |
Definition at line 662 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateFCmp | ( | CmpInst::Predicate | P, |
Value * | LHS, | ||
Value * | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1344 of file IRBuilder.h.
Referenced by llvm::IRBuilder< true, TargetFolder >::CreateFCmpOEQ(), llvm::IRBuilder< true, TargetFolder >::CreateFCmpOGE(), llvm::IRBuilder< true, TargetFolder >::CreateFCmpOGT(), llvm::IRBuilder< true, TargetFolder >::CreateFCmpOLE(), llvm::IRBuilder< true, TargetFolder >::CreateFCmpOLT(), llvm::IRBuilder< true, TargetFolder >::CreateFCmpONE(), llvm::IRBuilder< true, TargetFolder >::CreateFCmpORD(), llvm::IRBuilder< true, TargetFolder >::CreateFCmpUEQ(), llvm::IRBuilder< true, TargetFolder >::CreateFCmpUGE(), llvm::IRBuilder< true, TargetFolder >::CreateFCmpUGT(), llvm::IRBuilder< true, TargetFolder >::CreateFCmpULE(), llvm::IRBuilder< true, TargetFolder >::CreateFCmpULT(), llvm::IRBuilder< true, TargetFolder >::CreateFCmpUNE(), llvm::IRBuilder< true, TargetFolder >::CreateFCmpUNO(), createMinMaxOp(), and getFCmpValue().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateFCmpOEQ | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1294 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateFCmpOGE | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1300 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateFCmpOGT | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1297 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateFCmpOLE | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1306 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateFCmpOLT | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1303 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateFCmpONE | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1309 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateFCmpORD | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1312 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateFCmpUEQ | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1318 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateFCmpUGE | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1324 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateFCmpUGT | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1321 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateFCmpULE | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1330 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateFCmpULT | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1327 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateFCmpUNE | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1333 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateFCmpUNO | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1315 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateFDiv | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" , |
||
MDNode * | FPMathTag = nullptr |
||
) | [inline] |
Definition at line 738 of file IRBuilder.h.
FenceInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateFence | ( | AtomicOrdering | Ordering, |
SynchronizationScope | SynchScope = CrossThread , |
||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 955 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateFMul | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" , |
||
MDNode * | FPMathTag = nullptr |
||
) | [inline] |
Definition at line 706 of file IRBuilder.h.
Referenced by buildMultiplyTree().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateFNeg | ( | Value * | V, |
const Twine & | Name = "" , |
||
MDNode * | FPMathTag = nullptr |
||
) | [inline] |
Definition at line 894 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateFPCast | ( | Value * | V, |
Type * | DestTy, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1251 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateFPExt | ( | Value * | V, |
Type * | DestTy, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1163 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateFPToSI | ( | Value * | V, |
Type * | DestTy, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1150 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateFPToUI | ( | Value * | V, |
Type * | DestTy, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1147 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateFPTrunc | ( | Value * | V, |
Type * | DestTy, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1159 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateFRem | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" , |
||
MDNode * | FPMathTag = nullptr |
||
) | [inline] |
Definition at line 758 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateFSub | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" , |
||
MDNode * | FPMathTag = nullptr |
||
) | [inline] |
Definition at line 684 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateGEP | ( | Value * | Ptr, |
ArrayRef< Value * > | IdxList, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 973 of file IRBuilder.h.
Referenced by convertMemSetToLoop(), convertTransferToLoop(), and genLoopLimit().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateGEP | ( | Value * | Ptr, |
Value * | Idx, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 999 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateGlobalStringPtr | ( | StringRef | Str, |
const Twine & | Name = "" |
||
) | [inline] |
Same as CreateGlobalString, but return a pointer with "i8*" type instead of a pointer to array of i8.
Definition at line 1099 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateICmp | ( | CmpInst::Predicate | P, |
Value * | LHS, | ||
Value * | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1337 of file IRBuilder.h.
Referenced by llvm::IRBuilder< true, TargetFolder >::CreateICmpEQ(), llvm::IRBuilder< true, TargetFolder >::CreateICmpNE(), llvm::IRBuilder< true, TargetFolder >::CreateICmpSGE(), llvm::IRBuilder< true, TargetFolder >::CreateICmpSGT(), llvm::IRBuilder< true, TargetFolder >::CreateICmpSLE(), llvm::IRBuilder< true, TargetFolder >::CreateICmpSLT(), llvm::IRBuilder< true, TargetFolder >::CreateICmpUGE(), llvm::IRBuilder< true, TargetFolder >::CreateICmpUGT(), llvm::IRBuilder< true, TargetFolder >::CreateICmpULE(), llvm::IRBuilder< true, TargetFolder >::CreateICmpULT(), createMinMaxOp(), foldLogOpOfMaskedICmps(), FoldOperationIntoSelectOperand(), and getNewICmpValue().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateICmpEQ | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1263 of file IRBuilder.h.
Referenced by llvm::ConstantFoldTerminator(), llvm::IRBuilder< true, TargetFolder >::CreateIsNull(), generateUnsignedDivisionCode(), and llvm::UpgradeIntrinsicCall().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateICmpNE | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1266 of file IRBuilder.h.
Referenced by llvm::IRBuilder< true, TargetFolder >::CreateIsNotNull().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateICmpSGE | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1284 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateICmpSGT | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1281 of file IRBuilder.h.
Referenced by performAtomicOp(), and llvm::UpgradeIntrinsicCall().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateICmpSLE | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1290 of file IRBuilder.h.
Referenced by performAtomicOp().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateICmpSLT | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1287 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateICmpUGE | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1272 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateICmpUGT | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1269 of file IRBuilder.h.
Referenced by generateUnsignedDivisionCode(), and performAtomicOp().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateICmpULE | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1278 of file IRBuilder.h.
Referenced by performAtomicOp().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateICmpULT | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1275 of file IRBuilder.h.
Referenced by convertMemSetToLoop(), convertTransferToLoop(), foldUDivNegCst(), SwitchToLookupTable(), and TurnSwitchRangeIntoICmp().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateInBoundsGEP | ( | Value * | Ptr, |
ArrayRef< Value * > | IdxList, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 986 of file IRBuilder.h.
Referenced by llvm::IRBuilder< true, TargetFolder >::CreateGlobalStringPtr(), createReplacementInstr(), and InstCombineStoreToCast().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateInBoundsGEP | ( | Value * | Ptr, |
Value * | Idx, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1005 of file IRBuilder.h.
IndirectBrInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateIndirectBr | ( | Value * | Addr, |
unsigned | NumDests = 10 |
||
) | [inline] |
Create an indirect branch instruction with the specified address operand, with an optional hint for the number of destinations that will be added (for efficient allocation).
Definition at line 584 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateInsertElement | ( | Value * | Vec, |
Value * | NewElt, | ||
Value * | Idx, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1414 of file IRBuilder.h.
Referenced by llvm::IRBuilder< true, TargetFolder >::CreateVectorSplat(), OptimizeIntegerToVectorInsertions(), tryPromoteAllocaToVector(), and llvm::UpgradeIntrinsicCall().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateInsertValue | ( | Value * | Agg, |
Value * | Val, | ||
ArrayRef< unsigned > | Idxs, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1440 of file IRBuilder.h.
Referenced by llvm::IRBuilder< true, TargetFolder >::CreateAggregateRet(), and createCast().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateIntCast | ( | Value * | V, |
Type * | DestTy, | ||
bool | isSigned, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1237 of file IRBuilder.h.
Referenced by llvm::EmitFPutC(), llvm::EmitPutChar(), EvaluateGEPOffsetExpression(), llvm::SimplifyFortifiedLibCalls::fold(), and llvm::InstCombiner::visitAllocaInst().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateIntToPtr | ( | Value * | V, |
Type * | DestTy, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1170 of file IRBuilder.h.
Referenced by createCast().
InvokeInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateInvoke | ( | Value * | Callee, |
BasicBlock * | NormalDest, | ||
BasicBlock * | UnwindDest, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 588 of file IRBuilder.h.
InvokeInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateInvoke | ( | Value * | Callee, |
BasicBlock * | NormalDest, | ||
BasicBlock * | UnwindDest, | ||
Value * | Arg1, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 593 of file IRBuilder.h.
InvokeInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateInvoke | ( | Value * | Callee, |
BasicBlock * | NormalDest, | ||
BasicBlock * | UnwindDest, | ||
ArrayRef< Value * > | Args, | ||
const Twine & | Name = "" |
||
) | [inline] |
Create an invoke instruction.
Definition at line 608 of file IRBuilder.h.
InvokeInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateInvoke3 | ( | Value * | Callee, |
BasicBlock * | NormalDest, | ||
BasicBlock * | UnwindDest, | ||
Value * | Arg1, | ||
Value * | Arg2, | ||
Value * | Arg3, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 599 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateIsNotNull | ( | Value * | Arg, |
const Twine & | Name = "" |
||
) | [inline] |
Return an i1 value testing if Arg
is not null.
Definition at line 1465 of file IRBuilder.h.
Referenced by llvm::UnrollRuntimeLoopProlog().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateIsNull | ( | Value * | Arg, |
const Twine & | Name = "" |
||
) | [inline] |
Return an i1 value testing if Arg
is null.
Definition at line 1459 of file IRBuilder.h.
Referenced by llvm::UnrollRuntimeLoopProlog().
LandingPadInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateLandingPad | ( | Type * | Ty, |
Value * | PersFn, | ||
unsigned | NumClauses, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1449 of file IRBuilder.h.
LoadInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateLoad | ( | Value * | Ptr, |
const char * | Name | ||
) | [inline] |
Definition at line 917 of file IRBuilder.h.
Referenced by convertTransferToLoop(), llvm::IRBuilder< true, TargetFolder >::CreateAlignedLoad(), InstCombineLoadCast(), tryPromoteAllocaToVector(), llvm::UpgradeIntrinsicCall(), and llvm::InstCombiner::visitLoadInst().
LoadInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateLoad | ( | Value * | Ptr, |
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 920 of file IRBuilder.h.
LoadInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateLoad | ( | Value * | Ptr, |
bool | isVolatile, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 923 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateLShr | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" , |
||
bool | isExact = false |
||
) | [inline] |
Definition at line 786 of file IRBuilder.h.
Referenced by llvm::IRBuilder< true, TargetFolder >::CreateExtractInteger(), llvm::IRBuilder< true, TargetFolder >::CreateLShr(), llvm::AArch64TargetLowering::emitStoreConditional(), llvm::ARMTargetLowering::emitStoreConditional(), foldSelectICmpAnd(), foldSelectICmpAndOr(), generateUnsignedDivisionCode(), GetShiftedValue(), llvm::InstCombiner::SliceUpIllegalIntegerPHI(), and SwitchToLookupTable().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateLShr | ( | Value * | LHS, |
const APInt & | RHS, | ||
const Twine & | Name = "" , |
||
bool | isExact = false |
||
) | [inline] |
Definition at line 795 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateLShr | ( | Value * | LHS, |
uint64_t | RHS, | ||
const Twine & | Name = "" , |
||
bool | isExact = false |
||
) | [inline] |
Definition at line 799 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateMul | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" , |
||
bool | HasNUW = false , |
||
bool | HasNSW = false |
||
) | [inline] |
Definition at line 692 of file IRBuilder.h.
Referenced by buildMultiplyTree(), llvm::IRBuilder< true, TargetFolder >::CreateNSWMul(), llvm::IRBuilder< true, TargetFolder >::CreateNUWMul(), generatedUnsignedRemainderCode(), llvm::ObjectSizeOffsetEvaluator::visitAllocaInst(), and llvm::ObjectSizeOffsetEvaluator::visitCallSite().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateNeg | ( | Value * | V, |
const Twine & | Name = "" , |
||
bool | HasNUW = false , |
||
bool | HasNSW = false |
||
) | [inline] |
Definition at line 879 of file IRBuilder.h.
Referenced by llvm::IRBuilder< true, TargetFolder >::CreateNSWNeg(), and llvm::IRBuilder< true, TargetFolder >::CreateNUWNeg().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateNot | ( | Value * | V, |
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 901 of file IRBuilder.h.
Referenced by llvm::FoldBranchToCommonDest(), performAtomicOp(), and SimplifyCondBranchToCondBranch().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateNSWAdd | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 656 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateNSWMul | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 700 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateNSWNeg | ( | Value * | V, |
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 888 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateNSWSub | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 678 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateNUWAdd | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 659 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateNUWMul | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 703 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateNUWNeg | ( | Value * | V, |
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 891 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateNUWSub | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 681 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateOr | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 838 of file IRBuilder.h.
Referenced by checkForNegativeOperand(), llvm::IRBuilder< true, TargetFolder >::CreateOr(), llvm::AArch64TargetLowering::emitLoadLinked(), llvm::ARMTargetLowering::emitLoadLinked(), foldLogOpOfMaskedICmps(), foldSelectICmpAndOr(), generateUnsignedDivisionCode(), performAtomicOp(), SimplifyCondBranchToCondBranch(), and llvm::UnrollRuntimeLoopProlog().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateOr | ( | Value * | LHS, |
const APInt & | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 847 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateOr | ( | Value * | LHS, |
uint64_t | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 850 of file IRBuilder.h.
PHINode* llvm::IRBuilder< preserveNames, T, Inserter >::CreatePHI | ( | Type * | Ty, |
unsigned | NumReservedValues, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1356 of file IRBuilder.h.
Referenced by convertMemSetToLoop(), convertTransferToLoop(), generateUnsignedDivisionCode(), and llvm::ObjectSizeOffsetEvaluator::visitPHINode().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreatePointerBitCastOrAddrSpaceCast | ( | Value * | V, |
Type * | DestTy, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1223 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreatePointerCast | ( | Value * | V, |
Type * | DestTy, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1214 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreatePtrDiff | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Return the i64 difference between two pointer values, dividing out the size of the pointed-to objects.
This is intended to implement C-style pointer subtraction. As such, the pointers must be appropriately aligned for their element types and pointing into the same object.
Definition at line 1476 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreatePtrToInt | ( | Value * | V, |
Type * | DestTy, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1166 of file IRBuilder.h.
Referenced by createCast(), llvm::IRBuilder< true, TargetFolder >::CreatePtrDiff(), and SimplifyBranchOnICmpChain().
ResumeInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateResume | ( | Value * | Exn | ) | [inline] |
Definition at line 615 of file IRBuilder.h.
ReturnInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateRet | ( | Value * | V | ) | [inline] |
Create a 'ret <val>' instruction.
Definition at line 541 of file IRBuilder.h.
Referenced by llvm::InlineFunction(), SimplifyCondBranchToTwoReturns(), and SwitchToLookupTable().
ReturnInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateRetVoid | ( | ) | [inline] |
Create a 'ret void' instruction.
Definition at line 536 of file IRBuilder.h.
Referenced by SimplifyCondBranchToTwoReturns().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateSDiv | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" , |
||
bool | isExact = false |
||
) | [inline] |
Definition at line 726 of file IRBuilder.h.
Referenced by llvm::IRBuilder< true, TargetFolder >::CreateExactSDiv(), llvm::expandDivisionUpTo32Bits(), llvm::expandDivisionUpTo64Bits(), and insertFastDiv().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateSelect | ( | Value * | C, |
Value * | True, | ||
Value * | False, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1393 of file IRBuilder.h.
Referenced by createMinMaxOp(), FoldTwoEntryPHINode(), generateUnsignedDivisionCode(), HoistThenElseCodeToIf(), performAtomicOp(), SimplifyCondBranchToCondBranch(), SimplifyCondBranchToTwoReturns(), SpeculativelyExecuteBB(), and llvm::ObjectSizeOffsetEvaluator::visitSelectInst().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateSExt | ( | Value * | V, |
Type * | DestTy, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1116 of file IRBuilder.h.
Referenced by llvm::IRBuilder< true, TargetFolder >::CreateSExtOrTrunc(), llvm::expandDivisionUpTo32Bits(), llvm::expandDivisionUpTo64Bits(), llvm::expandRemainderUpTo32Bits(), llvm::expandRemainderUpTo64Bits(), and llvm::UpgradeIntrinsicCall().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateSExtOrBitCast | ( | Value * | V, |
Type * | DestTy, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1190 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateSExtOrTrunc | ( | Value * | V, |
Type * | DestTy, | ||
const Twine & | Name = "" |
||
) | [inline] |
Create a SExt or Trunc from the integer value V to DestTy. Return the value untouched if the type of V is already DestTy.
Definition at line 1135 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateShl | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" , |
||
bool | HasNUW = false , |
||
bool | HasNSW = false |
||
) | [inline] |
Definition at line 767 of file IRBuilder.h.
Referenced by llvm::IRBuilder< true, TargetFolder >::CreateShl(), llvm::AArch64TargetLowering::emitLoadLinked(), llvm::ARMTargetLowering::emitLoadLinked(), foldSelectICmpAnd(), foldSelectICmpAndOr(), generateUnsignedDivisionCode(), GetShiftedValue(), and simplifyValueKnownNonZero().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateShl | ( | Value * | LHS, |
const APInt & | RHS, | ||
const Twine & | Name = "" , |
||
bool | HasNUW = false , |
||
bool | HasNSW = false |
||
) | [inline] |
Definition at line 775 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateShl | ( | Value * | LHS, |
uint64_t | RHS, | ||
const Twine & | Name = "" , |
||
bool | HasNUW = false , |
||
bool | HasNSW = false |
||
) | [inline] |
Definition at line 780 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateShuffleVector | ( | Value * | V1, |
Value * | V2, | ||
Value * | Mask, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1423 of file IRBuilder.h.
Referenced by llvm::IRBuilder< true, TargetFolder >::CreateVectorSplat(), and llvm::UpgradeIntrinsicCall().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateSIToFP | ( | Value * | V, |
Type * | DestTy, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1156 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateSRem | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 752 of file IRBuilder.h.
Referenced by llvm::expandRemainderUpTo32Bits(), and llvm::expandRemainderUpTo64Bits().
StoreInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateStore | ( | Value * | Val, |
Value * | Ptr, | ||
bool | isVolatile = false |
||
) | [inline] |
Definition at line 926 of file IRBuilder.h.
Referenced by convertMemSetToLoop(), convertTransferToLoop(), llvm::IRBuilder< true, TargetFolder >::CreateAlignedStore(), tryPromoteAllocaToVector(), and llvm::UpgradeIntrinsicCall().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateStructGEP | ( | Value * | Ptr, |
unsigned | Idx, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1093 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateSub | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" , |
||
bool | HasNUW = false , |
||
bool | HasNSW = false |
||
) | [inline] |
Definition at line 670 of file IRBuilder.h.
Referenced by checkForNegativeOperand(), llvm::IRBuilder< true, TargetFolder >::CreateNSWSub(), llvm::IRBuilder< true, TargetFolder >::CreateNUWSub(), llvm::IRBuilder< true, TargetFolder >::CreatePtrDiff(), generatedUnsignedRemainderCode(), generateSignedDivisionCode(), generateSignedRemainderCode(), generateUnsignedDivisionCode(), performAtomicOp(), simplifyValueKnownNonZero(), and SwitchToLookupTable().
SwitchInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateSwitch | ( | Value * | V, |
BasicBlock * | Dest, | ||
unsigned | NumCases = 10 , |
||
MDNode * | BranchWeights = nullptr |
||
) | [inline] |
Create a switch instruction with the specified value, default dest, and with a hint for the number of cases that will be added (for efficient allocation).
Definition at line 575 of file IRBuilder.h.
Referenced by SimplifyBranchOnICmpChain().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateTrunc | ( | Value * | V, |
Type * | DestTy, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1110 of file IRBuilder.h.
Referenced by llvm::IRBuilder< true, TargetFolder >::CreateExtractInteger(), llvm::IRBuilder< true, TargetFolder >::CreateSExtOrTrunc(), llvm::IRBuilder< true, TargetFolder >::CreateZExtOrTrunc(), llvm::AArch64TargetLowering::emitStoreConditional(), llvm::ARMTargetLowering::emitStoreConditional(), EvaluateGEPOffsetExpression(), llvm::expandDivisionUpTo32Bits(), llvm::expandDivisionUpTo64Bits(), llvm::expandRemainderUpTo32Bits(), llvm::expandRemainderUpTo64Bits(), ProcessUGT_ADDCST_ADD(), llvm::InstCombiner::SliceUpIllegalIntegerPHI(), SwitchToLookupTable(), truncateIVUse(), and llvm::UpgradeIntrinsicCall().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateTruncOrBitCast | ( | Value * | V, |
Type * | DestTy, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1198 of file IRBuilder.h.
Referenced by llvm::AArch64TargetLowering::emitLoadLinked(), llvm::ARMTargetLowering::emitLoadLinked(), and llvm::SCEVExpander::replaceCongruentIVs().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateUDiv | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" , |
||
bool | isExact = false |
||
) | [inline] |
Definition at line 714 of file IRBuilder.h.
Referenced by llvm::IRBuilder< true, TargetFolder >::CreateExactUDiv(), llvm::expandDivisionUpTo32Bits(), llvm::expandDivisionUpTo64Bits(), generatedUnsignedRemainderCode(), generateSignedDivisionCode(), and insertFastDiv().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateUIToFP | ( | Value * | V, |
Type * | DestTy, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1153 of file IRBuilder.h.
UnreachableInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateUnreachable | ( | ) | [inline] |
Definition at line 619 of file IRBuilder.h.
Referenced by removeUndefIntroducingPredecessor().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateURem | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 746 of file IRBuilder.h.
Referenced by llvm::expandRemainderUpTo32Bits(), llvm::expandRemainderUpTo64Bits(), and generateSignedRemainderCode().
VAArgInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateVAArg | ( | Value * | List, |
Type * | Ty, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1402 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateVectorSplat | ( | unsigned | NumElts, |
Value * | V, | ||
const Twine & | Name = "" |
||
) | [inline] |
Return a vector value that contains.
NumElts
elements. Definition at line 1490 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateXor | ( | Value * | LHS, |
Value * | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 854 of file IRBuilder.h.
Referenced by llvm::IRBuilder< true, TargetFolder >::CreateXor(), foldSelectICmpAnd(), foldSelectICmpAndOr(), generateSignedDivisionCode(), generateSignedRemainderCode(), and performAtomicOp().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateXor | ( | Value * | LHS, |
const APInt & | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 860 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateXor | ( | Value * | LHS, |
uint64_t | RHS, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 863 of file IRBuilder.h.
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateZExt | ( | Value * | V, |
Type * | DestTy, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1113 of file IRBuilder.h.
Referenced by llvm::IRBuilder< true, TargetFolder >::CreateZExtOrTrunc(), llvm::AArch64TargetLowering::emitLoadLinked(), llvm::ARMTargetLowering::emitLoadLinked(), llvm::expandDivisionUpTo32Bits(), llvm::expandDivisionUpTo64Bits(), llvm::expandRemainderUpTo32Bits(), llvm::expandRemainderUpTo64Bits(), foldUDivShl(), ProcessUGT_ADDCST_ADD(), ProcessUMulZExtIdiom(), llvm::UpgradeIntrinsicCall(), and llvm::ObjectSizeOffsetEvaluator::visitCallSite().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateZExtOrBitCast | ( | Value * | V, |
Type * | DestTy, | ||
const Twine & | Name = "" |
||
) | [inline] |
Definition at line 1182 of file IRBuilder.h.
Referenced by llvm::AArch64TargetLowering::emitStoreConditional(), and llvm::ARMTargetLowering::emitStoreConditional().
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateZExtOrTrunc | ( | Value * | V, |
Type * | DestTy, | ||
const Twine & | Name = "" |
||
) | [inline] |
Create a ZExt or Trunc from the integer value V to DestTy. Return the value untouched if the type of V is already DestTy.
Definition at line 1121 of file IRBuilder.h.
Referenced by foldSelectICmpAnd(), foldSelectICmpAndOr(), and SwitchToLookupTable().
const T& llvm::IRBuilder< preserveNames, T, Inserter >::getFolder | ( | ) | [inline] |
Get the constant folder being used.
Definition at line 501 of file IRBuilder.h.
InstTy* llvm::IRBuilder< preserveNames, T, Inserter >::Insert | ( | InstTy * | I, |
const Twine & | Name = "" |
||
) | const [inline] |
Insert and return the specified instruction.
Definition at line 509 of file IRBuilder.h.
Referenced by llvm::IRBuilder< true, TargetFolder >::CreateAdd(), llvm::IRBuilder< true, TargetFolder >::CreateAggregateRet(), llvm::IRBuilder< true, TargetFolder >::CreateAlloca(), llvm::IRBuilder< true, TargetFolder >::CreateAnd(), llvm::IRBuilder< true, TargetFolder >::CreateAShr(), llvm::IRBuilder< true, TargetFolder >::CreateAtomicCmpXchg(), llvm::IRBuilder< true, TargetFolder >::CreateAtomicRMW(), llvm::IRBuilder< true, TargetFolder >::CreateBinOp(), llvm::IRBuilder< true, TargetFolder >::CreateBr(), llvm::IRBuilder< true, TargetFolder >::CreateCall(), llvm::IRBuilder< true, TargetFolder >::CreateCall2(), llvm::IRBuilder< true, TargetFolder >::CreateCall3(), llvm::IRBuilder< true, TargetFolder >::CreateCall4(), llvm::IRBuilder< true, TargetFolder >::CreateCall5(), llvm::IRBuilder< true, TargetFolder >::CreateCast(), llvm::IRBuilder< true, TargetFolder >::CreateCondBr(), 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 >::CreateExtractElement(), llvm::IRBuilder< true, TargetFolder >::CreateExtractValue(), llvm::IRBuilder< true, TargetFolder >::CreateFAdd(), llvm::IRBuilder< true, TargetFolder >::CreateFCmp(), llvm::IRBuilder< true, TargetFolder >::CreateFDiv(), llvm::IRBuilder< true, TargetFolder >::CreateFence(), llvm::IRBuilder< true, TargetFolder >::CreateFMul(), llvm::IRBuilder< true, TargetFolder >::CreateFNeg(), llvm::IRBuilder< true, TargetFolder >::CreateFPCast(), llvm::IRBuilder< true, TargetFolder >::CreateFRem(), llvm::IRBuilder< true, TargetFolder >::CreateFSub(), llvm::IRBuilder< true, TargetFolder >::CreateGEP(), llvm::IRBuilder< true, TargetFolder >::CreateICmp(), llvm::IRBuilder< true, TargetFolder >::CreateInBoundsGEP(), llvm::IRBuilder< true, TargetFolder >::CreateIndirectBr(), llvm::IRBuilder< true, TargetFolder >::CreateInsertElement(), llvm::IRBuilder< true, TargetFolder >::CreateInsertValue(), llvm::IRBuilder< true, TargetFolder >::CreateIntCast(), llvm::IRBuilder< true, TargetFolder >::CreateInvoke(), llvm::IRBuilder< true, TargetFolder >::CreateInvoke3(), llvm::IRBuilder< true, TargetFolder >::CreateLandingPad(), llvm::IRBuilder< true, TargetFolder >::CreateLoad(), llvm::IRBuilder< true, TargetFolder >::CreateLShr(), llvm::IRBuilder< true, TargetFolder >::CreateMul(), llvm::IRBuilder< true, TargetFolder >::CreateNeg(), llvm::IRBuilder< true, TargetFolder >::CreateNot(), llvm::IRBuilder< true, TargetFolder >::CreateOr(), llvm::IRBuilder< true, TargetFolder >::CreatePHI(), llvm::IRBuilder< true, TargetFolder >::CreatePointerBitCastOrAddrSpaceCast(), llvm::IRBuilder< true, TargetFolder >::CreatePointerCast(), llvm::IRBuilder< true, TargetFolder >::CreateResume(), llvm::IRBuilder< true, TargetFolder >::CreateRet(), llvm::IRBuilder< true, TargetFolder >::CreateRetVoid(), llvm::IRBuilder< true, TargetFolder >::CreateSDiv(), llvm::IRBuilder< true, TargetFolder >::CreateSelect(), llvm::IRBuilder< true, TargetFolder >::CreateSExtOrBitCast(), llvm::IRBuilder< true, TargetFolder >::CreateShl(), llvm::IRBuilder< true, TargetFolder >::CreateShuffleVector(), llvm::IRBuilder< true, TargetFolder >::CreateSRem(), llvm::IRBuilder< true, TargetFolder >::CreateStore(), llvm::IRBuilder< true, TargetFolder >::CreateSub(), llvm::IRBuilder< true, TargetFolder >::CreateSwitch(), llvm::IRBuilder< true, TargetFolder >::CreateTruncOrBitCast(), llvm::IRBuilder< true, TargetFolder >::CreateUDiv(), llvm::IRBuilder< true, TargetFolder >::CreateUnreachable(), llvm::IRBuilder< true, TargetFolder >::CreateURem(), llvm::IRBuilder< true, TargetFolder >::CreateVAArg(), llvm::IRBuilder< true, TargetFolder >::CreateXor(), and llvm::IRBuilder< true, TargetFolder >::CreateZExtOrBitCast().
Constant* llvm::IRBuilder< preserveNames, T, Inserter >::Insert | ( | Constant * | C, |
const Twine & | = "" |
||
) | const [inline] |
No-op overload to handle constants.
Definition at line 516 of file IRBuilder.h.
bool llvm::IRBuilder< preserveNames, T, Inserter >::isNamePreserving | ( | ) | const [inline] |
Return true if this builder is configured to actually add the requested names to IR created through it.
Definition at line 505 of file IRBuilder.h.