1349cc55cSDimitry Andric //===-- AMDGPU.h - MachineFunction passes hw codegen --------------*- C++ -*-=// 2349cc55cSDimitry Andric // 3349cc55cSDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4349cc55cSDimitry Andric // See https://llvm.org/LICENSE.txt for license information. 5349cc55cSDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6349cc55cSDimitry Andric // 7349cc55cSDimitry Andric /// \file 8349cc55cSDimitry Andric //===----------------------------------------------------------------------===// 9349cc55cSDimitry Andric 10349cc55cSDimitry Andric #ifndef LLVM_LIB_TARGET_AMDGPU_R600_H 11349cc55cSDimitry Andric #define LLVM_LIB_TARGET_AMDGPU_R600_H 12349cc55cSDimitry Andric 13349cc55cSDimitry Andric #include "llvm/Support/CodeGen.h" 14349cc55cSDimitry Andric 15349cc55cSDimitry Andric namespace llvm { 16349cc55cSDimitry Andric 17349cc55cSDimitry Andric class FunctionPass; 18349cc55cSDimitry Andric class TargetMachine; 19349cc55cSDimitry Andric class ModulePass; 20349cc55cSDimitry Andric class PassRegistry; 21349cc55cSDimitry Andric 22349cc55cSDimitry Andric // R600 Passes 23349cc55cSDimitry Andric FunctionPass *createR600VectorRegMerger(); 24349cc55cSDimitry Andric FunctionPass *createR600ExpandSpecialInstrsPass(); 25349cc55cSDimitry Andric FunctionPass *createR600EmitClauseMarkers(); 26349cc55cSDimitry Andric FunctionPass *createR600ClauseMergePass(); 27349cc55cSDimitry Andric FunctionPass *createR600Packetizer(); 28349cc55cSDimitry Andric FunctionPass *createR600ControlFlowFinalizer(); 2981ad6265SDimitry Andric FunctionPass *createR600MachineCFGStructurizerPass(); 30*5f757f3fSDimitry Andric FunctionPass *createR600ISelDag(TargetMachine &TM, CodeGenOptLevel OptLevel); 31349cc55cSDimitry Andric ModulePass *createR600OpenCLImageTypeLoweringPass(); 32349cc55cSDimitry Andric 33349cc55cSDimitry Andric void initializeR600ClauseMergePassPass(PassRegistry &); 34349cc55cSDimitry Andric extern char &R600ClauseMergePassID; 35349cc55cSDimitry Andric 36349cc55cSDimitry Andric void initializeR600ControlFlowFinalizerPass(PassRegistry &); 37349cc55cSDimitry Andric extern char &R600ControlFlowFinalizerID; 38349cc55cSDimitry Andric 39349cc55cSDimitry Andric void initializeR600ExpandSpecialInstrsPassPass(PassRegistry &); 40349cc55cSDimitry Andric extern char &R600ExpandSpecialInstrsPassID; 41349cc55cSDimitry Andric 42349cc55cSDimitry Andric void initializeR600VectorRegMergerPass(PassRegistry &); 43349cc55cSDimitry Andric extern char &R600VectorRegMergerID; 44349cc55cSDimitry Andric 45349cc55cSDimitry Andric void initializeR600PacketizerPass(PassRegistry &); 46349cc55cSDimitry Andric extern char &R600PacketizerID; 47349cc55cSDimitry Andric 48349cc55cSDimitry Andric } // End namespace llvm 49349cc55cSDimitry Andric 50349cc55cSDimitry Andric #endif 51