Cleanup PPCInstrInfo::DefinesPredicate
authorHal Finkel <hfinkel@anl.gov>
Wed, 10 Apr 2013 07:17:47 +0000 (07:17 +0000)
committerHal Finkel <hfinkel@anl.gov>
Wed, 10 Apr 2013 07:17:47 +0000 (07:17 +0000)
Implement suggestions made by Bill Schmidt in post-commit review. Thanks!

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

lib/Target/PowerPC/PPCInstrInfo.cpp

index 773b62326fb72eacd6bd37874113ef2efbc60e57..8abe5ff2e33156d133e11519d118b488f9c8ff2e 100644 (file)
@@ -1003,15 +1003,20 @@ bool PPCInstrInfo::DefinesPredicate(MachineInstr *MI,
   bool Found = false;
   for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
     const MachineOperand &MO = MI->getOperand(i);
-    for (int c = 0; c < 2 && !Found; ++c) {
+    for (unsigned c = 0; c < array_lengthof(RCs) && !Found; ++c) {
       const TargetRegisterClass *RC = RCs[c];
-      for (TargetRegisterClass::iterator I = RC->begin(),
-           IE = RC->end(); I != IE; ++I) {
-        if ((MO.isRegMask() && MO.clobbersPhysReg(*I)) ||
-            (MO.isReg() && MO.isDef() && MO.getReg() == *I)) {
+      if (MO.isReg()) {
+        if (MO.isDef() && RC->contains(MO.getReg())) {
           Pred.push_back(MO);
           Found = true;
         }
+      } else if (MO.isRegMask()) {
+        for (TargetRegisterClass::iterator I = RC->begin(),
+             IE = RC->end(); I != IE; ++I)
+          if (MO.clobbersPhysReg(*I)) {
+            Pred.push_back(MO);
+            Found = true;
+          }
       }
     }
   }