1*349cc55cSDimitry Andric //===-- AMDGPU.h - MachineFunction passes hw codegen --------------*- C++ -*-=// 2*349cc55cSDimitry Andric // 3*349cc55cSDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*349cc55cSDimitry Andric // See https://llvm.org/LICENSE.txt for license information. 5*349cc55cSDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*349cc55cSDimitry Andric // 7*349cc55cSDimitry Andric /// \file 8*349cc55cSDimitry Andric //===----------------------------------------------------------------------===// 9*349cc55cSDimitry Andric 10*349cc55cSDimitry Andric #ifndef LLVM_LIB_TARGET_AMDGPU_R600_H 11*349cc55cSDimitry Andric #define LLVM_LIB_TARGET_AMDGPU_R600_H 12*349cc55cSDimitry Andric 13*349cc55cSDimitry Andric #include "llvm/Support/CodeGen.h" 14*349cc55cSDimitry Andric 15*349cc55cSDimitry Andric namespace llvm { 16*349cc55cSDimitry Andric 17*349cc55cSDimitry Andric class FunctionPass; 18*349cc55cSDimitry Andric class TargetMachine; 19*349cc55cSDimitry Andric class ModulePass; 20*349cc55cSDimitry Andric class PassRegistry; 21*349cc55cSDimitry Andric 22*349cc55cSDimitry Andric // R600 Passes 23*349cc55cSDimitry Andric FunctionPass *createR600VectorRegMerger(); 24*349cc55cSDimitry Andric FunctionPass *createR600ExpandSpecialInstrsPass(); 25*349cc55cSDimitry Andric FunctionPass *createR600EmitClauseMarkers(); 26*349cc55cSDimitry Andric FunctionPass *createR600ClauseMergePass(); 27*349cc55cSDimitry Andric FunctionPass *createR600Packetizer(); 28*349cc55cSDimitry Andric FunctionPass *createR600ControlFlowFinalizer(); 29*349cc55cSDimitry Andric FunctionPass *createAMDGPUCFGStructurizerPass(); 30*349cc55cSDimitry Andric FunctionPass *createR600ISelDag(TargetMachine *TM, CodeGenOpt::Level OptLevel); 31*349cc55cSDimitry Andric ModulePass *createR600OpenCLImageTypeLoweringPass(); 32*349cc55cSDimitry Andric 33*349cc55cSDimitry Andric void initializeR600ClauseMergePassPass(PassRegistry &); 34*349cc55cSDimitry Andric extern char &R600ClauseMergePassID; 35*349cc55cSDimitry Andric 36*349cc55cSDimitry Andric void initializeR600ControlFlowFinalizerPass(PassRegistry &); 37*349cc55cSDimitry Andric extern char &R600ControlFlowFinalizerID; 38*349cc55cSDimitry Andric 39*349cc55cSDimitry Andric void initializeR600ExpandSpecialInstrsPassPass(PassRegistry &); 40*349cc55cSDimitry Andric extern char &R600ExpandSpecialInstrsPassID; 41*349cc55cSDimitry Andric 42*349cc55cSDimitry Andric void initializeR600VectorRegMergerPass(PassRegistry &); 43*349cc55cSDimitry Andric extern char &R600VectorRegMergerID; 44*349cc55cSDimitry Andric 45*349cc55cSDimitry Andric void initializeR600PacketizerPass(PassRegistry &); 46*349cc55cSDimitry Andric extern char &R600PacketizerID; 47*349cc55cSDimitry Andric 48*349cc55cSDimitry Andric } // End namespace llvm 49*349cc55cSDimitry Andric 50*349cc55cSDimitry Andric #endif 51