[llvm] r219748 - [AArch64] Wrong CC access in CSINC-conditional branch sequence

Gerolf Hoflehner ghoflehner at apple.com
Tue Oct 14 16:55:00 PDT 2014


Author: ghoflehner
Date: Tue Oct 14 18:55:00 2014
New Revision: 219748

URL: http://llvm.org/viewvc/llvm-project?rev=219748&view=rev
Log:
[AArch64] Wrong CC access in CSINC-conditional branch sequence

This is a follow up to commit r219742. It removes the CCInMI variable
and accesses the CC in CSCINC directly. In the case of a conditional
branch accessing the CC with CCInMI was wrong.


Modified:
    llvm/trunk/lib/Target/AArch64/AArch64InstrInfo.cpp

Modified: llvm/trunk/lib/Target/AArch64/AArch64InstrInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64InstrInfo.cpp?rev=219748&r1=219747&r2=219748&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AArch64/AArch64InstrInfo.cpp (original)
+++ llvm/trunk/lib/Target/AArch64/AArch64InstrInfo.cpp Tue Oct 14 18:55:00 2014
@@ -2869,24 +2869,20 @@ bool AArch64InstrInfo::optimizeCondBranc
   case AArch64::CBZW:
   case AArch64::CBZX:
     TargetBBInMI = 1;
-    CCInMI = 2;
     break;
   case AArch64::CBNZW:
   case AArch64::CBNZX:
     TargetBBInMI = 1;
-    CCInMI = 2;
     IsNegativeBranch = true;
     break;
   case AArch64::TBZW:
   case AArch64::TBZX:
     TargetBBInMI = 2;
-    CCInMI = 3;
     IsTestAndBranch = true;
     break;
   case AArch64::TBNZW:
   case AArch64::TBNZX:
     TargetBBInMI = 2;
-    CCInMI = 3;
     IsNegativeBranch = true;
     IsTestAndBranch = true;
     break;
@@ -2921,7 +2917,7 @@ bool AArch64InstrInfo::optimizeCondBranc
     return false;
 
   AArch64CC::CondCode CC =
-      (AArch64CC::CondCode)DefMI->getOperand(CCInMI).getImm();
+      (AArch64CC::CondCode)DefMI->getOperand(3).getImm();
   bool CheckOnlyCCWrites = true;
   // Convert only when the condition code is not modified between
   // the CSINC and the branch. The CC may be used by other





More information about the llvm-commits mailing list