AMDGPU: Run SIInsertWaits as pre-emit pass
authorMatt Arsenault <Matthew.Arsenault@amd.com>
Mon, 6 Jul 2015 17:02:20 +0000 (17:02 +0000)
committerMatt Arsenault <Matthew.Arsenault@amd.com>
Mon, 6 Jul 2015 17:02:20 +0000 (17:02 +0000)
Running this after the scheduler enables scheduling
waits later so other ALU instructions can run while
this would be waiting.

When combined with enabling the post-RA scheduler, this
gives about a ~20% improvement on sgemm.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241473 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/AMDGPU/AMDGPUTargetMachine.cpp

index a9a911a8efedd18531b977084e60786edb4683f1..f3955659d93dace295cf9c34f6655a758a55ef24 100644 (file)
@@ -280,10 +280,10 @@ void GCNPassConfig::addPostRegAlloc() {
 }
 
 void GCNPassConfig::addPreSched2() {
 }
 
 void GCNPassConfig::addPreSched2() {
-  addPass(createSIInsertWaits(*TM), false);
 }
 
 void GCNPassConfig::addPreEmitPass() {
 }
 
 void GCNPassConfig::addPreEmitPass() {
+  addPass(createSIInsertWaits(*TM), false);
   addPass(createSILowerControlFlowPass(*TM), false);
 }
 
   addPass(createSILowerControlFlowPass(*TM), false);
 }