Lines Matching defs:IRB
59 BuilderTy &IRB, ScalarEvolution &SE) {
76 Value *NeededSizeVal = IRB.CreateTypeSize(IndexTy, NeededSize);
89 Value *ObjSize = IRB.CreateSub(Size, Offset);
92 : IRB.CreateICmpULT(Size, Offset);
97 : IRB.CreateICmpULT(ObjSize, NeededSizeVal);
98 Value *Or = IRB.CreateOr(Cmp2, Cmp3);
101 Value *Cmp1 = IRB.CreateICmpSLT(Offset, ConstantInt::get(IndexTy, 0));
102 Or = IRB.CreateOr(Cmp1, Or);
114 static void insertBoundsCheck(Value *Or, BuilderTy &IRB, GetTrapBBT GetTrapBB) {
125 BasicBlock::iterator SplitI = IRB.GetInsertPoint();
134 BranchInst::Create(GetTrapBB(IRB), OldBB);
139 BranchInst::Create(GetTrapBB(IRB), Cont, Or, OldBB);
158 BuilderTy IRB(I.getParent(), BasicBlock::iterator(&I), TargetFolder(DL));
162 ObjSizeEval, IRB, SE);
166 DL, TLI, ObjSizeEval, IRB, SE);
171 DL, TLI, ObjSizeEval, IRB, SE);
175 DL, TLI, ObjSizeEval, IRB, SE);
185 auto GetTrapBB = [&TrapBB](BuilderTy &IRB) {
186 Function *Fn = IRB.GetInsertBlock()->getParent();
187 auto DebugLoc = IRB.getCurrentDebugLocation();
188 IRBuilder<>::InsertPointGuard Guard(IRB);
194 IRB.SetInsertPoint(TrapBB);
202 IRB.CreateCall(F, ConstantInt::get(IRB.getInt8Ty(), Fn->size()));
204 TrapCall = IRB.CreateCall(F, {});
210 IRB.CreateUnreachable();
218 BuilderTy IRB(Inst->getParent(), BasicBlock::iterator(Inst), TargetFolder(DL));
219 insertBoundsCheck(Entry.second, IRB, GetTrapBB);