[llvm] r257623 - AMDGPU/SI: Remove ending s_endpgm from non-void functions

Marek Olsak via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 13 09:23:12 PST 2016


Author: mareko
Date: Wed Jan 13 11:23:12 2016
New Revision: 257623

URL: http://llvm.org/viewvc/llvm-project?rev=257623&view=rev
Log:
AMDGPU/SI: Remove ending s_endpgm from non-void functions

Reviewers: tstellarAMD, arsenm

Subscribers: arsenm

Differential Revision: http://reviews.llvm.org/D16035

Modified:
    llvm/trunk/lib/Target/AMDGPU/SIInsertWaits.cpp

Modified: llvm/trunk/lib/Target/AMDGPU/SIInsertWaits.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/SIInsertWaits.cpp?rev=257623&r1=257622&r2=257623&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AMDGPU/SIInsertWaits.cpp (original)
+++ llvm/trunk/lib/Target/AMDGPU/SIInsertWaits.cpp Wed Jan 13 11:23:12 2016
@@ -494,6 +494,14 @@ bool SIInsertWaits::runOnMachineFunction
 
     // Wait for everything at the end of the MBB
     Changes |= insertWait(MBB, MBB.getFirstTerminator(), LastIssued);
+
+    // Functions returning something shouldn't contain S_ENDPGM, because other
+    // bytecode will be appended after it.
+    if (!ReturnsVoid) {
+      MachineBasicBlock::iterator I = MBB.getFirstTerminator();
+      if (I != MBB.end() && I->getOpcode() == AMDGPU::S_ENDPGM)
+        I->eraseFromParent();
+    }
   }
 
   return Changes;




More information about the llvm-commits mailing list