[llvm] r312724 - [ARM] Remove redundant vcvt patterns.

Benjamin Kramer via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 11 08:07:50 PDT 2017


Sorry email went to spam for some reason. The change seemed trivial to
me, but apparently it's not :)

If this causes trouble for you feel free to revert it. This should be
handled differently as redundant patterns cause trouble, but I won't
to have time to work on that.

On Thu, Sep 7, 2017 at 9:20 PM, Friedman, Eli <efriedma at codeaurora.org> wrote:
> On 9/7/2017 7:52 AM, Benjamin Kramer via llvm-commits wrote:
>>
>> Author: d0k
>> Date: Thu Sep  7 07:52:26 2017
>> New Revision: 312724
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=312724&view=rev
>> Log:
>> [ARM] Remove redundant vcvt patterns.
>>
>> These don't add any value as they're just compositions of existing
>> patterns.
>
>
> This is not true.  These patterns exist to eliminate a "vmov" from the
> floating-point register file to the integer register file.
>
> Consider the following simple function:
>
> void a(double c, int *x) { *x = c; }
>
> Before this patch, we would generate the following:
>
>         vmov    d16, r0, r1
>         vcvt.s32.f64    s0, d16
>         vstr    s0, [r2]
>         bx      lr
>
> With this patch, we generate the following instead:
>
>         vmov    d16, r0, r1
>         vcvt.s32.f64    s0, d16
>         vmov    r0, s0
>         str     r0, [r2]
>         bx      lr
>
> This is clearly a substantial regression.
>
> ---
>
> Please don't commit non-trivial patches to the ARM backend without review.
>
> -Eli
>
> --
> Employee of Qualcomm Innovation Center, Inc.
> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux
> Foundation Collaborative Project
>


More information about the llvm-commits mailing list