AMDGPU.h revision 249259
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 *createR600ControlFlowFinalizer(TargetMachine &tm); 28 29// SI Passes 30FunctionPass *createSIAnnotateControlFlowPass(); 31FunctionPass *createSILowerControlFlowPass(TargetMachine &tm); 32FunctionPass *createSICodeEmitterPass(formatted_raw_ostream &OS); 33FunctionPass *createSIInsertWaits(TargetMachine &tm); 34 35// Passes common to R600 and SI 36Pass *createAMDGPUStructurizeCFGPass(); 37FunctionPass *createAMDGPUConvertToISAPass(TargetMachine &tm); 38FunctionPass* createAMDGPUIndirectAddressingPass(TargetMachine &tm); 39 40} // End namespace llvm 41 42namespace ShaderType { 43 enum Type { 44 PIXEL = 0, 45 VERTEX = 1, 46 GEOMETRY = 2, 47 COMPUTE = 3 48 }; 49} 50 51#endif // AMDGPU_H 52