1 //===------- AMDILSIDevice.h - Define SI Device for AMDIL -*- C++ -*------===//
\r
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 //==-----------------------------------------------------------------------===//
\r
10 // Interface for the subtarget data classes.
\r
12 //===---------------------------------------------------------------------===//
\r
13 // This file will define the interface that each generation needs to
\r
14 // implement in order to correctly answer queries on the capabilities of the
\r
15 // specific hardware.
\r
16 //===---------------------------------------------------------------------===//
\r
17 #ifndef _AMDILSIDEVICE_H_
\r
18 #define _AMDILSIDEVICE_H_
\r
19 #include "AMDILEvergreenDevice.h"
\r
20 #include "AMDILSubtarget.h"
\r
23 class AMDILSubtarget;
\r
24 //===---------------------------------------------------------------------===//
\r
25 // SI generation of devices and their respective sub classes
\r
26 //===---------------------------------------------------------------------===//
\r
28 // The AMDILSIDevice is the base class for all Northern Island series of
\r
29 // cards. It is very similiar to the AMDILEvergreenDevice, with the major
\r
30 // exception being differences in wavefront size and hardware capabilities. The
\r
31 // SI devices are all 64 wide wavefronts and also add support for signed 24 bit
\r
32 // integer operations
\r
34 class AMDILSIDevice : public AMDILEvergreenDevice {
\r
36 AMDILSIDevice(AMDILSubtarget*);
\r
37 virtual ~AMDILSIDevice();
\r
38 virtual size_t getMaxLDSSize() const;
\r
39 virtual uint32_t getGeneration() const;
\r
40 virtual std::string getDataLayout() const;
\r
45 #endif // _AMDILSIDEVICE_H_
\r