[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