[PATCH] D68873: [AMDGPU] Amend target loop unroll defaults
Tim Corringham via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Oct 17 07:39:46 PDT 2019
timcorringham updated this revision to Diff 225431.
timcorringham marked 6 inline comments as done.
timcorringham added a comment.
Changes to address review comments
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D68873/new/
https://reviews.llvm.org/D68873
Files:
llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
Index: llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
===================================================================
--- llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
+++ llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
@@ -46,7 +46,7 @@
Triple TargetTriple;
- const TargetSubtargetInfo *ST;
+ const GCNSubtarget *ST;
const TargetLoweringBase *TLI;
const TargetSubtargetInfo *getST() const { return ST; }
Index: llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
===================================================================
--- llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
+++ llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
@@ -96,10 +96,23 @@
// TODO: Do we want runtime unrolling?
+ // Set more aggressive defaults for PAL shaders
+ if (TargetTriple.getOS() == Triple::AMDPAL) {
+ UP.MaxPercentThresholdBoost = 1000;
+ // and even more aggressive for GFX10
+ if (ST->getGeneration() >= AMDGPUSubtarget::GFX10) {
+ UP.Threshold = 1100;
+ UP.PartialThreshold = 1100;
+ } else {
+ UP.Threshold = 700;
+ UP.PartialThreshold = 700;
+ }
+ }
+
// Maximum alloca size than can fit registers. Reserve 16 registers.
const unsigned MaxAlloca = (256 - 16) * 4;
unsigned ThresholdPrivate = UnrollThresholdPrivate;
- unsigned ThresholdLocal = UnrollThresholdLocal;
+ unsigned ThresholdLocal = std::max((unsigned)UnrollThresholdLocal, UP.Threshold);
unsigned MaxBoost = std::max(ThresholdPrivate, ThresholdLocal);
for (const BasicBlock *BB : L->getBlocks()) {
const DataLayout &DL = BB->getModule()->getDataLayout();
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D68873.225431.patch
Type: text/x-patch
Size: 1627 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20191017/591397d4/attachment.bin>
More information about the llvm-commits
mailing list