[llvm] r219748 - [AArch64] Wrong CC access in CSINC-conditional branch sequence
Gerolf Hoflehner
ghoflehner at apple.com
Tue Oct 14 17:36:15 PDT 2014
Ouch. Thanks, Eric!
Gerolf
Sent from my iPhone
> On Oct 14, 2014, at 5:19 PM, Eric Christopher <echristo at gmail.com> wrote:
>
> 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