summaryrefslogtreecommitdiff
path: root/lib/Target/AMDGPU/R600MachineFunctionInfo.h
blob: e97fb5be62ec0e594051c0a7062135fd11be9aa2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//===-- R600MachineFunctionInfo.h - R600 Machine Function Info ----*- C++ -*-=//
//
//                     The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
/// \file
//===----------------------------------------------------------------------===//

#ifndef R600MACHINEFUNCTIONINFO_H
#define R600MACHINEFUNCTIONINFO_H

#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/SelectionDAG.h"
#include <vector>

namespace llvm {

class R600MachineFunctionInfo : public MachineFunctionInfo {

public:
  R600MachineFunctionInfo(const MachineFunction &MF);
  std::vector<unsigned> ReservedRegs;
  SDNode *Outputs[16];
  SDNode *StreamOutputs[64][4];
  bool HasLinearInterpolation;
  bool HasPerspectiveInterpolation;

  unsigned GetIJLinearIndex() const;
  unsigned GetIJPerspectiveIndex() const;

};

} // End llvm namespace

#endif //R600MACHINEFUNCTIONINFO_H