diff --git a/llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp b/llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp index 472b3ac396bde..fd7c641ccf4b2 100644 --- a/llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp +++ b/llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp @@ -305,19 +305,19 @@ class HWAddressSanitizer { int64_t getAccessInfo(bool IsWrite, unsigned AccessSizeIndex); ShadowTagCheckInfo insertShadowTagCheck(Value *Ptr, Instruction *InsertBefore, - DomTreeUpdater &DTU, LoopInfo &LI); + DomTreeUpdater &DTU, LoopInfo *LI); void instrumentMemAccessOutline(Value *Ptr, bool IsWrite, unsigned AccessSizeIndex, Instruction *InsertBefore, - DomTreeUpdater &DTU, LoopInfo &LI); + DomTreeUpdater &DTU, LoopInfo *LI); void instrumentMemAccessInline(Value *Ptr, bool IsWrite, unsigned AccessSizeIndex, Instruction *InsertBefore, DomTreeUpdater &DTU, - LoopInfo &LI); + LoopInfo *LI); bool ignoreMemIntrinsic(MemIntrinsic *MI); void instrumentMemIntrinsic(MemIntrinsic *MI); bool instrumentMemAccess(InterestingMemoryOperand &O, DomTreeUpdater &DTU, - LoopInfo &LI); + LoopInfo *LI); bool ignoreAccess(Instruction *Inst, Value *Ptr); void getInterestingMemoryOperands( Instruction *I, SmallVectorImpl &Interesting); @@ -872,7 +872,7 @@ int64_t HWAddressSanitizer::getAccessInfo(bool IsWrite, HWAddressSanitizer::ShadowTagCheckInfo HWAddressSanitizer::insertShadowTagCheck(Value *Ptr, Instruction *InsertBefore, - DomTreeUpdater &DTU, LoopInfo &LI) { + DomTreeUpdater &DTU, LoopInfo *LI) { ShadowTagCheckInfo R; IRBuilder<> IRB(InsertBefore); @@ -893,7 +893,7 @@ HWAddressSanitizer::insertShadowTagCheck(Value *Ptr, Instruction *InsertBefore, R.TagMismatchTerm = SplitBlockAndInsertIfThen( TagMismatch, InsertBefore, false, - MDBuilder(*C).createBranchWeights(1, 100000), &DTU, &LI); + MDBuilder(*C).createBranchWeights(1, 100000), &DTU, LI); return R; } @@ -902,7 +902,7 @@ void HWAddressSanitizer::instrumentMemAccessOutline(Value *Ptr, bool IsWrite, unsigned AccessSizeIndex, Instruction *InsertBefore, DomTreeUpdater &DTU, - LoopInfo &LI) { + LoopInfo *LI) { assert(!UsePageAliases); const int64_t AccessInfo = getAccessInfo(IsWrite, AccessSizeIndex); @@ -924,7 +924,7 @@ void HWAddressSanitizer::instrumentMemAccessInline(Value *Ptr, bool IsWrite, unsigned AccessSizeIndex, Instruction *InsertBefore, DomTreeUpdater &DTU, - LoopInfo &LI) { + LoopInfo *LI) { assert(!UsePageAliases); const int64_t AccessInfo = getAccessInfo(IsWrite, AccessSizeIndex); @@ -935,7 +935,7 @@ void HWAddressSanitizer::instrumentMemAccessInline(Value *Ptr, bool IsWrite, IRB.CreateICmpUGT(TCI.MemTag, ConstantInt::get(Int8Ty, 15)); Instruction *CheckFailTerm = SplitBlockAndInsertIfThen( OutOfShortGranuleTagRange, TCI.TagMismatchTerm, !Recover, - MDBuilder(*C).createBranchWeights(1, 100000), &DTU, &LI); + MDBuilder(*C).createBranchWeights(1, 100000), &DTU, LI); IRB.SetInsertPoint(TCI.TagMismatchTerm); Value *PtrLowBits = IRB.CreateTrunc(IRB.CreateAnd(TCI.PtrLong, 15), Int8Ty); @@ -944,7 +944,7 @@ void HWAddressSanitizer::instrumentMemAccessInline(Value *Ptr, bool IsWrite, Value *PtrLowBitsOOB = IRB.CreateICmpUGE(PtrLowBits, TCI.MemTag); SplitBlockAndInsertIfThen(PtrLowBitsOOB, TCI.TagMismatchTerm, false, MDBuilder(*C).createBranchWeights(1, 100000), &DTU, - &LI, CheckFailTerm->getParent()); + LI, CheckFailTerm->getParent()); IRB.SetInsertPoint(TCI.TagMismatchTerm); Value *InlineTagAddr = IRB.CreateOr(TCI.AddrLong, 15); @@ -953,7 +953,7 @@ void HWAddressSanitizer::instrumentMemAccessInline(Value *Ptr, bool IsWrite, Value *InlineTagMismatch = IRB.CreateICmpNE(TCI.PtrTag, InlineTag); SplitBlockAndInsertIfThen(InlineTagMismatch, TCI.TagMismatchTerm, false, MDBuilder(*C).createBranchWeights(1, 100000), &DTU, - &LI, CheckFailTerm->getParent()); + LI, CheckFailTerm->getParent()); IRB.SetInsertPoint(CheckFailTerm); InlineAsm *Asm; @@ -1030,7 +1030,7 @@ void HWAddressSanitizer::instrumentMemIntrinsic(MemIntrinsic *MI) { bool HWAddressSanitizer::instrumentMemAccess(InterestingMemoryOperand &O, DomTreeUpdater &DTU, - LoopInfo &LI) { + LoopInfo *LI) { Value *Addr = O.getPtr(); LLVM_DEBUG(dbgs() << "Instrumenting: " << O.getInsn() << "\n"); @@ -1564,7 +1564,7 @@ void HWAddressSanitizer::sanitizeFunction(Function &F, LoopInfo *LI = FAM.getCachedResult(F); DomTreeUpdater DTU(DT, PDT, DomTreeUpdater::UpdateStrategy::Lazy); for (auto &Operand : OperandsToInstrument) - instrumentMemAccess(Operand, DTU, *LI); + instrumentMemAccess(Operand, DTU, LI); DTU.flush(); if (ClInstrumentMemIntrinsics && !IntrinToInstrument.empty()) {