1//===-- AMDGPU.h - MachineFunction passes hw codegen --------------*- 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/// \file 9//===----------------------------------------------------------------------===// 10 11#ifndef AMDGPU_H 12#define AMDGPU_H 13 14#include "AMDGPUTargetMachine.h" 15#include "llvm/Support/TargetRegistry.h" 16#include "llvm/Target/TargetMachine.h" 17 18namespace llvm { 19 20class FunctionPass; 21class AMDGPUTargetMachine; 22 23// R600 Passes 24FunctionPass* createR600KernelParametersPass(const DataLayout *TD); 25FunctionPass *createR600ExpandSpecialInstrsPass(TargetMachine &tm); 26FunctionPass *createR600EmitClauseMarkers(TargetMachine &tm); 27FunctionPass *createR600Packetizer(TargetMachine &tm); 28FunctionPass *createR600ControlFlowFinalizer(TargetMachine &tm); 29 30// SI Passes 31FunctionPass *createSIAnnotateControlFlowPass(); 32FunctionPass *createSILowerControlFlowPass(TargetMachine &tm); 33FunctionPass *createSICodeEmitterPass(formatted_raw_ostream &OS); 34FunctionPass *createSIInsertWaits(TargetMachine &tm); 35 36// Passes common to R600 and SI 37Pass *createAMDGPUStructurizeCFGPass(); 38FunctionPass *createAMDGPUConvertToISAPass(TargetMachine &tm); 39FunctionPass* createAMDGPUIndirectAddressingPass(TargetMachine &tm); 40 41} // End namespace llvm 42 43namespace ShaderType { 44 enum Type { 45 PIXEL = 0, 46 VERTEX = 1, 47 GEOMETRY = 2, 48 COMPUTE = 3 49 }; 50} 51 52#endif // AMDGPU_H 53