summaryrefslogtreecommitdiff
path: root/lib/Target/AMDGPU/AMDGPUAliasAnalysis.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Target/AMDGPU/AMDGPUAliasAnalysis.h')
-rw-r--r--lib/Target/AMDGPU/AMDGPUAliasAnalysis.h25
1 files changed, 19 insertions, 6 deletions
diff --git a/lib/Target/AMDGPU/AMDGPUAliasAnalysis.h b/lib/Target/AMDGPU/AMDGPUAliasAnalysis.h
index 5f8ed9b1f9a3e..645a38af753ce 100644
--- a/lib/Target/AMDGPU/AMDGPUAliasAnalysis.h
+++ b/lib/Target/AMDGPU/AMDGPUAliasAnalysis.h
@@ -1,4 +1,4 @@
-//===- AMDGPUAliasAnalysis ---------------------------------------*- C++ -*-==//
+//===- AMDGPUAliasAnalysis --------------------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
@@ -10,17 +10,24 @@
/// This is the AMGPU address space based alias analysis pass.
//===----------------------------------------------------------------------===//
-#ifndef LLVM_ANALYSIS_AMDGPUALIASANALYSIS_H
-#define LLVM_ANALYSIS_AMDGPUALIASANALYSIS_H
+#ifndef LLVM_LIB_TARGET_AMDGPU_AMDGPUALIASANALYSIS_H
+#define LLVM_LIB_TARGET_AMDGPU_AMDGPUALIASANALYSIS_H
#include "AMDGPU.h"
+#include "llvm/ADT/Triple.h"
#include "llvm/Analysis/AliasAnalysis.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/Module.h"
#include "llvm/Pass.h"
+#include <algorithm>
+#include <memory>
namespace llvm {
+class DataLayout;
+class MDNode;
+class MemoryLocation;
+
/// A simple AA result that uses TBAA metadata to answer queries.
class AMDGPUAAResult : public AAResultBase<AMDGPUAAResult> {
friend AAResultBase<AMDGPUAAResult>;
@@ -50,7 +57,9 @@ private:
class ASAliasRulesTy {
public:
ASAliasRulesTy(AMDGPUAS AS_, Triple::ArchType Arch_);
+
AliasResult getAliasResult(unsigned AS1, unsigned AS2) const;
+
private:
Triple::ArchType Arch;
AMDGPUAS AS;
@@ -61,10 +70,11 @@ private:
/// Analysis pass providing a never-invalidated alias analysis result.
class AMDGPUAA : public AnalysisInfoMixin<AMDGPUAA> {
friend AnalysisInfoMixin<AMDGPUAA>;
+
static char PassID;
public:
- typedef AMDGPUAAResult Result;
+ using Result = AMDGPUAAResult;
AMDGPUAAResult run(Function &F, AnalysisManager<Function> &AM) {
return AMDGPUAAResult(F.getParent()->getDataLayout(),
@@ -91,12 +101,15 @@ public:
Triple(M.getTargetTriple())));
return false;
}
+
bool doFinalization(Module &M) override {
Result.reset();
return false;
}
+
void getAnalysisUsage(AnalysisUsage &AU) const override;
};
-}
-#endif // LLVM_ANALYSIS_AMDGPUALIASANALYSIS_H
+} // end namespace llvm
+
+#endif // LLVM_LIB_TARGET_AMDGPU_AMDGPUALIASANALYSIS_H