[llvm] r228463 - [AArch64] Use the source location of the IR branch when creating Bcc

David Blaikie dblaikie at gmail.com
Fri Feb 6 15:28:37 PST 2015


On Fri, Feb 6, 2015 at 3:15 PM, Ahmed Bougacha <ahmed.bougacha at gmail.com>
wrote:

> Author: ab
> Date: Fri Feb  6 17:15:39 2015
> New Revision: 228463
>
> URL: http://llvm.org/viewvc/llvm-project?rev=228463&view=rev
> Log:
> [AArch64] Use the source location of the IR branch when creating Bcc
> from a conditional branch fed by an add/sub/mul-with-overflow node.
>
> We previously used the SDLoc of the overflow node, for no good reason.
> In some cases, this led to the Bcc and B terminators having different
> source orders, and DBG_VALUEs being inserted between them.
>
> The real issue is with the code that can't handle DBG_VALUEs between
> terminators: the few places affected by this will be fixed soon.
> In the meantime, fixing the SDLoc is a positive change no matter what.
>
> No tests, as I have no idea how to get .loc emitted for branches?
>

.loc should be emitted for any instruction with a debug location (clang
does omit debug locations on various branches from the frontend, but you
can add them in by hand or find a case where clang doesn't omit them... ).


>
> rdar://19347133
>
> Modified:
>     llvm/trunk/lib/Target/AArch64/AArch64ISelLowering.cpp
>
> Modified: llvm/trunk/lib/Target/AArch64/AArch64ISelLowering.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64ISelLowering.cpp?rev=228463&r1=228462&r2=228463&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/AArch64/AArch64ISelLowering.cpp (original)
> +++ llvm/trunk/lib/Target/AArch64/AArch64ISelLowering.cpp Fri Feb  6
> 17:15:39 2015
> @@ -3263,8 +3263,8 @@ SDValue AArch64TargetLowering::LowerBR_C
>        OFCC = getInvertedCondCode(OFCC);
>      SDValue CCVal = DAG.getConstant(OFCC, MVT::i32);
>
> -    return DAG.getNode(AArch64ISD::BRCOND, SDLoc(LHS), MVT::Other, Chain,
> Dest,
> -                       CCVal, Overflow);
> +    return DAG.getNode(AArch64ISD::BRCOND, dl, MVT::Other, Chain, Dest,
> CCVal,
> +                       Overflow);
>    }
>
>    if (LHS.getValueType().isInteger()) {
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150206/214cf622/attachment.html>


More information about the llvm-commits mailing list