Lines Matching refs:IRB

133   Value *getStackGuard(IRBuilder<> &IRB, Function &F);
136 void checkStackGuard(IRBuilder<> &IRB, Function &F, Instruction &RI,
157 Value *moveStaticAllocasToUnsafeStack(IRBuilder<> &IRB, Function &F,
169 createStackRestorePoints(IRBuilder<> &IRB, Function &F,
365 Value *SafeStack::getStackGuard(IRBuilder<> &IRB, Function &F) { in getStackGuard() argument
366 Value *StackGuardVar = TL.getIRStackGuard(IRB); in getStackGuard()
371 return IRB.CreateCall(Intrinsic::getDeclaration(M, Intrinsic::stackguard)); in getStackGuard()
374 return IRB.CreateLoad(StackPtrTy, StackGuardVar, "StackGuard"); in getStackGuard()
429 SafeStack::createStackRestorePoints(IRBuilder<> &IRB, Function &F, in createStackRestorePoints() argument
447 DynamicTop = IRB.CreateAlloca(StackPtrTy, /*ArraySize=*/nullptr, in createStackRestorePoints()
449 IRB.CreateStore(StaticTop, DynamicTop); in createStackRestorePoints()
456 IRB.SetInsertPoint(I->getNextNode()); in createStackRestorePoints()
458 DynamicTop ? IRB.CreateLoad(StackPtrTy, DynamicTop) : StaticTop; in createStackRestorePoints()
459 IRB.CreateStore(CurrentTop, UnsafeStackPtr); in createStackRestorePoints()
465 void SafeStack::checkStackGuard(IRBuilder<> &IRB, Function &F, Instruction &RI, in checkStackGuard() argument
467 Value *V = IRB.CreateLoad(StackPtrTy, StackGuardSlot); in checkStackGuard()
468 Value *Cmp = IRB.CreateICmpNE(StackGuard, V); in checkStackGuard()
480 F.getParent()->getOrInsertFunction("__stack_chk_fail", IRB.getVoidTy()); in checkStackGuard()
488 IRBuilder<> &IRB, Function &F, ArrayRef<AllocaInst *> StaticAllocas, in moveStaticAllocasToUnsafeStack() argument
551 IRB.SetInsertPoint(BasePointer->getNextNode()); in moveStaticAllocasToUnsafeStack()
552 BasePointer = cast<Instruction>(IRB.CreateIntToPtr( in moveStaticAllocasToUnsafeStack()
553 IRB.CreateAnd( in moveStaticAllocasToUnsafeStack()
554 IRB.CreatePtrToInt(BasePointer, IntPtrTy), in moveStaticAllocasToUnsafeStack()
559 IRB.SetInsertPoint(BasePointer->getNextNode()); in moveStaticAllocasToUnsafeStack()
563 Value *Off = IRB.CreateGEP(Int8Ty, BasePointer, // BasePointer is i8* in moveStaticAllocasToUnsafeStack()
566 IRB.CreateBitCast(Off, StackGuardSlot->getType(), "StackGuardSlot"); in moveStaticAllocasToUnsafeStack()
582 Value *Off = IRB.CreateGEP(Int8Ty, BasePointer, // BasePointer is i8* in moveStaticAllocasToUnsafeStack()
584 Value *NewArg = IRB.CreateBitCast(Off, Arg->getType(), in moveStaticAllocasToUnsafeStack()
591 IRB.SetInsertPoint(cast<Instruction>(NewArg)->getNextNode()); in moveStaticAllocasToUnsafeStack()
592 IRB.CreateMemCpy(Off, Align, Arg, Arg->getParamAlign(), Size); in moveStaticAllocasToUnsafeStack()
597 IRB.SetInsertPoint(AI); in moveStaticAllocasToUnsafeStack()
645 IRB.SetInsertPoint(BasePointer->getNextNode()); in moveStaticAllocasToUnsafeStack()
648 IRB.CreateGEP(Int8Ty, BasePointer, ConstantInt::get(Int32Ty, -FrameSize), in moveStaticAllocasToUnsafeStack()
650 IRB.CreateStore(StaticTop, UnsafeStackPtr); in moveStaticAllocasToUnsafeStack()
660 IRBuilder<> IRB(AI); in moveDynamicAllocasToUnsafeStack() local
665 ArraySize = IRB.CreateIntCast(ArraySize, IntPtrTy, false); in moveDynamicAllocasToUnsafeStack()
669 Value *Size = IRB.CreateMul(ArraySize, ConstantInt::get(IntPtrTy, TySize)); in moveDynamicAllocasToUnsafeStack()
671 Value *SP = IRB.CreatePtrToInt(IRB.CreateLoad(StackPtrTy, UnsafeStackPtr), in moveDynamicAllocasToUnsafeStack()
673 SP = IRB.CreateSub(SP, Size); in moveDynamicAllocasToUnsafeStack()
679 Value *NewTop = IRB.CreateIntToPtr( in moveDynamicAllocasToUnsafeStack()
680 IRB.CreateAnd(SP, in moveDynamicAllocasToUnsafeStack()
685 IRB.CreateStore(NewTop, UnsafeStackPtr); in moveDynamicAllocasToUnsafeStack()
687 IRB.CreateStore(NewTop, DynamicTop); in moveDynamicAllocasToUnsafeStack()
689 Value *NewAI = IRB.CreatePointerCast(NewTop, AI->getType()); in moveDynamicAllocasToUnsafeStack()
706 IRBuilder<> IRB(II); in moveDynamicAllocasToUnsafeStack() local
707 Instruction *LI = IRB.CreateLoad(StackPtrTy, UnsafeStackPtr); in moveDynamicAllocasToUnsafeStack()
712 IRBuilder<> IRB(II); in moveDynamicAllocasToUnsafeStack() local
713 Instruction *SI = IRB.CreateStore(II->getArgOperand(0), UnsafeStackPtr); in moveDynamicAllocasToUnsafeStack()
787 IRBuilder<> IRB(&F.front(), F.begin()->getFirstInsertionPt()); in run() local
791 IRB.SetCurrentDebugLocation( in run()
796 UnsafeStackPtr = IRB.CreateCall(Fn); in run()
798 UnsafeStackPtr = TL.getSafeStackPointerLocation(IRB); in run()
804 IRB.CreateLoad(StackPtrTy, UnsafeStackPtr, false, "unsafe_stack_ptr"); in run()
812 Value *StackGuard = getStackGuard(IRB, F); in run()
813 StackGuardSlot = IRB.CreateAlloca(StackPtrTy, nullptr); in run()
814 IRB.CreateStore(StackGuard, StackGuardSlot); in run()
825 IRB, F, StaticAllocas, ByValArguments, BasePointer, StackGuardSlot); in run()
834 IRB, F, StackRestorePoints, StaticTop, !DynamicAllocas.empty()); in run()
842 IRB.SetInsertPoint(RI); in run()
843 IRB.CreateStore(BasePointer, UnsafeStackPtr); in run()