This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH, rs6000] Warn for deprecated use of vec_lvsl and vec_lvsr for little endian


On Mon, Sep 29, 2014 at 5:53 PM, Bill Schmidt
<wschmidt@linux.vnet.ibm.com> wrote:
> Hi,
>
> The vec_lvsl and vec_lvsr interfaces are deprecated for little endian in
> the ELFv2 ABI document.  At the moment, these interfaces will produce
> incorrect code, and the only indication a programmer has of this is that
> his or her code does not function correctly.  This patch adds a warning
> message to inform the little endian programmer of the deprecated usage.
>
> The patch described in
> https://gcc.gnu.org/ml/gcc-patches/2014-09/msg02580.html is a
> prerequisite for this patch, as otherwise the deprecation message causes
> bootstrap failure due to -Werror in the later stages.
>
> I feel the deprecation message is needed because, in a future patch, we
> plan to make vec_lvsl and vec_lvsr work so that BE code will run on LE
> without requiring code modifications.  However, code modifications are
> still desirable because the LE code, while correct, will be pretty poor.
> The deprecation message will encourage programmers to rewrite their code
> that makes use of vec_lvsl/lvsr.
>
> I've added a new test to demonstrate the message, and updated a number
> of tests to use -Wno-deprecated so the new message doesn't disturb them.
>
> Bootstrapped and tested on powerpc64le-unknown-linux-gnu with no
> regressions.  Is this ok for trunk?
>
> Thanks,
> Bill
>
>
> [gcc]
>
> 2014-09-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
>
>         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
>         Issue a warning message when vec_lvsl or vec_lvsr is used with a
>         little endian target.
>
> [gcc/testsuite]
>
> 2014-09-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
>
>         * g++.dg/ext/altivec-2.C: Compile with -Wno-deprecated to avoid
>         failing with the new warning message.
>         * gcc.dg/vmx/3c-01a.c: Likewise.
>         * gcc.dg/vmx/ops-long-1.c: Likewise.
>         * gcc.dg/vmx/ops.c: Likewise.
>         * gcc.target/powerpc/altivec-20.c: Likewise.
>         * gcc.target/powerpc/altivec-6.c: Likewise.
>         * gcc.target/powerpc/altivec-vec-merge.c: Likewise.
>         * gcc.target/powerpc/vsx-builtin-8.c: Likewise.
>         * gcc.target/powerpc/warn-lvsl-lvsr.c: New test.

Okay.

Thanks, David


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]