[llvm] r341895 - AMDGPU: Remove leftovers from configurable address spaces
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Mon Sep 10 21:00:49 PDT 2018
Author: arsenm
Date: Mon Sep 10 21:00:49 2018
New Revision: 341895
URL: http://llvm.org/viewvc/llvm-project?rev=341895&view=rev
Log:
AMDGPU: Remove leftovers from configurable address spaces
Modified:
llvm/trunk/lib/Target/AMDGPU/AMDGPUAliasAnalysis.cpp
llvm/trunk/lib/Target/AMDGPU/AMDGPUAliasAnalysis.h
Modified: llvm/trunk/lib/Target/AMDGPU/AMDGPUAliasAnalysis.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/AMDGPUAliasAnalysis.cpp?rev=341895&r1=341894&r2=341895&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AMDGPU/AMDGPUAliasAnalysis.cpp (original)
+++ llvm/trunk/lib/Target/AMDGPU/AMDGPUAliasAnalysis.cpp Mon Sep 10 21:00:49 2018
@@ -46,12 +46,8 @@ void AMDGPUAAWrapperPass::getAnalysisUsa
AU.setPreservesAll();
}
-// Must match the table in getAliasResult.
-AMDGPUAAResult::ASAliasRulesTy::ASAliasRulesTy(Triple::ArchType Arch_)
- : Arch(Arch_) {
- // These arrarys are indexed by address space value
- // enum elements 0 ... to 6
- static const AliasResult ASAliasRulesGenIsZero[7][7] = {
+// These arrays are indexed by address space value enum elements 0 ... to 6
+static const AliasResult ASAliasRules[7][7] = {
/* Flat Global Region Group Constant Private Constant 32-bit */
/* Flat */ {MayAlias, MayAlias, MayAlias, MayAlias, MayAlias, MayAlias, MayAlias},
/* Global */ {MayAlias, MayAlias, NoAlias , NoAlias , MayAlias, NoAlias , MayAlias},
@@ -60,22 +56,15 @@ AMDGPUAAResult::ASAliasRulesTy::ASAliasR
/* Constant */ {MayAlias, MayAlias, MayAlias, NoAlias , NoAlias, NoAlias , MayAlias},
/* Private */ {MayAlias, NoAlias , NoAlias , NoAlias , NoAlias , MayAlias, NoAlias},
/* Constant 32-bit */ {MayAlias, MayAlias, MayAlias, NoAlias , MayAlias, NoAlias , NoAlias}
- };
+};
+static AliasResult getAliasResult(unsigned AS1, unsigned AS2) {
static_assert(AMDGPUAS::MAX_AMDGPU_ADDRESS <= 6, "Addr space out of range");
- ASAliasRules = &ASAliasRulesGenIsZero;
-}
-
-AliasResult AMDGPUAAResult::ASAliasRulesTy::getAliasResult(unsigned AS1,
- unsigned AS2) const {
- if (AS1 > AMDGPUAS::MAX_AMDGPU_ADDRESS || AS2 > AMDGPUAS::MAX_AMDGPU_ADDRESS) {
- if (Arch == Triple::amdgcn)
- report_fatal_error("Pointer address space out of range");
- return AS1 == AS2 ? MayAlias : NoAlias;
- }
+ if (AS1 > AMDGPUAS::MAX_AMDGPU_ADDRESS || AS2 > AMDGPUAS::MAX_AMDGPU_ADDRESS)
+ return MayAlias;
- return (*ASAliasRules)[AS1][AS2];
+ return ASAliasRules[AS1][AS2];
}
AliasResult AMDGPUAAResult::alias(const MemoryLocation &LocA,
@@ -83,8 +72,9 @@ AliasResult AMDGPUAAResult::alias(const
unsigned asA = LocA.Ptr->getType()->getPointerAddressSpace();
unsigned asB = LocB.Ptr->getType()->getPointerAddressSpace();
- AliasResult Result = ASAliasRules.getAliasResult(asA, asB);
- if (Result == NoAlias) return Result;
+ AliasResult Result = getAliasResult(asA, asB);
+ if (Result == NoAlias)
+ return Result;
// Forward the query to the next alias analysis.
return AAResultBase::alias(LocA, LocB);
Modified: llvm/trunk/lib/Target/AMDGPU/AMDGPUAliasAnalysis.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/AMDGPUAliasAnalysis.h?rev=341895&r1=341894&r2=341895&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AMDGPU/AMDGPUAliasAnalysis.h (original)
+++ llvm/trunk/lib/Target/AMDGPU/AMDGPUAliasAnalysis.h Mon Sep 10 21:00:49 2018
@@ -36,10 +36,9 @@ class AMDGPUAAResult : public AAResultBa
public:
explicit AMDGPUAAResult(const DataLayout &DL, Triple T) : AAResultBase(),
- DL(DL), ASAliasRules(T.getArch()) {}
+ DL(DL) {}
AMDGPUAAResult(AMDGPUAAResult &&Arg)
- : AAResultBase(std::move(Arg)), DL(Arg.DL),
- ASAliasRules(Arg.ASAliasRules){}
+ : AAResultBase(std::move(Arg)), DL(Arg.DL) {}
/// Handle invalidation events from the new pass manager.
///
@@ -52,17 +51,6 @@ public:
private:
bool Aliases(const MDNode *A, const MDNode *B) const;
bool PathAliases(const MDNode *A, const MDNode *B) const;
-
- class ASAliasRulesTy {
- public:
- ASAliasRulesTy(Triple::ArchType Arch_);
-
- AliasResult getAliasResult(unsigned AS1, unsigned AS2) const;
-
- private:
- Triple::ArchType Arch;
- const AliasResult (*ASAliasRules)[7][7];
- } ASAliasRules;
};
/// Analysis pass providing a never-invalidated alias analysis result.
More information about the llvm-commits
mailing list