From c3fe46bbcfa5b399c196d257cc9000e48896a37f Mon Sep 17 00:00:00 2001 From: Matt Arsenault Date: Thu, 8 Mar 2018 16:24:16 +0000 Subject: [PATCH] AMDGPU/GlobalISel: Pass subtarget + TM to LegalizerInfo These are the parameters x86 already uses. llvm-svn: 327020 --- llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp | 3 ++- llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.h | 5 ++++- llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp | 4 ++-- llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h | 2 +- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp b/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp index 1a2b96a..366a2eb 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp @@ -23,7 +23,8 @@ using namespace llvm; using namespace LegalizeActions; -AMDGPULegalizerInfo::AMDGPULegalizerInfo() { +AMDGPULegalizerInfo::AMDGPULegalizerInfo(const SISubtarget &ST, + const GCNTargetMachine &TM) { using namespace TargetOpcode; const LLT S1= LLT::scalar(1); diff --git a/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.h b/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.h index 291e336..f972c74 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.h +++ b/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.h @@ -19,12 +19,15 @@ namespace llvm { +class GCNTargetMachine; class LLVMContext; +class SISubtarget; /// This class provides the information for the target register banks. class AMDGPULegalizerInfo : public LegalizerInfo { public: - AMDGPULegalizerInfo(); + AMDGPULegalizerInfo(const SISubtarget &ST, + const GCNTargetMachine &TM); }; } // End llvm namespace. #endif diff --git a/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp b/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp index 270ee27..640ff7e 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp @@ -367,12 +367,12 @@ R600Subtarget::R600Subtarget(const Triple &TT, StringRef GPU, StringRef FS, TLInfo(TM, *this) {} SISubtarget::SISubtarget(const Triple &TT, StringRef GPU, StringRef FS, - const TargetMachine &TM) + const GCNTargetMachine &TM) : AMDGPUSubtarget(TT, GPU, FS, TM), InstrInfo(*this), FrameLowering(TargetFrameLowering::StackGrowsUp, getStackAlignment(), 0), TLInfo(TM, *this) { CallLoweringInfo.reset(new AMDGPUCallLowering(*getTargetLowering())); - Legalizer.reset(new AMDGPULegalizerInfo()); + Legalizer.reset(new AMDGPULegalizerInfo(*this, TM)); RegBankInfo.reset(new AMDGPURegisterBankInfo(*getRegisterInfo())); InstSelector.reset(new AMDGPUInstructionSelector( diff --git a/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h b/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h index 0897f20..830c077 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h +++ b/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h @@ -705,7 +705,7 @@ private: public: SISubtarget(const Triple &TT, StringRef CPU, StringRef FS, - const TargetMachine &TM); + const GCNTargetMachine &TM); const SIInstrInfo *getInstrInfo() const override { return &InstrInfo; -- 2.7.4