1//===------- AMDILSIDevice.h - Define SI Device for AMDIL -*- C++ -*------===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//==-----------------------------------------------------------------------===// 9// 10// Interface for the subtarget data classes. 11// 12//===---------------------------------------------------------------------===// 13// This file will define the interface that each generation needs to 14// implement in order to correctly answer queries on the capabilities of the 15// specific hardware. 16//===---------------------------------------------------------------------===// 17#ifndef _AMDILSIDEVICE_H_ 18#define _AMDILSIDEVICE_H_ 19#include "AMDILEvergreenDevice.h" 20#include "AMDGPUSubtarget.h" 21 22namespace llvm { 23 class AMDGPUSubtarget; 24//===---------------------------------------------------------------------===// 25// SI generation of devices and their respective sub classes 26//===---------------------------------------------------------------------===// 27 28// The AMDGPUSIDevice is the base class for all Northern Island series of 29// cards. It is very similiar to the AMDGPUEvergreenDevice, with the major 30// exception being differences in wavefront size and hardware capabilities. The 31// SI devices are all 64 wide wavefronts and also add support for signed 24 bit 32// integer operations 33 34 class AMDGPUSIDevice : public AMDGPUEvergreenDevice { 35 public: 36 AMDGPUSIDevice(AMDGPUSubtarget*); 37 virtual ~AMDGPUSIDevice(); 38 virtual size_t getMaxLDSSize() const; 39 virtual uint32_t getGeneration() const; 40 virtual std::string getDataLayout() const; 41 protected: 42 }; // AMDGPUSIDevice 43 44} // namespace llvm 45#endif // _AMDILSIDEVICE_H_ 46