[llvm] r258386 - AMDGPU/SI: Pass whether to use the SI scheduler via Target Attribute
Tom Stellard via llvm-commits
llvm-commits at lists.llvm.org
Wed Jan 20 20:34:51 PST 2016
Hi Hans,
Can we pull this into the 3.8 branch. This allows users to use an
experimental scheduler which was merged before the branch. I am the
code owner and I approve this commit.
Thanks,
Tom
On Thu, Jan 21, 2016 at 04:28:35AM -0000, Tom Stellard via llvm-commits wrote:
> Author: tstellar
> Date: Wed Jan 20 22:28:34 2016
> New Revision: 258386
>
> URL: http://llvm.org/viewvc/llvm-project?rev=258386&view=rev
> Log:
> AMDGPU/SI: Pass whether to use the SI scheduler via Target Attribute
>
> Summary:
> Currently the SI scheduler can be selected via command line option,
> but it turned out it would be better if it was selectable via a Target Attribute.
>
> This patch adds "si-scheduler" attribute to the backend.
>
> Reviewers: tstellarAMD, echristo
>
> Subscribers: echristo, arsenm
>
> Differential Revision: http://reviews.llvm.org/D16192
>
> Modified:
> llvm/trunk/lib/Target/AMDGPU/AMDGPU.td
> llvm/trunk/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
> llvm/trunk/lib/Target/AMDGPU/AMDGPUSubtarget.h
> llvm/trunk/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
>
> Modified: llvm/trunk/lib/Target/AMDGPU/AMDGPU.td
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/AMDGPU.td?rev=258386&r1=258385&r2=258386&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/AMDGPU/AMDGPU.td (original)
> +++ llvm/trunk/lib/Target/AMDGPU/AMDGPU.td Wed Jan 20 22:28:34 2016
> @@ -144,6 +144,11 @@ def FeatureEnableHugeScratchBuffer : Sub
> "true",
> "Enable scratch buffer sizes greater than 128 GB">;
>
> +def FeatureEnableSIScheduler : SubtargetFeature<"si-scheduler",
> + "EnableSIScheduler",
> + "true",
> + "Enable SI Machine Scheduler">;
> +
> class SubtargetFeatureFetchLimit <string Value> :
> SubtargetFeature <"fetch"#Value,
> "TexVTXClauseSize",
>
> Modified: llvm/trunk/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/AMDGPUSubtarget.cpp?rev=258386&r1=258385&r2=258386&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/AMDGPU/AMDGPUSubtarget.cpp (original)
> +++ llvm/trunk/lib/Target/AMDGPU/AMDGPUSubtarget.cpp Wed Jan 20 22:28:34 2016
> @@ -81,7 +81,7 @@ AMDGPUSubtarget::AMDGPUSubtarget(const T
> EnableVGPRSpilling(false), SGPRInitBug(false), IsGCN(false),
> GCN1Encoding(false), GCN3Encoding(false), CIInsts(false), LDSBankCount(0),
> IsaVersion(ISAVersion0_0_0), EnableHugeScratchBuffer(false),
> - FrameLowering(nullptr),
> + EnableSIScheduler(false), FrameLowering(nullptr),
> InstrItins(getInstrItineraryForCPU(GPU)), TargetTriple(TT) {
>
> initializeSubtargetDependencies(TT, GPU, FS);
>
> Modified: llvm/trunk/lib/Target/AMDGPU/AMDGPUSubtarget.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/AMDGPUSubtarget.h?rev=258386&r1=258385&r2=258386&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/AMDGPU/AMDGPUSubtarget.h (original)
> +++ llvm/trunk/lib/Target/AMDGPU/AMDGPUSubtarget.h Wed Jan 20 22:28:34 2016
> @@ -92,6 +92,7 @@ private:
> int LDSBankCount;
> unsigned IsaVersion;
> bool EnableHugeScratchBuffer;
> + bool EnableSIScheduler;
>
> std::unique_ptr<AMDGPUFrameLowering> FrameLowering;
> std::unique_ptr<AMDGPUTargetLowering> TLInfo;
> @@ -286,6 +287,10 @@ public:
> return EnableHugeScratchBuffer;
> }
>
> + bool enableSIScheduler() const {
> + return EnableSIScheduler;
> + }
> +
> bool dumpCode() const {
> return DumpCode;
> }
>
> Modified: llvm/trunk/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp?rev=258386&r1=258385&r2=258386&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp (original)
> +++ llvm/trunk/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp Wed Jan 20 22:28:34 2016
> @@ -148,6 +148,8 @@ public:
> const AMDGPUSubtarget &ST = *getAMDGPUTargetMachine().getSubtargetImpl();
> if (ST.getGeneration() <= AMDGPUSubtarget::NORTHERN_ISLANDS)
> return createR600MachineScheduler(C);
> + else if (ST.enableSIScheduler())
> + return createSIMachineScheduler(C);
> return nullptr;
> }
>
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list