[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
Tue Jan 26 16:01:36 PST 2016


On Tue, Jan 26, 2016 at 11:16:00AM -0800, Hans Wennborg wrote:
> Did this get merged?
> 

I just merged this: r258885.

-Tom

> On Wed, Jan 20, 2016 at 9:13 PM, Hans Wennborg via llvm-commits
> <llvm-commits at lists.llvm.org> wrote:
> > Sounds good to me. Go ahead and merge.
> >
> > Thanks,
> > Hans
> >
> >
> > On 01/20/2016 08:34 PM, Tom Stellard wrote:
> >>
> >> 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
> >
> > _______________________________________________
> > 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