summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/AMDGPU/Utils
diff options
context:
space:
mode:
authorKonstantin Zhuravlyov <kzhuravl_dev@outlook.com>2016-09-30 17:01:40 +0000
committerKonstantin Zhuravlyov <kzhuravl_dev@outlook.com>2016-09-30 17:01:40 +0000
commit836cbff695fe6e9eba2846f8cb5dd8ad0d11443e (patch)
tree4aca0017be56fb3fbaf8ba44dad323f998842957 /llvm/lib/Target/AMDGPU/Utils
parent3ccf825e229087b2b43f4f0be2ffe8c20db94282 (diff)
downloadbcm5719-llvm-836cbff695fe6e9eba2846f8cb5dd8ad0d11443e.tar.gz
bcm5719-llvm-836cbff695fe6e9eba2846f8cb5dd8ad0d11443e.zip
[AMDGPU] Choose VMCNT, EXPCNT, LGKMCNT masks and shifts based on the isa version
Differential Revision: https://reviews.llvm.org/D24973 llvm-svn: 282877
Diffstat (limited to 'llvm/lib/Target/AMDGPU/Utils')
-rw-r--r--llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp24
-rw-r--r--llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h18
2 files changed, 42 insertions, 0 deletions
diff --git a/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp b/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
index 51b56e04e52..9be0e298ca5 100644
--- a/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
+++ b/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
@@ -152,6 +152,30 @@ std::pair<int, int> getIntegerPairAttribute(const Function &F,
return Ints;
}
+unsigned getVmcntMask(IsaVersion Version) {
+ return 0xf;
+}
+
+unsigned getVmcntShift(IsaVersion Version) {
+ return 0;
+}
+
+unsigned getExpcntMask(IsaVersion Version) {
+ return 0x7;
+}
+
+unsigned getExpcntShift(IsaVersion Version) {
+ return 4;
+}
+
+unsigned getLgkmcntMask(IsaVersion Version) {
+ return 0xf;
+}
+
+unsigned getLgkmcntShift(IsaVersion Version) {
+ return 8;
+}
+
unsigned getInitialPSInputAddr(const Function &F) {
return getIntegerAttribute(F, "InitialPSInputAddr", 0);
}
diff --git a/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h b/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
index 1b8b8a07302..72fd797b06d 100644
--- a/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
+++ b/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
@@ -69,6 +69,24 @@ std::pair<int, int> getIntegerPairAttribute(const Function &F,
std::pair<int, int> Default,
bool OnlyFirstRequired = false);
+/// \returns VMCNT bit mask for given isa \p Version.
+unsigned getVmcntMask(IsaVersion Version);
+
+/// \returns VMCNT bit shift for given isa \p Version.
+unsigned getVmcntShift(IsaVersion Version);
+
+/// \returns EXPCNT bit mask for given isa \p Version.
+unsigned getExpcntMask(IsaVersion Version);
+
+/// \returns EXPCNT bit shift for given isa \p Version.
+unsigned getExpcntShift(IsaVersion Version);
+
+/// \returns LGKMCNT bit mask for given isa \p Version.
+unsigned getLgkmcntMask(IsaVersion Version);
+
+/// \returns LGKMCNT bit shift for given isa \p Version.
+unsigned getLgkmcntShift(IsaVersion Version);
+
unsigned getInitialPSInputAddr(const Function &F);
bool isShader(CallingConv::ID cc);
OpenPOWER on IntegriCloud