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

Eric Christopher echristo at gmail.com
Tue Oct 14 17:19:50 PDT 2014


You forgot to actually remove the variable causing a warning/error.
I've done so in r219750.

-eric

On Tue, Oct 14, 2014 at 4:55 PM, Gerolf Hoflehner <ghoflehner at apple.com> wrote:
> 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
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits



More information about the llvm-commits mailing list