1249259Sdim//===-- AMDGPU.h - MachineFunction passes hw codegen --------------*- C++ -*-=//
2249259Sdim//
3249259Sdim//                     The LLVM Compiler Infrastructure
4249259Sdim//
5249259Sdim// This file is distributed under the University of Illinois Open Source
6249259Sdim// License. See LICENSE.TXT for details.
7249259Sdim//
8249259Sdim/// \file
9249259Sdim//===----------------------------------------------------------------------===//
10249259Sdim
11249259Sdim#ifndef AMDGPU_H
12249259Sdim#define AMDGPU_H
13249259Sdim
14249259Sdim#include "AMDGPUTargetMachine.h"
15249259Sdim#include "llvm/Support/TargetRegistry.h"
16249259Sdim#include "llvm/Target/TargetMachine.h"
17249259Sdim
18249259Sdimnamespace llvm {
19249259Sdim
20249259Sdimclass FunctionPass;
21249259Sdimclass AMDGPUTargetMachine;
22249259Sdim
23249259Sdim// R600 Passes
24249259SdimFunctionPass* createR600KernelParametersPass(const DataLayout *TD);
25249259SdimFunctionPass *createR600ExpandSpecialInstrsPass(TargetMachine &tm);
26249259SdimFunctionPass *createR600EmitClauseMarkers(TargetMachine &tm);
27251662SdimFunctionPass *createR600Packetizer(TargetMachine &tm);
28249259SdimFunctionPass *createR600ControlFlowFinalizer(TargetMachine &tm);
29249259Sdim
30249259Sdim// SI Passes
31249259SdimFunctionPass *createSIAnnotateControlFlowPass();
32249259SdimFunctionPass *createSILowerControlFlowPass(TargetMachine &tm);
33249259SdimFunctionPass *createSICodeEmitterPass(formatted_raw_ostream &OS);
34249259SdimFunctionPass *createSIInsertWaits(TargetMachine &tm);
35249259Sdim
36249259Sdim// Passes common to R600 and SI
37249259SdimPass *createAMDGPUStructurizeCFGPass();
38249259SdimFunctionPass *createAMDGPUConvertToISAPass(TargetMachine &tm);
39249259SdimFunctionPass* createAMDGPUIndirectAddressingPass(TargetMachine &tm);
40249259Sdim
41249259Sdim} // End namespace llvm
42249259Sdim
43249259Sdimnamespace ShaderType {
44249259Sdim  enum Type {
45249259Sdim    PIXEL = 0,
46249259Sdim    VERTEX = 1,
47249259Sdim    GEOMETRY = 2,
48249259Sdim    COMPUTE = 3
49249259Sdim  };
50249259Sdim}
51249259Sdim
52249259Sdim#endif // AMDGPU_H
53