Skip to content

Commit a9c302b

Browse files
committed
comments
1 parent a58218c commit a9c302b

File tree

4 files changed

+14
-17
lines changed

4 files changed

+14
-17
lines changed

llvm/lib/Target/AMDGPU/SIISelLowering.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17793,10 +17793,9 @@ atomicSupportedIfLegalIntType(const AtomicRMWInst *RMW) {
1779317793

1779417794
/// Return if a flat address space atomicrmw can access private memory.
1779517795
static bool flatInstrMayAccessPrivate(const Instruction *I) {
17796-
const MDNode *NoaliasAddrSpaceMD =
17797-
I->getMetadata(LLVMContext::MD_noalias_addrspace);
17798-
return !AMDGPU::hasValueInRange(NoaliasAddrSpaceMD,
17799-
AMDGPUAS::PRIVATE_ADDRESS);
17796+
const MDNode *MD = I->getMetadata(LLVMContext::MD_noalias_addrspace);
17797+
return !(MD &&
17798+
AMDGPU::hasValueInRangeLikeMetadata(*MD, AMDGPUAS::PRIVATE_ADDRESS));
1780017799
}
1780117800

1780217801
TargetLowering::AtomicExpansionKind

llvm/lib/Target/AMDGPU/SIInstrInfo.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4270,9 +4270,11 @@ bool SIInstrInfo::mayAccessScratchThroughFlat(const MachineInstr &MI) const {
42704270
// See if any memory operand specifies an address space that involves scratch.
42714271
return any_of(MI.memoperands(), [](const MachineMemOperand *Memop) {
42724272
unsigned AS = Memop->getAddrSpace();
4273-
if (AS == AMDGPUAS::FLAT_ADDRESS)
4274-
return !AMDGPU::hasValueInRange(Memop->getAAInfo().NoAliasAddrSpace,
4275-
AMDGPUAS::PRIVATE_ADDRESS);
4273+
if (AS == AMDGPUAS::FLAT_ADDRESS) {
4274+
const MDNode *MD = Memop->getAAInfo().NoAliasAddrSpace;
4275+
return !(MD && AMDGPU::hasValueInRangeLikeMetadata(
4276+
*MD, AMDGPUAS::PRIVATE_ADDRESS));
4277+
}
42764278
return AS == AMDGPUAS::PRIVATE_ADDRESS;
42774279
});
42784280
}

llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1678,14 +1678,11 @@ getIntegerVecAttribute(const Function &F, StringRef Name, unsigned Size) {
16781678
return Vals;
16791679
}
16801680

1681-
bool hasValueInRange(const MDNode *MD, unsigned Val) {
1682-
if (!MD)
1683-
return false;
1684-
1685-
assert((MD->getNumOperands() % 2 == 0) && "invalid number of operands!");
1686-
for (unsigned I = 0, E = MD->getNumOperands() / 2; I != E; ++I) {
1687-
auto *Low = mdconst::extract<ConstantInt>(MD->getOperand(2 * I + 0));
1688-
auto *High = mdconst::extract<ConstantInt>(MD->getOperand(2 * I + 1));
1681+
bool hasValueInRangeLikeMetadata(const MDNode &MD, int64_t Val) {
1682+
assert((MD.getNumOperands() % 2 == 0) && "invalid number of operands!");
1683+
for (unsigned I = 0, E = MD.getNumOperands() / 2; I != E; ++I) {
1684+
auto *Low = mdconst::extract<ConstantInt>(MD.getOperand(2 * I + 0));
1685+
auto *High = mdconst::extract<ConstantInt>(MD.getOperand(2 * I + 1));
16891686
assert(Low->getValue().ult(High->getValue()) && "invalid range metadata!");
16901687
if (Low->getValue().ule(Val) && High->getValue().ugt(Val))
16911688
return true;

llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1066,8 +1066,7 @@ std::optional<SmallVector<unsigned>>
10661066
getIntegerVecAttribute(const Function &F, StringRef Name, unsigned Size);
10671067

10681068
/// Checks if \p Val is inside \p MD, a !range-like metadata.
1069-
/// Returns false if \p MD is null.
1070-
bool hasValueInRange(const MDNode *MD, unsigned Val);
1069+
bool hasValueInRangeLikeMetadata(const MDNode &MD, int64_t Val);
10711070

10721071
/// Represents the counter values to wait for in an s_waitcnt instruction.
10731072
///

0 commit comments

Comments
 (0)