mirror of
https://github.com/intel/llvm.git
synced 2026-01-22 23:49:22 +08:00
[NFC][Load] Make ScanFrom required parameters (#100789)
In #100773 we will go conservative for sanitizers, so it's better to pinpoint location consciously. For #100639.
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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) &&
|
||||
|
||||
Reference in New Issue
Block a user