radeon/llvm: Remove AMDILPrintfConvert.cpp
[mesa.git] / src / gallium / drivers / radeon / AMDIL7XXDevice.h
1 //==-- AMDIL7XXDevice.h - Define 7XX Device 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 _AMDIL7XXDEVICEIMPL_H_
18 #define _AMDIL7XXDEVICEIMPL_H_
19 #include "AMDILDevice.h"
20 #include "AMDILSubtarget.h"
21
22 namespace llvm {
23 class AMDILSubtarget;
24
25 //===----------------------------------------------------------------------===//
26 // 7XX generation of devices and their respective sub classes
27 //===----------------------------------------------------------------------===//
28
29 // The AMDIL7XXDevice class represents the generic 7XX device. All 7XX
30 // devices are derived from this class. The AMDIL7XX device will only
31 // support the minimal features that are required to be considered OpenCL 1.0
32 // compliant and nothing more.
33 class AMDIL7XXDevice : public AMDILDevice {
34 public:
35 AMDIL7XXDevice(AMDILSubtarget *ST);
36 virtual ~AMDIL7XXDevice();
37 virtual size_t getMaxLDSSize() const;
38 virtual size_t getWavefrontSize() const;
39 virtual uint32_t getGeneration() const;
40 virtual uint32_t getResourceID(uint32_t DeviceID) const;
41 virtual uint32_t getMaxNumUAVs() const;
42 AsmPrinter*
43 getAsmPrinter(TargetMachine& TM, MCStreamer &Streamer) const;
44
45 protected:
46 virtual void setCaps();
47 }; // AMDIL7XXDevice
48
49 // The AMDIL770Device class represents the RV770 chip and it's
50 // derivative cards. The difference between this device and the base
51 // class is this device device adds support for double precision
52 // and has a larger wavefront size.
53 class AMDIL770Device : public AMDIL7XXDevice {
54 public:
55 AMDIL770Device(AMDILSubtarget *ST);
56 virtual ~AMDIL770Device();
57 virtual size_t getWavefrontSize() const;
58 private:
59 virtual void setCaps();
60 }; // AMDIL770Device
61
62 // The AMDIL710Device class derives from the 7XX base class, but this
63 // class is a smaller derivative, so we need to overload some of the
64 // functions in order to correctly specify this information.
65 class AMDIL710Device : public AMDIL7XXDevice {
66 public:
67 AMDIL710Device(AMDILSubtarget *ST);
68 virtual ~AMDIL710Device();
69 virtual size_t getWavefrontSize() const;
70 }; // AMDIL710Device
71
72 } // namespace llvm
73 #endif // _AMDILDEVICEIMPL_H_