[llvm] r311179 - AMDGPU/NFC: Rename few things in SIMemoryLegalizer:
Konstantin Zhuravlyov via llvm-commits
llvm-commits at lists.llvm.org
Fri Aug 18 10:30:02 PDT 2017
Author: kzhuravl
Date: Fri Aug 18 10:30:02 2017
New Revision: 311179
URL: http://llvm.org/viewvc/llvm-project?rev=311179&view=rev
Log:
AMDGPU/NFC: Rename few things in SIMemoryLegalizer:
- AtomicInfo -> MemOpInfo
- getAtomicLoadInfo -> getLoadInfo
- getAtomicStoreInfo -> getStoreInfo
- expandAtomicLoad -> expandLoad
- expandAtomicStore -> expandStore
Differential Revision: https://reviews.llvm.org/D36861
Modified:
llvm/trunk/lib/Target/AMDGPU/SIMemoryLegalizer.cpp
Modified: llvm/trunk/lib/Target/AMDGPU/SIMemoryLegalizer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/SIMemoryLegalizer.cpp?rev=311179&r1=311178&r2=311179&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AMDGPU/SIMemoryLegalizer.cpp (original)
+++ llvm/trunk/lib/Target/AMDGPU/SIMemoryLegalizer.cpp Fri Aug 18 10:30:02 2017
@@ -49,21 +49,21 @@ namespace {
class SIMemoryLegalizer final : public MachineFunctionPass {
private:
- struct AtomicInfo final {
+ struct MemOpInfo final {
SyncScope::ID SSID = SyncScope::System;
AtomicOrdering Ordering = AtomicOrdering::SequentiallyConsistent;
AtomicOrdering FailureOrdering = AtomicOrdering::SequentiallyConsistent;
- AtomicInfo() = default;
+ MemOpInfo() = default;
- AtomicInfo(SyncScope::ID SSID,
- AtomicOrdering Ordering,
- AtomicOrdering FailureOrdering)
+ MemOpInfo(SyncScope::ID SSID,
+ AtomicOrdering Ordering,
+ AtomicOrdering FailureOrdering)
: SSID(SSID),
Ordering(Ordering),
FailureOrdering(FailureOrdering) {}
- AtomicInfo(const MachineMemOperand *MMO)
+ MemOpInfo(const MachineMemOperand *MMO)
: SSID(MMO->getSyncScopeID()),
Ordering(MMO->getOrdering()),
FailureOrdering(MMO->getFailureOrdering()) {}
@@ -110,44 +110,38 @@ private:
/// \returns Atomic fence info if \p MI is an atomic fence operation,
/// "None" otherwise.
- Optional<AtomicInfo> getAtomicFenceInfo(
- const MachineBasicBlock::iterator &MI) const;
- /// \returns Atomic load info if \p MI is an atomic load operation,
- /// "None" otherwise.
- Optional<AtomicInfo> getAtomicLoadInfo(
- const MachineBasicBlock::iterator &MI) const;
- /// \returns Atomic store info if \p MI is an atomic store operation,
- /// "None" otherwise.
- Optional<AtomicInfo> getAtomicStoreInfo(
+ Optional<MemOpInfo> getAtomicFenceInfo(
const MachineBasicBlock::iterator &MI) const;
+ /// \returns Load info if \p MI is a load operation, "None" otherwise.
+ Optional<MemOpInfo> getLoadInfo(const MachineBasicBlock::iterator &MI) const;
+ /// \returns Store info if \p MI is a store operation, "None" otherwise.
+ Optional<MemOpInfo> getStoreInfo(const MachineBasicBlock::iterator &MI) const;
/// \returns Atomic cmpxchg info if \p MI is an atomic cmpxchg operation,
/// "None" otherwise.
- Optional<AtomicInfo> getAtomicCmpxchgInfo(
+ Optional<MemOpInfo> getAtomicCmpxchgInfo(
const MachineBasicBlock::iterator &MI) const;
/// \returns Atomic rmw info if \p MI is an atomic rmw operation,
/// "None" otherwise.
- Optional<AtomicInfo> getAtomicRmwInfo(
+ Optional<MemOpInfo> getAtomicRmwInfo(
const MachineBasicBlock::iterator &MI) const;
/// \brief Expands atomic fence operation \p MI. Returns true if
/// instructions are added/deleted or \p MI is modified, false otherwise.
- bool expandAtomicFence(const AtomicInfo &AI,
- MachineBasicBlock::iterator &MI);
- /// \brief Expands atomic load operation \p MI. Returns true if
- /// instructions are added/deleted or \p MI is modified, false otherwise.
- bool expandAtomicLoad(const AtomicInfo &AI,
- MachineBasicBlock::iterator &MI);
- /// \brief Expands atomic store operation \p MI. Returns true if
- /// instructions are added/deleted or \p MI is modified, false otherwise.
- bool expandAtomicStore(const AtomicInfo &AI,
+ bool expandAtomicFence(const MemOpInfo &MOI,
MachineBasicBlock::iterator &MI);
+ /// \brief Expands load operation \p MI. Returns true if instructions are
+ /// added/deleted or \p MI is modified, false otherwise.
+ bool expandLoad(const MemOpInfo &MOI, MachineBasicBlock::iterator &MI);
+ /// \brief Expands store operation \p MI. Returns true if instructions are
+ /// added/deleted or \p MI is modified, false otherwise.
+ bool expandStore(const MemOpInfo &MOI, MachineBasicBlock::iterator &MI);
/// \brief Expands atomic cmpxchg operation \p MI. Returns true if
/// instructions are added/deleted or \p MI is modified, false otherwise.
- bool expandAtomicCmpxchg(const AtomicInfo &AI,
+ bool expandAtomicCmpxchg(const MemOpInfo &MOI,
MachineBasicBlock::iterator &MI);
/// \brief Expands atomic rmw operation \p MI. Returns true if
/// instructions are added/deleted or \p MI is modified, false otherwise.
- bool expandAtomicRmw(const AtomicInfo &AI,
+ bool expandAtomicRmw(const MemOpInfo &MOI,
MachineBasicBlock::iterator &MI);
public:
@@ -232,7 +226,7 @@ void SIMemoryLegalizer::reportUnknownSyn
CTX->diagnose(Diag);
}
-Optional<SIMemoryLegalizer::AtomicInfo> SIMemoryLegalizer::getAtomicFenceInfo(
+Optional<SIMemoryLegalizer::MemOpInfo> SIMemoryLegalizer::getAtomicFenceInfo(
const MachineBasicBlock::iterator &MI) const {
assert(MI->getDesc().TSFlags & SIInstrFlags::maybeAtomic);
@@ -243,49 +237,49 @@ Optional<SIMemoryLegalizer::AtomicInfo>
static_cast<SyncScope::ID>(MI->getOperand(1).getImm());
AtomicOrdering Ordering =
static_cast<AtomicOrdering>(MI->getOperand(0).getImm());
- return AtomicInfo(SSID, Ordering, AtomicOrdering::NotAtomic);
+ return MemOpInfo(SSID, Ordering, AtomicOrdering::NotAtomic);
}
-Optional<SIMemoryLegalizer::AtomicInfo> SIMemoryLegalizer::getAtomicLoadInfo(
+Optional<SIMemoryLegalizer::MemOpInfo> SIMemoryLegalizer::getLoadInfo(
const MachineBasicBlock::iterator &MI) const {
assert(MI->getDesc().TSFlags & SIInstrFlags::maybeAtomic);
if (!(MI->mayLoad() && !MI->mayStore()))
return None;
if (!MI->hasOneMemOperand())
- return AtomicInfo();
+ return MemOpInfo();
const MachineMemOperand *MMO = *MI->memoperands_begin();
if (!MMO->isAtomic())
return None;
- return AtomicInfo(MMO);
+ return MemOpInfo(MMO);
}
-Optional<SIMemoryLegalizer::AtomicInfo> SIMemoryLegalizer::getAtomicStoreInfo(
+Optional<SIMemoryLegalizer::MemOpInfo> SIMemoryLegalizer::getStoreInfo(
const MachineBasicBlock::iterator &MI) const {
assert(MI->getDesc().TSFlags & SIInstrFlags::maybeAtomic);
if (!(!MI->mayLoad() && MI->mayStore()))
return None;
if (!MI->hasOneMemOperand())
- return AtomicInfo();
+ return MemOpInfo();
const MachineMemOperand *MMO = *MI->memoperands_begin();
if (!MMO->isAtomic())
return None;
- return AtomicInfo(MMO);
+ return MemOpInfo(MMO);
}
-Optional<SIMemoryLegalizer::AtomicInfo> SIMemoryLegalizer::getAtomicCmpxchgInfo(
+Optional<SIMemoryLegalizer::MemOpInfo> SIMemoryLegalizer::getAtomicCmpxchgInfo(
const MachineBasicBlock::iterator &MI) const {
assert(MI->getDesc().TSFlags & SIInstrFlags::maybeAtomic);
if (!(MI->mayLoad() && MI->mayStore()))
return None;
if (!MI->hasOneMemOperand())
- return AtomicInfo();
+ return MemOpInfo();
const MachineMemOperand *MMO = *MI->memoperands_begin();
if (!MMO->isAtomic())
@@ -293,17 +287,17 @@ Optional<SIMemoryLegalizer::AtomicInfo>
if (MMO->getFailureOrdering() == AtomicOrdering::NotAtomic)
return None;
- return AtomicInfo(MMO);
+ return MemOpInfo(MMO);
}
-Optional<SIMemoryLegalizer::AtomicInfo> SIMemoryLegalizer::getAtomicRmwInfo(
+Optional<SIMemoryLegalizer::MemOpInfo> SIMemoryLegalizer::getAtomicRmwInfo(
const MachineBasicBlock::iterator &MI) const {
assert(MI->getDesc().TSFlags & SIInstrFlags::maybeAtomic);
if (!(MI->mayLoad() && MI->mayStore()))
return None;
if (!MI->hasOneMemOperand())
- return AtomicInfo();
+ return MemOpInfo();
const MachineMemOperand *MMO = *MI->memoperands_begin();
if (!MMO->isAtomic())
@@ -311,32 +305,32 @@ Optional<SIMemoryLegalizer::AtomicInfo>
if (MMO->getFailureOrdering() != AtomicOrdering::NotAtomic)
return None;
- return AtomicInfo(MMO);
+ return MemOpInfo(MMO);
}
-bool SIMemoryLegalizer::expandAtomicFence(const AtomicInfo &AI,
+bool SIMemoryLegalizer::expandAtomicFence(const MemOpInfo &MOI,
MachineBasicBlock::iterator &MI) {
assert(MI->getOpcode() == AMDGPU::ATOMIC_FENCE);
bool Changed = false;
- if (AI.SSID == SyncScope::System ||
- AI.SSID == MMI->getAgentSSID()) {
- if (AI.Ordering == AtomicOrdering::Acquire ||
- AI.Ordering == AtomicOrdering::Release ||
- AI.Ordering == AtomicOrdering::AcquireRelease ||
- AI.Ordering == AtomicOrdering::SequentiallyConsistent)
+ if (MOI.SSID == SyncScope::System ||
+ MOI.SSID == MMI->getAgentSSID()) {
+ if (MOI.Ordering == AtomicOrdering::Acquire ||
+ MOI.Ordering == AtomicOrdering::Release ||
+ MOI.Ordering == AtomicOrdering::AcquireRelease ||
+ MOI.Ordering == AtomicOrdering::SequentiallyConsistent)
Changed |= insertWaitcntVmcnt0(MI);
- if (AI.Ordering == AtomicOrdering::Acquire ||
- AI.Ordering == AtomicOrdering::AcquireRelease ||
- AI.Ordering == AtomicOrdering::SequentiallyConsistent)
+ if (MOI.Ordering == AtomicOrdering::Acquire ||
+ MOI.Ordering == AtomicOrdering::AcquireRelease ||
+ MOI.Ordering == AtomicOrdering::SequentiallyConsistent)
Changed |= insertBufferWbinvl1Vol(MI);
AtomicPseudoMIs.push_back(MI);
return Changed;
- } else if (AI.SSID == SyncScope::SingleThread ||
- AI.SSID == MMI->getWorkgroupSSID() ||
- AI.SSID == MMI->getWavefrontSSID()) {
+ } else if (MOI.SSID == SyncScope::SingleThread ||
+ MOI.SSID == MMI->getWorkgroupSSID() ||
+ MOI.SSID == MMI->getWavefrontSSID()) {
AtomicPseudoMIs.push_back(MI);
return Changed;
} else {
@@ -345,30 +339,30 @@ bool SIMemoryLegalizer::expandAtomicFenc
}
}
-bool SIMemoryLegalizer::expandAtomicLoad(const AtomicInfo &AI,
- MachineBasicBlock::iterator &MI) {
+bool SIMemoryLegalizer::expandLoad(const MemOpInfo &MOI,
+ MachineBasicBlock::iterator &MI) {
assert(MI->mayLoad() && !MI->mayStore());
bool Changed = false;
- if (AI.SSID == SyncScope::System ||
- AI.SSID == MMI->getAgentSSID()) {
- if (AI.Ordering == AtomicOrdering::Acquire ||
- AI.Ordering == AtomicOrdering::SequentiallyConsistent)
+ if (MOI.SSID == SyncScope::System ||
+ MOI.SSID == MMI->getAgentSSID()) {
+ if (MOI.Ordering == AtomicOrdering::Acquire ||
+ MOI.Ordering == AtomicOrdering::SequentiallyConsistent)
Changed |= setGLC(MI);
- if (AI.Ordering == AtomicOrdering::SequentiallyConsistent)
+ if (MOI.Ordering == AtomicOrdering::SequentiallyConsistent)
Changed |= insertWaitcntVmcnt0(MI);
- if (AI.Ordering == AtomicOrdering::Acquire ||
- AI.Ordering == AtomicOrdering::SequentiallyConsistent) {
+ if (MOI.Ordering == AtomicOrdering::Acquire ||
+ MOI.Ordering == AtomicOrdering::SequentiallyConsistent) {
Changed |= insertWaitcntVmcnt0(MI, false);
Changed |= insertBufferWbinvl1Vol(MI, false);
}
return Changed;
- } else if (AI.SSID == SyncScope::SingleThread ||
- AI.SSID == MMI->getWorkgroupSSID() ||
- AI.SSID == MMI->getWavefrontSSID()) {
+ } else if (MOI.SSID == SyncScope::SingleThread ||
+ MOI.SSID == MMI->getWorkgroupSSID() ||
+ MOI.SSID == MMI->getWavefrontSSID()) {
return Changed;
} else {
reportUnknownSynchScope(MI);
@@ -376,21 +370,21 @@ bool SIMemoryLegalizer::expandAtomicLoad
}
}
-bool SIMemoryLegalizer::expandAtomicStore(const AtomicInfo &AI,
- MachineBasicBlock::iterator &MI) {
+bool SIMemoryLegalizer::expandStore(const MemOpInfo &MOI,
+ MachineBasicBlock::iterator &MI) {
assert(!MI->mayLoad() && MI->mayStore());
bool Changed = false;
- if (AI.SSID == SyncScope::System ||
- AI.SSID == MMI->getAgentSSID()) {
- if (AI.Ordering == AtomicOrdering::Release ||
- AI.Ordering == AtomicOrdering::SequentiallyConsistent)
+ if (MOI.SSID == SyncScope::System ||
+ MOI.SSID == MMI->getAgentSSID()) {
+ if (MOI.Ordering == AtomicOrdering::Release ||
+ MOI.Ordering == AtomicOrdering::SequentiallyConsistent)
Changed |= insertWaitcntVmcnt0(MI);
return Changed;
- } else if (AI.SSID == SyncScope::SingleThread ||
- AI.SSID == MMI->getWorkgroupSSID() ||
- AI.SSID == MMI->getWavefrontSSID()) {
+ } else if (MOI.SSID == SyncScope::SingleThread ||
+ MOI.SSID == MMI->getWorkgroupSSID() ||
+ MOI.SSID == MMI->getWavefrontSSID()) {
return Changed;
} else {
reportUnknownSynchScope(MI);
@@ -398,32 +392,32 @@ bool SIMemoryLegalizer::expandAtomicStor
}
}
-bool SIMemoryLegalizer::expandAtomicCmpxchg(const AtomicInfo &AI,
+bool SIMemoryLegalizer::expandAtomicCmpxchg(const MemOpInfo &MOI,
MachineBasicBlock::iterator &MI) {
assert(MI->mayLoad() && MI->mayStore());
bool Changed = false;
- if (AI.SSID == SyncScope::System ||
- AI.SSID == MMI->getAgentSSID()) {
- if (AI.Ordering == AtomicOrdering::Release ||
- AI.Ordering == AtomicOrdering::AcquireRelease ||
- AI.Ordering == AtomicOrdering::SequentiallyConsistent ||
- AI.FailureOrdering == AtomicOrdering::SequentiallyConsistent)
+ if (MOI.SSID == SyncScope::System ||
+ MOI.SSID == MMI->getAgentSSID()) {
+ if (MOI.Ordering == AtomicOrdering::Release ||
+ MOI.Ordering == AtomicOrdering::AcquireRelease ||
+ MOI.Ordering == AtomicOrdering::SequentiallyConsistent ||
+ MOI.FailureOrdering == AtomicOrdering::SequentiallyConsistent)
Changed |= insertWaitcntVmcnt0(MI);
- if (AI.Ordering == AtomicOrdering::Acquire ||
- AI.Ordering == AtomicOrdering::AcquireRelease ||
- AI.Ordering == AtomicOrdering::SequentiallyConsistent ||
- AI.FailureOrdering == AtomicOrdering::Acquire ||
- AI.FailureOrdering == AtomicOrdering::SequentiallyConsistent) {
+ if (MOI.Ordering == AtomicOrdering::Acquire ||
+ MOI.Ordering == AtomicOrdering::AcquireRelease ||
+ MOI.Ordering == AtomicOrdering::SequentiallyConsistent ||
+ MOI.FailureOrdering == AtomicOrdering::Acquire ||
+ MOI.FailureOrdering == AtomicOrdering::SequentiallyConsistent) {
Changed |= insertWaitcntVmcnt0(MI, false);
Changed |= insertBufferWbinvl1Vol(MI, false);
}
return Changed;
- } else if (AI.SSID == SyncScope::SingleThread ||
- AI.SSID == MMI->getWorkgroupSSID() ||
- AI.SSID == MMI->getWavefrontSSID()) {
+ } else if (MOI.SSID == SyncScope::SingleThread ||
+ MOI.SSID == MMI->getWorkgroupSSID() ||
+ MOI.SSID == MMI->getWavefrontSSID()) {
Changed |= setGLC(MI);
return Changed;
} else {
@@ -432,29 +426,29 @@ bool SIMemoryLegalizer::expandAtomicCmpx
}
}
-bool SIMemoryLegalizer::expandAtomicRmw(const AtomicInfo &AI,
+bool SIMemoryLegalizer::expandAtomicRmw(const MemOpInfo &MOI,
MachineBasicBlock::iterator &MI) {
assert(MI->mayLoad() && MI->mayStore());
bool Changed = false;
- if (AI.SSID == SyncScope::System ||
- AI.SSID == MMI->getAgentSSID()) {
- if (AI.Ordering == AtomicOrdering::Release ||
- AI.Ordering == AtomicOrdering::AcquireRelease ||
- AI.Ordering == AtomicOrdering::SequentiallyConsistent)
+ if (MOI.SSID == SyncScope::System ||
+ MOI.SSID == MMI->getAgentSSID()) {
+ if (MOI.Ordering == AtomicOrdering::Release ||
+ MOI.Ordering == AtomicOrdering::AcquireRelease ||
+ MOI.Ordering == AtomicOrdering::SequentiallyConsistent)
Changed |= insertWaitcntVmcnt0(MI);
- if (AI.Ordering == AtomicOrdering::Acquire ||
- AI.Ordering == AtomicOrdering::AcquireRelease ||
- AI.Ordering == AtomicOrdering::SequentiallyConsistent) {
+ if (MOI.Ordering == AtomicOrdering::Acquire ||
+ MOI.Ordering == AtomicOrdering::AcquireRelease ||
+ MOI.Ordering == AtomicOrdering::SequentiallyConsistent) {
Changed |= insertWaitcntVmcnt0(MI, false);
Changed |= insertBufferWbinvl1Vol(MI, false);
}
return Changed;
- } else if (AI.SSID == SyncScope::SingleThread ||
- AI.SSID == MMI->getWorkgroupSSID() ||
- AI.SSID == MMI->getWavefrontSSID()) {
+ } else if (MOI.SSID == SyncScope::SingleThread ||
+ MOI.SSID == MMI->getWorkgroupSSID() ||
+ MOI.SSID == MMI->getWavefrontSSID()) {
Changed |= setGLC(MI);
return Changed;
} else {
@@ -482,16 +476,16 @@ bool SIMemoryLegalizer::runOnMachineFunc
if (!(MI->getDesc().TSFlags & SIInstrFlags::maybeAtomic))
continue;
- if (const auto &AI = getAtomicFenceInfo(MI))
- Changed |= expandAtomicFence(AI.getValue(), MI);
- else if (const auto &AI = getAtomicLoadInfo(MI))
- Changed |= expandAtomicLoad(AI.getValue(), MI);
- else if (const auto &AI = getAtomicStoreInfo(MI))
- Changed |= expandAtomicStore(AI.getValue(), MI);
- else if (const auto &AI = getAtomicCmpxchgInfo(MI))
- Changed |= expandAtomicCmpxchg(AI.getValue(), MI);
- else if (const auto &AI = getAtomicRmwInfo(MI))
- Changed |= expandAtomicRmw(AI.getValue(), MI);
+ if (const auto &MOI = getAtomicFenceInfo(MI))
+ Changed |= expandAtomicFence(MOI.getValue(), MI);
+ else if (const auto &MOI = getLoadInfo(MI))
+ Changed |= expandLoad(MOI.getValue(), MI);
+ else if (const auto &MOI = getStoreInfo(MI))
+ Changed |= expandStore(MOI.getValue(), MI);
+ else if (const auto &MOI = getAtomicCmpxchgInfo(MI))
+ Changed |= expandAtomicCmpxchg(MOI.getValue(), MI);
+ else if (const auto &MOI = getAtomicRmwInfo(MI))
+ Changed |= expandAtomicRmw(MOI.getValue(), MI);
}
}
More information about the llvm-commits
mailing list