Skip to content

Commit 326c5de

Browse files
committed
Add helper
1 parent 6f3217a commit 326c5de

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

llvm/include/llvm/Analysis/AliasAnalysis.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -521,6 +521,10 @@ class AAResults {
521521
/// the same memory locations.
522522
ModRefInfo getModRefInfo(const Instruction *I, const CallBase *Call);
523523

524+
/// Return information about whether two instructions may refer to the same
525+
/// memory locations.
526+
ModRefInfo getModRefInfo(const Instruction *I1, const Instruction *I2);
527+
524528
/// Return information about whether a particular call site modifies
525529
/// or reads the specified memory location \p MemLoc before instruction \p I
526530
/// in a BasicBlock.
@@ -600,7 +604,8 @@ class AAResults {
600604
ModRefInfo getModRefInfo(const Instruction *I,
601605
const std::optional<MemoryLocation> &OptLoc,
602606
AAQueryInfo &AAQIP);
603-
ModRefInfo getModRefInfo(const Instruction *I1, const Instruction *I2);
607+
ModRefInfo getModRefInfo(const Instruction *I1, const Instruction *I2,
608+
AAQueryInfo &AAQI);
604609
ModRefInfo callCapturesBefore(const Instruction *I,
605610
const MemoryLocation &MemLoc, DominatorTree *DT,
606611
AAQueryInfo &AAQIP);

llvm/lib/Analysis/AliasAnalysis.cpp

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -369,19 +369,22 @@ ModRefInfo AAResults::getModRefInfo(const CallBase *Call1,
369369
return Result;
370370
}
371371

372-
// Check whether two instructions may read or write the same memory location.
373372
ModRefInfo AAResults::getModRefInfo(const Instruction *I1,
374373
const Instruction *I2) {
375374
SimpleAAQueryInfo AAQIP(*this);
375+
return getModRefInfo(I1, I2, AAQIP);
376+
}
376377

378+
ModRefInfo AAResults::getModRefInfo(const Instruction *I1,
379+
const Instruction *I2, AAQueryInfo &AAQI) {
377380
// Early-exit if either instruction does not read or write memory.
378381
if (!I1->mayReadOrWriteMemory() || !I2->mayReadOrWriteMemory())
379382
return ModRefInfo::NoModRef;
380383

381384
if (const auto *Call2 = dyn_cast<CallBase>(I2))
382-
return getModRefInfo(I1, Call2, AAQIP);
385+
return getModRefInfo(I1, Call2, AAQI);
383386

384-
ModRefInfo MR = getModRefInfo(I1, MemoryLocation::getOrNone(I2), AAQIP);
387+
ModRefInfo MR = getModRefInfo(I1, MemoryLocation::getOrNone(I2), AAQI);
385388
return isModOrRefSet(MR) ? ModRefInfo::ModRef : ModRefInfo::NoModRef;
386389
}
387390

0 commit comments

Comments
 (0)