| //===------- AMDILSIDevice.h - Define SI Device for AMDIL -*- C++ -*------===// |
| // |
| // The LLVM Compiler Infrastructure |
| // |
| // This file is distributed under the University of Illinois Open Source |
| // License. See LICENSE.TXT for details. |
| // |
| //==-----------------------------------------------------------------------===// |
| // |
| // Interface for the subtarget data classes. |
| // |
| //===---------------------------------------------------------------------===// |
| // This file will define the interface that each generation needs to |
| // implement in order to correctly answer queries on the capabilities of the |
| // specific hardware. |
| //===---------------------------------------------------------------------===// |
| #ifndef _AMDILSIDEVICE_H_ |
| #define _AMDILSIDEVICE_H_ |
| #include "AMDILEvergreenDevice.h" |
| #include "AMDGPUSubtarget.h" |
| |
| namespace llvm { |
| class AMDGPUSubtarget; |
| //===---------------------------------------------------------------------===// |
| // SI generation of devices and their respective sub classes |
| //===---------------------------------------------------------------------===// |
| |
| // The AMDGPUSIDevice is the base class for all Northern Island series of |
| // cards. It is very similiar to the AMDGPUEvergreenDevice, with the major |
| // exception being differences in wavefront size and hardware capabilities. The |
| // SI devices are all 64 wide wavefronts and also add support for signed 24 bit |
| // integer operations |
| |
| class AMDGPUSIDevice : public AMDGPUEvergreenDevice { |
| public: |
| AMDGPUSIDevice(AMDGPUSubtarget*); |
| virtual ~AMDGPUSIDevice(); |
| virtual size_t getMaxLDSSize() const; |
| virtual uint32_t getGeneration() const; |
| virtual std::string getDataLayout() const; |
| protected: |
| }; // AMDGPUSIDevice |
| |
| } // namespace llvm |
| #endif // _AMDILSIDEVICE_H_ |