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 18 namespace llvm { 19 20 class FunctionPass; 21 class AMDGPUTargetMachine; 22 23 // R600 Passes 24 FunctionPass* createR600KernelParametersPass(const DataLayout *TD); 25 FunctionPass *createR600ExpandSpecialInstrsPass(TargetMachine &tm); 26 27 // SI Passes 28 FunctionPass *createSIAnnotateControlFlowPass(); 29 FunctionPass *createSILowerControlFlowPass(TargetMachine &tm); 30 FunctionPass *createSICodeEmitterPass(formatted_raw_ostream &OS); 31 FunctionPass *createSIInsertWaits(TargetMachine &tm); 32 33 // Passes common to R600 and SI 34 Pass *createAMDGPUStructurizeCFGPass(); 35 FunctionPass *createAMDGPUConvertToISAPass(TargetMachine &tm); 36 FunctionPass* createAMDGPUIndirectAddressingPass(TargetMachine &tm); 37 38 } // End namespace llvm 39 40 namespace ShaderType { 41 enum Type { 42 PIXEL = 0, 43 VERTEX = 1, 44 GEOMETRY = 2, 45 COMPUTE = 3 46 }; 47 } 48 49 #endif // AMDGPU_H 50