//===-- AMDGPUTargetMachine.h - AMDGPU TargetMachine Interface --*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // /// \file /// The AMDGPU TargetMachine interface definition for hw codegen targets. // //===----------------------------------------------------------------------===// #ifndef LLVM_LIB_TARGET_AMDGPU_AMDGPUTARGETMACHINE_H #define LLVM_LIB_TARGET_AMDGPU_AMDGPUTARGETMACHINE_H #include "GCNSubtarget.h" #include "llvm/CodeGen/TargetPassConfig.h" #include "llvm/MC/MCStreamer.h" #include "llvm/Passes/CodeGenPassBuilder.h" #include "llvm/Target/TargetMachine.h" #include <optional> #include <utility> namespace llvm { //===----------------------------------------------------------------------===// // AMDGPU Target Machine (R600+) //===----------------------------------------------------------------------===// class AMDGPUTargetMachine : public LLVMTargetMachine { … }; //===----------------------------------------------------------------------===// // GCN Target Machine (SI+) //===----------------------------------------------------------------------===// class GCNTargetMachine final : public AMDGPUTargetMachine { … }; //===----------------------------------------------------------------------===// // AMDGPU Pass Setup - For Legacy Pass Manager. //===----------------------------------------------------------------------===// class AMDGPUPassConfig : public TargetPassConfig { … }; //===----------------------------------------------------------------------===// // AMDGPU CodeGen Pass Builder interface. //===----------------------------------------------------------------------===// class AMDGPUCodeGenPassBuilder : public CodeGenPassBuilder<AMDGPUCodeGenPassBuilder, GCNTargetMachine> { … }; } // end namespace llvm #endif // LLVM_LIB_TARGET_AMDGPU_AMDGPUTARGETMACHINE_H