[llvm] r213831 - R600: Implement enableClusterLoads()

Matt Arsenault arsenm2 at gmail.com
Thu Jul 24 10:03:49 PDT 2014


On Jul 24, 2014, at 6:46 AM, Tom Stellard <tom at stellard.net> wrote:

> On Thu, Jul 24, 2014 at 02:10:17AM -0000, Matt Arsenault wrote:
>> Author: arsenm
>> Date: Wed Jul 23 21:10:17 2014
>> New Revision: 213831
>> 
>> URL: http://llvm.org/viewvc/llvm-project?rev=213831&view=rev
>> Log:
>> R600: Implement enableClusterLoads()
>> 
>> Modified:
>>    llvm/trunk/lib/Target/R600/AMDGPUInstrInfo.cpp
>>    llvm/trunk/lib/Target/R600/AMDGPUInstrInfo.h
>> 
>> Modified: llvm/trunk/lib/Target/R600/AMDGPUInstrInfo.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/R600/AMDGPUInstrInfo.cpp?rev=213831&r1=213830&r2=213831&view=diff
>> ==============================================================================
>> --- llvm/trunk/lib/Target/R600/AMDGPUInstrInfo.cpp (original)
>> +++ llvm/trunk/lib/Target/R600/AMDGPUInstrInfo.cpp Wed Jul 23 21:10:17 2014
>> @@ -215,6 +215,10 @@ AMDGPUInstrInfo::getOpcodeAfterMemoryUnf
>>   return 0;
>> }
>> 
>> +bool AMDGPUInstrInfo::enableClusterLoads() const {
>> +  return true;
>> +}
>> +
> 
> What is this callback used for?
> 
> -Tom


It’s the missing enabler to make the already implemented shouldScheduleLoadsNear, which should enable some load clustering in the DAG scheduler


> 
>> bool AMDGPUInstrInfo::shouldScheduleLoadsNear(SDNode *Load1, SDNode *Load2,
>>                                              int64_t Offset1, int64_t Offset2,
>>                                              unsigned NumLoads) const {
>> 
>> Modified: llvm/trunk/lib/Target/R600/AMDGPUInstrInfo.h
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/R600/AMDGPUInstrInfo.h?rev=213831&r1=213830&r2=213831&view=diff
>> ==============================================================================
>> --- llvm/trunk/lib/Target/R600/AMDGPUInstrInfo.h (original)
>> +++ llvm/trunk/lib/Target/R600/AMDGPUInstrInfo.h Wed Jul 23 21:10:17 2014
>> @@ -120,6 +120,9 @@ public:
>>   unsigned getOpcodeAfterMemoryUnfold(unsigned Opc,
>>                                bool UnfoldLoad, bool UnfoldStore,
>>                                unsigned *LoadRegIndex = nullptr) const override;
>> +
>> +  bool enableClusterLoads() const override;
>> +
>>   bool shouldScheduleLoadsNear(SDNode *Load1, SDNode *Load2,
>>                                int64_t Offset1, int64_t Offset2,
>>                                unsigned NumLoads) const override;
>> 
>> 
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140724/ef1e53ee/attachment.html>


More information about the llvm-commits mailing list