reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/Transforms/Instrumentation/ThreadSanitizer.cpp
  637     Type *Ty = Type::getIntNTy(IRB.getContext(), BitSize);
  639     Value *Args[] = {IRB.CreatePointerCast(Addr, PtrTy),
  640                      createOrdering(&IRB, LI->getOrdering())};
  642     Value *C = IRB.CreateCall(TsanAtomicLoad[Idx], Args);
  643     Value *Cast = IRB.CreateBitOrPointerCast(C, OrigTy);
  652     Type *Ty = Type::getIntNTy(IRB.getContext(), BitSize);
  654     Value *Args[] = {IRB.CreatePointerCast(Addr, PtrTy),
  655                      IRB.CreateBitOrPointerCast(SI->getValueOperand(), Ty),
  656                      createOrdering(&IRB, SI->getOrdering())};
  669     Type *Ty = Type::getIntNTy(IRB.getContext(), BitSize);
  671     Value *Args[] = {IRB.CreatePointerCast(Addr, PtrTy),
  672                      IRB.CreateIntCast(RMWI->getValOperand(), Ty, false),
  673                      createOrdering(&IRB, RMWI->getOrdering())};
  683     Type *Ty = Type::getIntNTy(IRB.getContext(), BitSize);
  686       IRB.CreateBitOrPointerCast(CASI->getCompareOperand(), Ty);
  688       IRB.CreateBitOrPointerCast(CASI->getNewValOperand(), Ty);
  689     Value *Args[] = {IRB.CreatePointerCast(Addr, PtrTy),
  692                      createOrdering(&IRB, CASI->getSuccessOrdering()),
  693                      createOrdering(&IRB, CASI->getFailureOrdering())};
  694     CallInst *C = IRB.CreateCall(TsanAtomicCAS[Idx], Args);
  695     Value *Success = IRB.CreateICmpEQ(C, CmpOperand);
  700       OldVal = IRB.CreateIntToPtr(C, OrigOldValTy);
  704       IRB.CreateInsertValue(UndefValue::get(CASI->getType()), OldVal, 0);
  705     Res = IRB.CreateInsertValue(Res, Success, 1);
  710     Value *Args[] = {createOrdering(&IRB, FI->getOrdering())};