[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