[llvm] r258386 - AMDGPU/SI: Pass whether to use the SI scheduler via Target Attribute

Hans Wennborg via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 20 21:13:21 PST 2016


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


More information about the llvm-commits mailing list