================ @@ -5,12 +5,159 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// +// +/// \file +/// This file contains both AMDGPU-R600 target machine and the CodeGen pass +/// builder. The target machine contains all of the hardware specific +/// information needed to emit code for R600 GPUs and the CodeGen pass builder +/// handles the same for new pass manager infrastructure. +// +//===----------------------------------------------------------------------===// #include "R600CodeGenPassBuilder.h" -#include "R600TargetMachine.h" +#include "R600.h" +#include "R600MachineScheduler.h" +#include "R600TargetTransformInfo.h" +#include "llvm/Transforms/Scalar.h" +#include <optional> using namespace llvm; +static cl::opt<bool> + EnableR600StructurizeCFG("r600-ir-structurize", + cl::desc("Use StructurizeCFG IR pass"), + cl::init(true)); + +static cl::opt<bool> EnableR600IfConvert("r600-if-convert", + cl::desc("Use if conversion pass"), + cl::ReallyHidden, cl::init(true)); + +static cl::opt<bool, true> EnableAMDGPUFunctionCallsOpt( + "amdgpu-function-calls", cl::desc("Enable AMDGPU function call support"), + cl::location(AMDGPUTargetMachine::EnableFunctionCalls), cl::init(true), + cl::Hidden); + +static ScheduleDAGInstrs *createR600MachineScheduler(MachineSchedContext *C) { + return new ScheduleDAGMILive(C, std::make_unique<R600SchedStrategy>()); +} + +static MachineSchedRegistry R600SchedRegistry("r600", + "Run R600's custom scheduler", + createR600MachineScheduler); + +//===----------------------------------------------------------------------===// +// R600 Target Machine (R600 -> Cayman) - Legacy Pass Manager interface. +//===----------------------------------------------------------------------===// + +R600TargetMachine::R600TargetMachine(const Target &T, const Triple &TT, ---------------- arsenm wrote:
I don't want to move the TargetMachines; only TargetPassConfig https://github.com/llvm/llvm-project/pull/103721 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits