Restrict sin/cos optimization to 64-bit only for now. 32-bit is a bit messy and less...
[oota-llvm.git] / lib / Target / R600 / AMDILSIDevice.h
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 /// \file
11 /// \brief Interface for the subtarget data classes.
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
21 namespace llvm {
22 class AMDGPUSubtarget;
23 //===---------------------------------------------------------------------===//
24 // SI generation of devices and their respective sub classes
25 //===---------------------------------------------------------------------===//
26
27 /// \brief The AMDGPUSIDevice is the base class for all Southern Island series
28 /// of cards.
29 class AMDGPUSIDevice : public AMDGPUEvergreenDevice {
30 public:
31   AMDGPUSIDevice(AMDGPUSubtarget*);
32   virtual ~AMDGPUSIDevice();
33   virtual size_t getMaxLDSSize() const;
34   virtual uint32_t getGeneration() const;
35   virtual std::string getDataLayout() const;
36 };
37
38 } // namespace llvm
39 #endif // AMDILSIDEVICE_H