1 //===-- AMDIL7XXDevice.cpp - Device Info for 7XX GPUs ---------------------===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //==-----------------------------------------------------------------------===//
9 #include "AMDIL7XXDevice.h"
10 #include "AMDILDevice.h"
14 AMDIL7XXDevice::AMDIL7XXDevice(AMDILSubtarget *ST) : AMDILDevice(ST)
17 std::string name = mSTM->getDeviceName();
18 if (name == "rv710") {
19 mDeviceFlag = OCL_DEVICE_RV710;
20 } else if (name == "rv730") {
21 mDeviceFlag = OCL_DEVICE_RV730;
23 mDeviceFlag = OCL_DEVICE_RV770;
27 AMDIL7XXDevice::~AMDIL7XXDevice()
31 void AMDIL7XXDevice::setCaps()
33 mSWBits.set(AMDILDeviceInfo::LocalMem);
36 size_t AMDIL7XXDevice::getMaxLDSSize() const
38 if (usesHardware(AMDILDeviceInfo::LocalMem)) {
39 return MAX_LDS_SIZE_700;
44 size_t AMDIL7XXDevice::getWavefrontSize() const
46 return AMDILDevice::HalfWavefrontSize;
49 uint32_t AMDIL7XXDevice::getGeneration() const
51 return AMDILDeviceInfo::HD4XXX;
54 uint32_t AMDIL7XXDevice::getResourceID(uint32_t DeviceID) const
58 assert(0 && "ID type passed in is unknown!");
66 if (usesHardware(AMDILDeviceInfo::LocalMem)) {
67 return DEFAULT_LDS_ID;
71 if (usesHardware(AMDILDeviceInfo::PrivateMem)) {
72 return DEFAULT_SCRATCH_ID;
76 assert(0 && "GDS UAV ID is not supported on this chip");
77 if (usesHardware(AMDILDeviceInfo::RegionMem)) {
78 return DEFAULT_GDS_ID;
86 uint32_t AMDIL7XXDevice::getMaxNumUAVs() const
91 AMDIL770Device::AMDIL770Device(AMDILSubtarget *ST): AMDIL7XXDevice(ST)
96 AMDIL770Device::~AMDIL770Device()
100 void AMDIL770Device::setCaps()
102 if (mSTM->isOverride(AMDILDeviceInfo::DoubleOps)) {
103 mSWBits.set(AMDILDeviceInfo::FMA);
104 mHWBits.set(AMDILDeviceInfo::DoubleOps);
106 mSWBits.set(AMDILDeviceInfo::BarrierDetect);
107 mHWBits.reset(AMDILDeviceInfo::LongOps);
108 mSWBits.set(AMDILDeviceInfo::LongOps);
109 mSWBits.set(AMDILDeviceInfo::LocalMem);
112 size_t AMDIL770Device::getWavefrontSize() const
114 return AMDILDevice::WavefrontSize;
117 AMDIL710Device::AMDIL710Device(AMDILSubtarget *ST) : AMDIL7XXDevice(ST)
121 AMDIL710Device::~AMDIL710Device()
125 size_t AMDIL710Device::getWavefrontSize() const
127 return AMDILDevice::QuarterWavefrontSize;