Skip to content

Commit 3fb4dc2

Browse files
committed
comments
1 parent 4a44aa2 commit 3fb4dc2

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
@@ -17646,10 +17646,9 @@ atomicSupportedIfLegalIntType(const AtomicRMWInst *RMW) {
1764617646

1764717647
/// Return if a flat address space atomicrmw can access private memory.
1764817648
static bool flatInstrMayAccessPrivate(const Instruction *I) {
17649-
const MDNode *NoaliasAddrSpaceMD =
17650-
I->getMetadata(LLVMContext::MD_noalias_addrspace);
17651-
return !AMDGPU::hasValueInRange(NoaliasAddrSpaceMD,
17652-
AMDGPUAS::PRIVATE_ADDRESS);
17649+
const MDNode *MD = I->getMetadata(LLVMContext::MD_noalias_addrspace);
17650+
return !(MD &&
17651+
AMDGPU::hasValueInRangeLikeMetadata(*MD, AMDGPUAS::PRIVATE_ADDRESS));
1765317652
}
1765417653

1765517654
TargetLowering::AtomicExpansionKind

llvm/lib/Target/AMDGPU/SIInstrInfo.cpp

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

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

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

1670-
bool hasValueInRange(const MDNode *MD, unsigned Val) {
1671-
if (!MD)
1672-
return false;
1673-
1674-
assert((MD->getNumOperands() % 2 == 0) && "invalid number of operands!");
1675-
for (unsigned I = 0, E = MD->getNumOperands() / 2; I != E; ++I) {
1676-
auto *Low = mdconst::extract<ConstantInt>(MD->getOperand(2 * I + 0));
1677-
auto *High = mdconst::extract<ConstantInt>(MD->getOperand(2 * I + 1));
1670+
bool hasValueInRangeLikeMetadata(const MDNode &MD, int64_t Val) {
1671+
assert((MD.getNumOperands() % 2 == 0) && "invalid number of operands!");
1672+
for (unsigned I = 0, E = MD.getNumOperands() / 2; I != E; ++I) {
1673+
auto *Low = mdconst::extract<ConstantInt>(MD.getOperand(2 * I + 0));
1674+
auto *High = mdconst::extract<ConstantInt>(MD.getOperand(2 * I + 1));
16781675
assert(Low->getValue().ult(High->getValue()) && "invalid range metadata!");
16791676
if (Low->getValue().ule(Val) && High->getValue().ugt(Val))
16801677
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)