OSDN Git Service

radeonsi: initial WIP SI code
[android-x86/external-mesa.git] / src / gallium / drivers / radeon / SIISelLowering.h
1 //===-- SIISelLowering.h - TODO: Add brief description -------===//
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 // TODO: Add full description
11 //
12 //===----------------------------------------------------------------------===//
13
14 #ifndef SIISELLOWERING_H
15 #define SIISELLOWERING_H
16
17 #include "AMDGPUISelLowering.h"
18 #include "SIInstrInfo.h"
19
20 namespace llvm {
21
22 class SITargetLowering : public AMDGPUTargetLowering
23 {
24   const SIInstrInfo * TII;
25
26   void AppendS_WAITCNT(MachineInstr *MI, MachineBasicBlock &BB,
27               MachineBasicBlock::iterator I) const;
28   void LowerSI_INTERP(MachineInstr *MI, MachineBasicBlock &BB,
29               MachineBasicBlock::iterator I, MachineRegisterInfo & MRI) const;
30   void LowerSI_INTERP_CONST(MachineInstr *MI, MachineBasicBlock &BB,
31               MachineBasicBlock::iterator I) const;
32   void LowerSI_V_CNDLT(MachineInstr *MI, MachineBasicBlock &BB,
33               MachineBasicBlock::iterator I, MachineRegisterInfo & MRI) const;
34   void lowerUSE_SGPR(MachineInstr *MI, MachineFunction * MF,
35                      MachineRegisterInfo & MRI) const;
36 public:
37   SITargetLowering(TargetMachine &tm);
38   virtual MachineBasicBlock * EmitInstrWithCustomInserter(MachineInstr * MI,
39                                               MachineBasicBlock * BB) const;
40 };
41
42 } // End namespace llvm
43
44 #endif //SIISELLOWERING_H