Alternative fix for those testcase has posted:
https://gcc.gnu.org/pipermail/gcc-patches/2022-November/605126.html


On Tue, Nov 1, 2022 at 11:36 AM Palmer Dabbelt <pal...@dabbelt.com> wrote:
>
> On Mon, 31 Oct 2022 16:52:25 PDT (-0700), juzhe.zh...@rivai.ai wrote:
> > These cases actually doesn't care about -mabi, they just need 'v' in -march.
> > Can you tell me how to fix these testcases for "fails on targets without 
> > ilp32d" ?
> > These failures are bogus failures since if you specify -mabi=ilp32d when 
> > you are using GNU toolchain which is build up with "--arch=ilp32" let say.
> > It will fail. Report there is no "ilp32d". So I fix these testcase by 
> > replacing "ilp32d" into "ilp32".
>
> So the problem is this just moves the failures around, rather than
> failing on toolchains that lack ilp32d support it'll fail on toolchains
> that lack ilp32 support.  The ABI naming scheme sort of makes them look
> like extensions, but they're just incompatible with each other.
>
> I can see a handful of ways to fix this:
>
> * Add some sort of automatic ABI scheme to GCC.  LLVM already does this
>   and there was a GCC patch for it that had some issues, but IMO having
>   something like -mabi=auto-{min,max} would be useful as users keep
>   running into this problem.  We could also add something to DejaGNU
>   that does this.
> * Add some sort of -march=+v to GCC, along the lines of the .option
>   arch,+v stuff in assembly but from the command line.  I seem to
>   remember proposals for that floating around somewhere, but can't find
>   anything.  This could probably also to DejaGNU.
> * Decorate all these V functions with the +arch attributes.  That
>   wouldn't require any compiler changes, but it's kind of clunky.
> * Add some sort of test suite logic (maybe in DejaGNU?) to check and see
>   if the desired ABI is linkable before attempting to do so.  That might
>   be generically useful.
>
> > Thank you.
> >
> >
> >
> > juzhe.zh...@rivai.ai
> >
> > From: Palmer Dabbelt
> > Date: 2022-11-01 06:30
> > To: gcc-patches
> > CC: juzhe.zhong; gcc-patches; schwab; Kito Cheng
> > Subject: Re: [PATCH] RISC-V: Fix RVV testcases.
> > On Mon, 31 Oct 2022 15:00:49 PDT (-0700), gcc-patches@gcc.gnu.org wrote:
> >>
> >> On 10/30/22 19:40, juzhe.zh...@rivai.ai wrote:
> >>> From: Ju-Zhe Zhong <juzhe.zh...@rivai.ai>
> >>>
> >>> gcc/testsuite/ChangeLog:
> >>>
> >>>          * gcc.target/riscv/rvv/base/abi-2.c: Change ilp32d to ilp32.
> >>>          * gcc.target/riscv/rvv/base/abi-3.c: Ditto.
> >>>          * gcc.target/riscv/rvv/base/abi-4.c: Ditto.
> >>>          * gcc.target/riscv/rvv/base/abi-5.c: Ditto.
> >>>          * gcc.target/riscv/rvv/base/abi-6.c: Ditto.
> >>>          * gcc.target/riscv/rvv/base/abi-7.c: Ditto.
> >>>          * gcc.target/riscv/rvv/base/mov-1.c: Ditto.
> >>>          * gcc.target/riscv/rvv/base/mov-10.c: Ditto.
> >>>          * gcc.target/riscv/rvv/base/mov-11.c: Ditto.
> >>>          * gcc.target/riscv/rvv/base/mov-12.c: Ditto.
> >>>          * gcc.target/riscv/rvv/base/mov-13.c: Ditto.
> >>>          * gcc.target/riscv/rvv/base/mov-2.c: Ditto.
> >>>          * gcc.target/riscv/rvv/base/mov-3.c: Ditto.
> >>>          * gcc.target/riscv/rvv/base/mov-4.c: Ditto.
> >>>          * gcc.target/riscv/rvv/base/mov-5.c: Ditto.
> >>>          * gcc.target/riscv/rvv/base/mov-6.c: Ditto.
> >>>          * gcc.target/riscv/rvv/base/mov-7.c: Ditto.
> >>>          * gcc.target/riscv/rvv/base/mov-8.c: Ditto.
> >>>          * gcc.target/riscv/rvv/base/mov-9.c: Ditto.
> >>>          * gcc.target/riscv/rvv/base/pragma-1.c: Ditto.
> >>>          * gcc.target/riscv/rvv/base/user-1.c: Ditto.
> >>>          * gcc.target/riscv/rvv/base/user-2.c: Ditto.
> >>>          * gcc.target/riscv/rvv/base/user-3.c: Ditto.
> >>>          * gcc.target/riscv/rvv/base/user-4.c: Ditto.
> >>>          * gcc.target/riscv/rvv/base/user-5.c: Ditto.
> >>>          * gcc.target/riscv/rvv/base/user-6.c: Ditto.
> >>>          * gcc.target/riscv/rvv/base/vsetvl-1.c: Ditto.
> >>
> >> I'm pretty new to the RISC-V world, but don't some of the cases
> >> (particularly the abi-* tests) verify that the ABI specification does
> >> not override the arch specification WRT availability of types?
> >
> > I think that depends on what the ABI specification says here, as it
> > could really go many ways.  Most of the RISC-V targets just use -mabi to
> > control how arguments end up passed in functions, not the availability
> > of types.  I can't find the ABI spec for these, though, so I'm not
> > entirely sure how they're supposed to work...
> >
> > That said, I'm not sure why we need any of these -mabi changes?  Just
> > from spot checking some of the examples it doesn't look like there
> > should be any functional difference between ilp32 and ilp32d here:
> > -march is always specified so ilp32d looks valid.  If this is just to
> > fix the "fails on targets without ilp32d" [1], then IMO it's not really
> > a fix: we're essentially just changing that to "fails on targets without
> > ilp32", we either need some sort of automatic march/mabi setting or a
> > dependency on the availiable multilibs.  Some of these can probably
> > avoid linking, but we'll have execution tests at some point.
> >
> > 1: https://gcc.gnu.org/pipermail/gcc-patches/2022-October/604644.html
> >

Reply via email to