Lines Matching refs:IRB

1650 static void speculatePHINodeLoads(IRBuilderTy &IRB, PHINode &PN) {  in speculatePHINodeLoads()  argument
1655 IRB.SetInsertPoint(&PN); in speculatePHINodeLoads()
1656 PHINode *NewPN = IRB.CreatePHI(LoadTy, PN.getNumIncomingValues(), in speculatePHINodeLoads()
1687 IRB.SetInsertPoint(TI); in speculatePHINodeLoads()
1689 LoadInst *Load = IRB.CreateAlignedLoad( in speculatePHINodeLoads()
1794 IRBuilderTy &IRB) { in speculateSelectInstLoads() argument
1803 IRB.SetInsertPoint(&LI); in speculateSelectInstLoads()
1806 IRB.CreateAlignedLoad(LI.getType(), TV, LI.getAlign(), in speculateSelectInstLoads()
1809 IRB.CreateAlignedLoad(LI.getType(), FV, LI.getAlign(), in speculateSelectInstLoads()
1823 Value *V = IRB.CreateSelect(SI.getCondition(), TL, FL, in speculateSelectInstLoads()
1900 IRBuilderTy &IRB, DomTreeUpdater *DTU) { in rewriteSelectInstMemOps() argument
1915 speculateSelectInstLoads(SI, cast<LoadInst>(*I), IRB); in rewriteSelectInstMemOps()
1932 static Value *getAdjustedPtr(IRBuilderTy &IRB, const DataLayout &DL, Value *Ptr, in getAdjustedPtr() argument
1936 Ptr = IRB.CreateInBoundsPtrAdd(Ptr, IRB.getInt(Offset), in getAdjustedPtr()
1938 return IRB.CreatePointerBitCastOrAddrSpaceCast(Ptr, PointerTy, in getAdjustedPtr()
2015 static Value *convertValue(const DataLayout &DL, IRBuilderTy &IRB, Value *V, in convertValue() argument
2032 return IRB.CreateIntToPtr(IRB.CreateBitCast(V, DL.getIntPtrType(NewTy)), in convertValue()
2042 return IRB.CreateBitCast(IRB.CreatePtrToInt(V, DL.getIntPtrType(OldTy)), in convertValue()
2057 return IRB.CreateIntToPtr(IRB.CreatePtrToInt(V, DL.getIntPtrType(OldTy)), in convertValue()
2062 return IRB.CreateBitCast(V, NewTy); in convertValue()
2519 static Value *extractInteger(const DataLayout &DL, IRBuilderTy &IRB, Value *V, in extractInteger() argument
2532 V = IRB.CreateLShr(V, ShAmt, Name + ".shift"); in extractInteger()
2538 V = IRB.CreateTrunc(V, Ty, Name + ".trunc"); in extractInteger()
2544 static Value *insertInteger(const DataLayout &DL, IRBuilderTy &IRB, Value *Old, in insertInteger() argument
2552 V = IRB.CreateZExt(V, IntTy, Name + ".ext"); in insertInteger()
2563 V = IRB.CreateShl(V, ShAmt, Name + ".shift"); in insertInteger()
2569 Old = IRB.CreateAnd(Old, Mask, Name + ".mask"); in insertInteger()
2571 V = IRB.CreateOr(Old, V, Name + ".insert"); in insertInteger()
2577 static Value *extractVector(IRBuilderTy &IRB, Value *V, unsigned BeginIndex, in extractVector() argument
2587 V = IRB.CreateExtractElement(V, IRB.getInt32(BeginIndex), in extractVector()
2594 V = IRB.CreateShuffleVector(V, Mask, Name + ".extract"); in extractVector()
2599 static Value *insertVector(IRBuilderTy &IRB, Value *Old, Value *V, in insertVector() argument
2607 V = IRB.CreateInsertElement(Old, V, IRB.getInt32(BeginIndex), in insertVector()
2634 V = IRB.CreateShuffleVector(V, Mask, Name + ".expand"); in insertVector()
2640 Mask2.push_back(IRB.getInt1(i >= BeginIndex && i < EndIndex)); in insertVector()
2642 V = IRB.CreateSelect(ConstantVector::get(Mask2), V, Old, Name + "blend"); in insertVector()
2709 IRBuilderTy IRB; member in __anonc3d49dbe0d11::AllocaSliceRewriter
2717 Type *AccessTy = IRB.getPtrTy(AddrSpace); in getPtrToNewAI()
2718 return IRB.CreateAddrSpaceCast(&NewAI, AccessTy); in getPtrToNewAI()
2744 IRB(NewAI.getContext(), ConstantFolder()) { in AllocaSliceRewriter()
2781 IRB.SetInsertPoint(OldUserI); in visit()
2782 IRB.SetCurrentDebugLocation(OldUserI->getDebugLoc()); in visit()
2783 IRB.getInserter().SetNamePrefix( in visit()
2802 Value *getNewAllocaSlicePtr(IRBuilderTy &IRB, Type *PointerTy) { in getNewAllocaSlicePtr() argument
2829 return getAdjustedPtr(IRB, DL, &NewAI, in getNewAllocaSlicePtr()
2870 LoadInst *Load = IRB.CreateAlignedLoad(NewAI.getAllocatedType(), &NewAI, in rewriteVectorizedLoadInst()
2875 return extractVector(IRB, Load, BeginIndex, EndIndex, "vec"); in rewriteVectorizedLoadInst()
2881 Value *V = IRB.CreateAlignedLoad(NewAI.getAllocatedType(), &NewAI, in rewriteIntegerLoad()
2883 V = convertValue(DL, IRB, V, IntTy); in rewriteIntegerLoad()
2888 V = extractInteger(DL, IRB, V, ExtractTy, Offset, "extract"); in rewriteIntegerLoad()
2898 V = IRB.CreateZExt(V, LI.getType()); in rewriteIntegerLoad()
2928 LoadInst *NewLI = IRB.CreateAlignedLoad(NewAI.getAllocatedType(), NewPtr, in visitLoadInst()
2954 V = IRB.CreateZExt(V, TITy, "load.ext"); in visitLoadInst()
2956 V = IRB.CreateShl(V, TITy->getBitWidth() - AITy->getBitWidth(), in visitLoadInst()
2960 Type *LTy = IRB.getPtrTy(AS); in visitLoadInst()
2962 IRB.CreateAlignedLoad(TargetTy, getNewAllocaSlicePtr(IRB, LTy), in visitLoadInst()
2974 V = convertValue(DL, IRB, V, TargetTy); in visitLoadInst()
2985 IRB.SetInsertPoint(&*std::next(BasicBlock::iterator(&LI))); in visitLoadInst()
2991 new LoadInst(LI.getType(), PoisonValue::get(IRB.getPtrTy(AS)), "", in visitLoadInst()
2993 V = insertInteger(DL, IRB, Placeholder, V, NewBeginOffset - BeginOffset, in visitLoadInst()
3024 V = convertValue(DL, IRB, V, SliceTy); in rewriteVectorizedStoreInst()
3027 Value *Old = IRB.CreateAlignedLoad(NewAI.getAllocatedType(), &NewAI, in rewriteVectorizedStoreInst()
3029 V = insertVector(IRB, Old, V, BeginIndex, "vec"); in rewriteVectorizedStoreInst()
3031 StoreInst *Store = IRB.CreateAlignedStore(V, &NewAI, NewAI.getAlign()); in rewriteVectorizedStoreInst()
3050 Value *Old = IRB.CreateAlignedLoad(NewAI.getAllocatedType(), &NewAI, in rewriteIntegerStore()
3052 Old = convertValue(DL, IRB, Old, IntTy); in rewriteIntegerStore()
3055 V = insertInteger(DL, IRB, Old, SI.getValueOperand(), Offset, "insert"); in rewriteIntegerStore()
3057 V = convertValue(DL, IRB, V, NewAllocaTy); in rewriteIntegerStore()
3058 StoreInst *Store = IRB.CreateAlignedStore(V, &NewAI, NewAI.getAlign()); in rewriteIntegerStore()
3094 V = extractInteger(DL, IRB, V, NarrowTy, NewBeginOffset - BeginOffset, in visitStoreInst()
3107 V = convertValue(DL, IRB, V, NewAllocaTy); in visitStoreInst()
3112 IRB.CreateAlignedStore(V, NewPtr, NewAI.getAlign(), SI.isVolatile()); in visitStoreInst()
3115 Value *NewPtr = getNewAllocaSlicePtr(IRB, IRB.getPtrTy(AS)); in visitStoreInst()
3117 IRB.CreateAlignedStore(V, NewPtr, getSliceAlign(), SI.isVolatile()); in visitStoreInst()
3158 V = IRB.CreateMul( in getIntegerSplat()
3159 IRB.CreateZExt(V, SplatIntTy, "zext"), in getIntegerSplat()
3160 IRB.CreateUDiv(Constant::getAllOnesValue(SplatIntTy), in getIntegerSplat()
3161 IRB.CreateZExt(Constant::getAllOnesValue(V->getType()), in getIntegerSplat()
3169 V = IRB.CreateVectorSplat(NumElements, V, "vsplat"); in getVectorSplat()
3185 II.setDest(getNewAllocaSlicePtr(IRB, OldPtr->getType())); in visitMemSetInst()
3225 MemIntrinsic *New = cast<MemIntrinsic>(IRB.CreateMemSet( in visitMemSetInst()
3226 getNewAllocaSlicePtr(IRB, OldPtr->getType()), II.getValue(), Size, in visitMemSetInst()
3258 Splat = convertValue(DL, IRB, Splat, ElementTy); in visitMemSetInst()
3262 Value *Old = IRB.CreateAlignedLoad(NewAI.getAllocatedType(), &NewAI, in visitMemSetInst()
3264 V = insertVector(IRB, Old, Splat, BeginIndex, "vec"); in visitMemSetInst()
3275 Value *Old = IRB.CreateAlignedLoad(NewAI.getAllocatedType(), &NewAI, in visitMemSetInst()
3277 Old = convertValue(DL, IRB, Old, IntTy); in visitMemSetInst()
3279 V = insertInteger(DL, IRB, Old, V, Offset, "insert"); in visitMemSetInst()
3284 V = convertValue(DL, IRB, V, AllocaTy); in visitMemSetInst()
3296 V = convertValue(DL, IRB, V, AllocaTy); in visitMemSetInst()
3301 IRB.CreateAlignedStore(V, NewPtr, NewAI.getAlign(), II.isVolatile()); in visitMemSetInst()
3335 Value *AdjustedPtr = getNewAllocaSlicePtr(IRB, OldPtr->getType()); in visitMemTransferInst()
3412 OtherPtr = getAdjustedPtr(IRB, DL, OtherPtr, OtherOffset, OtherPtrTy, in visitMemTransferInst()
3415 Value *OurPtr = getNewAllocaSlicePtr(IRB, OldPtr->getType()); in visitMemTransferInst()
3433 CallInst *New = IRB.CreateMemCpy(DestPtr, DestAlign, SrcPtr, SrcAlign, in visitMemTransferInst()
3475 Value *AdjPtr = getAdjustedPtr(IRB, DL, OtherPtr, OtherOffset, OtherPtrTy, in visitMemTransferInst()
3495 Src = IRB.CreateAlignedLoad(NewAI.getAllocatedType(), &NewAI, in visitMemTransferInst()
3497 Src = extractVector(IRB, Src, BeginIndex, EndIndex, "vec"); in visitMemTransferInst()
3499 Src = IRB.CreateAlignedLoad(NewAI.getAllocatedType(), &NewAI, in visitMemTransferInst()
3501 Src = convertValue(DL, IRB, Src, IntTy); in visitMemTransferInst()
3503 Src = extractInteger(DL, IRB, Src, SubIntTy, Offset, "extract"); in visitMemTransferInst()
3505 LoadInst *Load = IRB.CreateAlignedLoad(OtherTy, SrcPtr, SrcAlign, in visitMemTransferInst()
3515 Value *Old = IRB.CreateAlignedLoad(NewAI.getAllocatedType(), &NewAI, in visitMemTransferInst()
3517 Src = insertVector(IRB, Old, Src, BeginIndex, "vec"); in visitMemTransferInst()
3519 Value *Old = IRB.CreateAlignedLoad(NewAI.getAllocatedType(), &NewAI, in visitMemTransferInst()
3521 Old = convertValue(DL, IRB, Old, IntTy); in visitMemTransferInst()
3523 Src = insertInteger(DL, IRB, Old, Src, Offset, "insert"); in visitMemTransferInst()
3524 Src = convertValue(DL, IRB, Src, NewAllocaTy); in visitMemTransferInst()
3528 IRB.CreateAlignedStore(Src, DstPtr, DstAlign, II.isVolatile())); in visitMemTransferInst()
3586 Type *PointerTy = IRB.getPtrTy(OldPtr->getType()->getPointerAddressSpace()); in visitIntrinsicInst()
3587 Value *Ptr = getNewAllocaSlicePtr(IRB, PointerTy); in visitIntrinsicInst()
3590 New = IRB.CreateLifetimeStart(Ptr, Size); in visitIntrinsicInst()
3592 New = IRB.CreateLifetimeEnd(Ptr, Size); in visitIntrinsicInst()
3638 IRBuilderBase::InsertPointGuard Guard(IRB); in visitPHINode()
3640 IRB.SetInsertPoint(OldPtr->getParent(), in visitPHINode()
3643 IRB.SetInsertPoint(OldPtr); in visitPHINode()
3644 IRB.SetCurrentDebugLocation(OldPtr->getDebugLoc()); in visitPHINode()
3646 Value *NewPtr = getNewAllocaSlicePtr(IRB, OldPtr->getType()); in visitPHINode()
3670 Value *NewPtr = getNewAllocaSlicePtr(IRB, OldPtr->getType()); in visitSelectInst()
3713 IRBuilderTy &IRB; member in __anonc3d49dbe0d11::AggLoadStoreRewriter
3716 AggLoadStoreRewriter(const DataLayout &DL, IRBuilderTy &IRB) in AggLoadStoreRewriter() argument
3717 : DL(DL), IRB(IRB) {} in AggLoadStoreRewriter()
3748 IRBuilderTy &IRB; member in __anonc3d49dbe0d11::AggLoadStoreRewriter::OpSplitter
3775 Align BaseAlign, const DataLayout &DL, IRBuilderTy &IRB) in OpSplitter() argument
3776 : IRB(IRB), GEPIndices(1, IRB.getInt32(0)), Ptr(Ptr), BaseTy(BaseTy), in OpSplitter()
3778 IRB.SetInsertPoint(InsertionPoint); in OpSplitter()
3809 GEPIndices.push_back(IRB.getInt32(Idx)); in emitSplitOps()
3824 GEPIndices.push_back(IRB.getInt32(Idx)); in emitSplitOps()
3841 IRBuilderTy &IRB) in LoadOpSplitter()
3843 IRB), in LoadOpSplitter()
3852 IRB.CreateInBoundsGEP(BaseTy, Ptr, GEPIndices, Name + ".gep"); in emitFunc()
3854 IRB.CreateAlignedLoad(Ty, GEP, Alignment, Name + ".load"); in emitFunc()
3862 Agg = IRB.CreateInsertValue(Agg, Load, Indices, Name + ".insert"); in emitFunc()
3875 getAdjustedAlignment(&LI, 0), DL, IRB); in visitLoadInst()
3887 const DataLayout &DL, IRBuilderTy &IRB) in StoreOpSplitter()
3889 DL, IRB), in StoreOpSplitter()
3902 IRB.CreateExtractValue(Agg, Indices, Name + ".extract"); in emitFunc()
3904 IRB.CreateInBoundsGEP(BaseTy, Ptr, GEPIndices, Name + ".gep"); in emitFunc()
3906 IRB.CreateAlignedStore(ExtractValue, InBoundsGEP, Alignment); in emitFunc()
3946 getAdjustedAlignment(&SI, 0), DL, IRB); in visitStoreInst()
3977 IRB.SetInsertPoint(&GEPI); in foldGEPSelect()
3983 Value *NTrue = IRB.CreateGEP(Ty, True, Index, True->getName() + ".sroa.gep", in foldGEPSelect()
3988 Value *NFalse = IRB.CreateGEP(Ty, False, Index, in foldGEPSelect()
3991 Value *NSel = IRB.CreateSelect(Sel->getCondition(), NTrue, NFalse, in foldGEPSelect()
4029 IRB.SetInsertPoint(GEPI.getParent(), GEPI.getParent()->getFirstNonPHIIt()); in foldGEPPhi()
4030 PHINode *NewPN = IRB.CreatePHI(GEPI.getType(), PHI->getNumIncomingValues(), in foldGEPPhi()
4041 IRB.SetInsertPoint(In->getParent(), std::next(In->getIterator())); in foldGEPPhi()
4043 NewVal = IRB.CreateGEP(Ty, In, Index, In->getName() + ".sroa.gep", in foldGEPPhi()
4442 IRBuilderTy IRB(&AI); in presplitLoadsAndStores() local
4477 IRB.SetInsertPoint(LI); in presplitLoadsAndStores()
4487 LoadInst *PLoad = IRB.CreateAlignedLoad( in presplitLoadsAndStores()
4489 getAdjustedPtr(IRB, DL, BasePtr, in presplitLoadsAndStores()
4534 IRB.SetInsertPoint(SI); in presplitLoadsAndStores()
4544 StoreInst *PStore = IRB.CreateAlignedStore( in presplitLoadsAndStores()
4546 getAdjustedPtr(IRB, DL, StoreBasePtr, in presplitLoadsAndStores()
4629 IRB.SetInsertPoint(LI); in presplitLoadsAndStores()
4631 PLoad = IRB.CreateAlignedLoad( in presplitLoadsAndStores()
4633 getAdjustedPtr(IRB, DL, LoadBasePtr, in presplitLoadsAndStores()
4643 IRB.SetInsertPoint(SI); in presplitLoadsAndStores()
4645 StoreInst *PStore = IRB.CreateAlignedStore( in presplitLoadsAndStores()
4647 getAdjustedPtr(IRB, DL, StoreBasePtr, in presplitLoadsAndStores()
5191 IRBuilderTy IRB(&AI); in runOnAlloca() local
5192 AggLoadStoreRewriter AggRewriter(DL, IRB); in runOnAlloca()
5227 speculatePHINodeLoads(IRB, *SpeculatablePHIs.pop_back_val()); in runOnAlloca()
5234 rewriteSelectInstMemOps(*K, V, IRB, PreserveCFG ? nullptr : DTU); in runOnAlloca()