R600: Consider KILLGT as an ALU instruction
authorVincent Lejeune <vljn@ovi.com>
Wed, 3 Apr 2013 16:24:04 +0000 (16:24 +0000)
committerVincent Lejeune <vljn@ovi.com>
Wed, 3 Apr 2013 16:24:04 +0000 (16:24 +0000)
Mesa does not override llvm behavior wrt KILLGT anymore so llvm
has to handle KILLGT on its own.

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

lib/Target/R600/R600ControlFlowFinalizer.cpp
lib/Target/R600/R600EmitClauseMarkers.cpp

index bd87d741ecf08def39f8a05e0b7e7a6d3859ef0f..5c30601e0ad3d87ad29b2c7b3eb9237556c2a695 100644 (file)
@@ -144,7 +144,6 @@ public:
         case AMDGPU::CF_ALU_PUSH_BEFORE:
           CurrentStack++;
           MaxStack = std::max(MaxStack, CurrentStack);
-        case AMDGPU::KILLGT:
         case AMDGPU::CF_ALU:
           CfCount++;
           break;
index 7c7469a04b2386f9f9bead41dc65f86242a09afe..bda3703af7fd1cb0f6898fdbbfa779e5a716b49d 100644 (file)
@@ -61,8 +61,6 @@ private:
   }
 
   bool isALU(const MachineInstr *MI) const {
-    if (MI->getOpcode() == AMDGPU::KILLGT)
-      return false;
     if (TII->isALUInstr(MI->getOpcode()))
       return true;
     if (TII->isVector(*MI) || TII->isCubeOp(MI->getOpcode()))
@@ -195,6 +193,10 @@ private:
         AluInstCount ++;
         continue;
       }
+      if (I->getOpcode() == AMDGPU::KILLGT) {
+        I++;
+        break;
+      }
       if (TII->isALUInstr(I->getOpcode()) &&
           !SubstituteKCacheBank(I, KCacheBanks))
         break;