https://github.com/vitalybuka updated https://github.com/llvm/llvm-project/pull/100789
>From 0fce1bac9c6e4dee341e16d3ed657fe8696334c4 Mon Sep 17 00:00:00 2001 From: Vitaly Buka <vitalyb...@google.com> Date: Fri, 26 Jul 2024 11:04:32 -0700 Subject: [PATCH] [NFC][Load] Make `ScanFrom` required parameters In #100773 we will go conservative for sanitizers, so it's better to pinpoint location consciously. Pull Request: https://github.com/llvm/llvm-project/pull/100789 --- llvm/include/llvm/Analysis/Loads.h | 6 ++---- polly/lib/Analysis/ScopBuilder.cpp | 2 +- polly/lib/Analysis/ScopDetection.cpp | 3 ++- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/llvm/include/llvm/Analysis/Loads.h b/llvm/include/llvm/Analysis/Loads.h index 38f86f77b4158..1f01ff7027fa9 100644 --- a/llvm/include/llvm/Analysis/Loads.h +++ b/llvm/include/llvm/Analysis/Loads.h @@ -69,8 +69,7 @@ bool isDereferenceableAndAlignedPointer(const Value *V, Align Alignment, /// quick local scan of the basic block containing ScanFrom, to determine if /// the address is already accessed. bool isSafeToLoadUnconditionally(Value *V, Align Alignment, const APInt &Size, - const DataLayout &DL, - Instruction *ScanFrom = nullptr, + const DataLayout &DL, Instruction *ScanFrom, AssumptionCache *AC = nullptr, const DominatorTree *DT = nullptr, const TargetLibraryInfo *TLI = nullptr); @@ -100,8 +99,7 @@ bool isDereferenceableReadOnlyLoop(Loop *L, ScalarEvolution *SE, /// quick local scan of the basic block containing ScanFrom, to determine if /// the address is already accessed. bool isSafeToLoadUnconditionally(Value *V, Type *Ty, Align Alignment, - const DataLayout &DL, - Instruction *ScanFrom = nullptr, + const DataLayout &DL, Instruction *ScanFrom, AssumptionCache *AC = nullptr, const DominatorTree *DT = nullptr, const TargetLibraryInfo *TLI = nullptr); diff --git a/polly/lib/Analysis/ScopBuilder.cpp b/polly/lib/Analysis/ScopBuilder.cpp index d594823410f5f..0b9a1a916e1c1 100644 --- a/polly/lib/Analysis/ScopBuilder.cpp +++ b/polly/lib/Analysis/ScopBuilder.cpp @@ -2770,7 +2770,7 @@ isl::set ScopBuilder::getNonHoistableCtx(MemoryAccess *Access, auto &DL = scop->getFunction().getDataLayout(); if (isSafeToLoadUnconditionally(LI->getPointerOperand(), LI->getType(), - LI->getAlign(), DL)) { + LI->getAlign(), DL, nullptr)) { SafeToLoad = isl::set::universe(AccessRelation.get_space().range()); } else if (BB != LI->getParent()) { // Skip accesses in non-affine subregions as they might not be executed diff --git a/polly/lib/Analysis/ScopDetection.cpp b/polly/lib/Analysis/ScopDetection.cpp index eab7bd83e6a4e..79db3965de023 100644 --- a/polly/lib/Analysis/ScopDetection.cpp +++ b/polly/lib/Analysis/ScopDetection.cpp @@ -490,7 +490,8 @@ bool ScopDetection::onlyValidRequiredInvariantLoads( for (auto NonAffineRegion : Context.NonAffineSubRegionSet) { if (isSafeToLoadUnconditionally(Load->getPointerOperand(), - Load->getType(), Load->getAlign(), DL)) + Load->getType(), Load->getAlign(), DL, + nullptr)) continue; if (NonAffineRegion->contains(Load) && _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits