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