Lines Matching refs:IRB

203   IRBuilder<> IRB(M.getContext());  in initialize()  local
208 IRB.getVoidTy(), IRB.getInt8PtrTy()); in initialize()
210 M.getOrInsertFunction("__tsan_func_exit", Attr, IRB.getVoidTy()); in initialize()
212 IRB.getVoidTy()); in initialize()
214 M.getOrInsertFunction("__tsan_ignore_thread_end", Attr, IRB.getVoidTy()); in initialize()
215 IntegerType *OrdTy = IRB.getInt32Ty(); in initialize()
222 TsanRead[i] = M.getOrInsertFunction(ReadName, Attr, IRB.getVoidTy(), in initialize()
223 IRB.getInt8PtrTy()); in initialize()
226 TsanWrite[i] = M.getOrInsertFunction(WriteName, Attr, IRB.getVoidTy(), in initialize()
227 IRB.getInt8PtrTy()); in initialize()
231 UnalignedReadName, Attr, IRB.getVoidTy(), IRB.getInt8PtrTy()); in initialize()
235 UnalignedWriteName, Attr, IRB.getVoidTy(), IRB.getInt8PtrTy()); in initialize()
239 VolatileReadName, Attr, IRB.getVoidTy(), IRB.getInt8PtrTy()); in initialize()
243 VolatileWriteName, Attr, IRB.getVoidTy(), IRB.getInt8PtrTy()); in initialize()
248 UnalignedVolatileReadName, Attr, IRB.getVoidTy(), IRB.getInt8PtrTy()); in initialize()
253 UnalignedVolatileWriteName, Attr, IRB.getVoidTy(), IRB.getInt8PtrTy()); in initialize()
257 CompoundRWName, Attr, IRB.getVoidTy(), IRB.getInt8PtrTy()); in initialize()
262 UnalignedCompoundRWName, Attr, IRB.getVoidTy(), IRB.getInt8PtrTy()); in initialize()
280 AtomicStoreName, AL, IRB.getVoidTy(), PtrTy, Ty, OrdTy); in initialize()
326 M.getOrInsertFunction("__tsan_vptr_update", Attr, IRB.getVoidTy(), in initialize()
327 IRB.getInt8PtrTy(), IRB.getInt8PtrTy()); in initialize()
329 IRB.getVoidTy(), IRB.getInt8PtrTy()); in initialize()
334 AL, IRB.getVoidTy(), OrdTy); in initialize()
340 AL, IRB.getVoidTy(), OrdTy); in initialize()
344 M.getOrInsertFunction("memmove", Attr, IRB.getInt8PtrTy(), in initialize()
345 IRB.getInt8PtrTy(), IRB.getInt8PtrTy(), IntptrTy); in initialize()
347 M.getOrInsertFunction("memcpy", Attr, IRB.getInt8PtrTy(), in initialize()
348 IRB.getInt8PtrTy(), IRB.getInt8PtrTy(), IntptrTy); in initialize()
350 M.getOrInsertFunction("memset", Attr, IRB.getInt8PtrTy(), in initialize()
351 IRB.getInt8PtrTy(), IRB.getInt32Ty(), IntptrTy); in initialize()
494 InstrumentationIRBuilder IRB(F.getEntryBlock().getFirstNonPHI()); in InsertRuntimeIgnores() local
495 IRB.CreateCall(TsanIgnoreBegin); in InsertRuntimeIgnores()
581 InstrumentationIRBuilder IRB(F.getEntryBlock().getFirstNonPHI()); in sanitizeFunction() local
582 Value *ReturnAddress = IRB.CreateCall( in sanitizeFunction()
584 IRB.getInt32(0)); in sanitizeFunction()
585 IRB.CreateCall(TsanFuncEntry, ReturnAddress); in sanitizeFunction()
599 InstrumentationIRBuilder IRB(II.Inst); in instrumentLoadOrStore() local
621 StoredValue = IRB.CreateExtractElement( in instrumentLoadOrStore()
622 StoredValue, ConstantInt::get(IRB.getInt32Ty(), 0)); in instrumentLoadOrStore()
624 StoredValue = IRB.CreateIntToPtr(StoredValue, IRB.getInt8PtrTy()); in instrumentLoadOrStore()
626 IRB.CreateCall(TsanVptrUpdate, in instrumentLoadOrStore()
627 {IRB.CreatePointerCast(Addr, IRB.getInt8PtrTy()), in instrumentLoadOrStore()
628 IRB.CreatePointerCast(StoredValue, IRB.getInt8PtrTy())}); in instrumentLoadOrStore()
633 IRB.CreateCall(TsanVptrLoad, in instrumentLoadOrStore()
634 IRB.CreatePointerCast(Addr, IRB.getInt8PtrTy())); in instrumentLoadOrStore()
666 IRB.CreateCall(OnAccessFunc, IRB.CreatePointerCast(Addr, IRB.getInt8PtrTy())); in instrumentLoadOrStore()
674 static ConstantInt *createOrdering(IRBuilder<> *IRB, AtomicOrdering ord) { in createOrdering() argument
688 return IRB->getInt32(v); in createOrdering()
700 IRBuilder<> IRB(I); in instrumentMemIntrinsic() local
702 IRB.CreateCall( in instrumentMemIntrinsic()
704 {IRB.CreatePointerCast(M->getArgOperand(0), IRB.getInt8PtrTy()), in instrumentMemIntrinsic()
705 IRB.CreateIntCast(M->getArgOperand(1), IRB.getInt32Ty(), false), in instrumentMemIntrinsic()
706 IRB.CreateIntCast(M->getArgOperand(2), IntptrTy, false)}); in instrumentMemIntrinsic()
709 IRB.CreateCall( in instrumentMemIntrinsic()
711 {IRB.CreatePointerCast(M->getArgOperand(0), IRB.getInt8PtrTy()), in instrumentMemIntrinsic()
712 IRB.CreatePointerCast(M->getArgOperand(1), IRB.getInt8PtrTy()), in instrumentMemIntrinsic()
713 IRB.CreateIntCast(M->getArgOperand(2), IntptrTy, false)}); in instrumentMemIntrinsic()
728 InstrumentationIRBuilder IRB(I); in instrumentAtomic() local
737 Type *Ty = Type::getIntNTy(IRB.getContext(), BitSize); in instrumentAtomic()
739 Value *Args[] = {IRB.CreatePointerCast(Addr, PtrTy), in instrumentAtomic()
740 createOrdering(&IRB, LI->getOrdering())}; in instrumentAtomic()
741 Value *C = IRB.CreateCall(TsanAtomicLoad[Idx], Args); in instrumentAtomic()
742 Value *Cast = IRB.CreateBitOrPointerCast(C, OrigTy); in instrumentAtomic()
752 Type *Ty = Type::getIntNTy(IRB.getContext(), BitSize); in instrumentAtomic()
754 Value *Args[] = {IRB.CreatePointerCast(Addr, PtrTy), in instrumentAtomic()
755 IRB.CreateBitOrPointerCast(SI->getValueOperand(), Ty), in instrumentAtomic()
756 createOrdering(&IRB, SI->getOrdering())}; in instrumentAtomic()
770 Type *Ty = Type::getIntNTy(IRB.getContext(), BitSize); in instrumentAtomic()
772 Value *Args[] = {IRB.CreatePointerCast(Addr, PtrTy), in instrumentAtomic()
773 IRB.CreateIntCast(RMWI->getValOperand(), Ty, false), in instrumentAtomic()
774 createOrdering(&IRB, RMWI->getOrdering())}; in instrumentAtomic()
785 Type *Ty = Type::getIntNTy(IRB.getContext(), BitSize); in instrumentAtomic()
788 IRB.CreateBitOrPointerCast(CASI->getCompareOperand(), Ty); in instrumentAtomic()
790 IRB.CreateBitOrPointerCast(CASI->getNewValOperand(), Ty); in instrumentAtomic()
791 Value *Args[] = {IRB.CreatePointerCast(Addr, PtrTy), in instrumentAtomic()
794 createOrdering(&IRB, CASI->getSuccessOrdering()), in instrumentAtomic()
795 createOrdering(&IRB, CASI->getFailureOrdering())}; in instrumentAtomic()
796 CallInst *C = IRB.CreateCall(TsanAtomicCAS[Idx], Args); in instrumentAtomic()
797 Value *Success = IRB.CreateICmpEQ(C, CmpOperand); in instrumentAtomic()
801 OldVal = IRB.CreateIntToPtr(C, OrigOldValTy); in instrumentAtomic()
805 IRB.CreateInsertValue(UndefValue::get(CASI->getType()), OldVal, 0); in instrumentAtomic()
806 Res = IRB.CreateInsertValue(Res, Success, 1); in instrumentAtomic()
811 Value *Args[] = {createOrdering(&IRB, FI->getOrdering())}; in instrumentAtomic()