Pre-approve the fix :)

On Thu, Nov 30, 2023 at 6:07 AM Tsukasa OI <research_tra...@irq.a4lg.com> wrote:
>
> Hi Patrick,
>
> Found a cause (although GCC is functionally correct, I forgot to fix
> corresponding test case [which assumes that 'E' is not ratified]).
>
> > #if !defined(__riscv_e) || (__riscv_e != (1 * 1000 * 1000 + 9 * 1000))
> > #error "__riscv_e"
> > #endif
>
> 1*1000*1000 + 9*1000 ('E' version 1.9) should have been fixed to
> 2*1000*1000 + 0*1000 because 'E' extension is now ratified version 2.0.
>
> I'll submit a fix later.
>
> Thanks,
> Tsukasa
>
>
> On 2023/11/30 6:15, Patrick O'Neill wrote:
> > Hi Tsukasa,
> >
> > I'm seeing a new regression across all tested riscv targets:
> > https://github.com/patrick-rivos/gcc-postcommit-ci/issues/224
> >
> > Regression:
> >
> > |FAIL: gcc.target/riscv/predef-13.c -O0 (test for excess errors) FAIL:
> > gcc.target/riscv/predef-13.c -O1 (test for excess errors) FAIL:
> > gcc.target/riscv/predef-13.c -O2 (test for excess errors) FAIL:
> > gcc.target/riscv/predef-13.c -O2 -flto -fno-use-linker-plugin
> > -flto-partition=none (test for excess errors) FAIL:
> > gcc.target/riscv/predef-13.c -O2 -flto -fuse-linker-plugin
> > -fno-fat-lto-objects (test for excess errors) FAIL:
> > gcc.target/riscv/predef-13.c -O3 -g (test for excess errors) FAIL:
> > gcc.target/riscv/predef-13.c -Os (test for excess errors)|
> >
> > Debug log:
> >
> > Executing on host: 
> > /home/runner/work/gcc-postcommit-ci/gcc-postcommit-ci/riscv-gnu-toolchain/build/build-gcc-linux-stage2/gcc/xgcc
> >  
> > -B/home/runner/work/gcc-postcommit-ci/gcc-postcommit-ci/riscv-gnu-toolchain/build/build-gcc-linux-stage2/gcc/
> >   
> > /home/runner/work/gcc-postcommit-ci/gcc-postcommit-ci/riscv-gnu-toolchain/gcc/gcc/testsuite/gcc.target/riscv/predef-13.c
> >   -march=rv32gc -mabi=ilp32d -mcmodel=medlow   -fdiagnostics-plain-output   
> >  -O0  -march=rv32e -mabi=ilp32e -mcmodel=medlow -misa-spec=2.2 -S   -o 
> > predef-13.s    (timeout = 600)
> > spawn -ignore SIGHUP 
> > /home/runner/work/gcc-postcommit-ci/gcc-postcommit-ci/riscv-gnu-toolchain/build/build-gcc-linux-stage2/gcc/xgcc
> >  
> > -B/home/runner/work/gcc-postcommit-ci/gcc-postcommit-ci/riscv-gnu-toolchain/build/build-gcc-linux-stage2/gcc/
> >  
> > /home/runner/work/gcc-postcommit-ci/gcc-postcommit-ci/riscv-gnu-toolchain/gcc/gcc/testsuite/gcc.target/riscv/predef-13.c
> >  -march=rv32gc -mabi=ilp32d -mcmodel=medlow -fdiagnostics-plain-output -O0 
> > -march=rv32e -mabi=ilp32e -mcmodel=medlow -misa-spec=2.2 -S -o predef-13.s
> > /home/runner/work/gcc-postcommit-ci/gcc-postcommit-ci/riscv-gnu-toolchain/gcc/gcc/testsuite/gcc.target/riscv/predef-13.c:
> >  In function 'main':
> > /home/runner/work/gcc-postcommit-ci/gcc-postcommit-ci/riscv-gnu-toolchain/gcc/gcc/testsuite/gcc.target/riscv/predef-13.c:23:2:
> >  error: #error "__riscv_e"
> > compiler exited with status 1
> > FAIL: gcc.target/riscv/predef-13.c   -O0  (test for excess errors)
> > Excess errors:
> > /home/runner/work/gcc-postcommit-ci/gcc-postcommit-ci/riscv-gnu-toolchain/gcc/gcc/testsuite/gcc.target/riscv/predef-13.c:23:2:
> >  error: #error "__riscv_e"
> >
> > I bisected it locally to commit 006e90e13441c3716b40616282b200a0ef689376
> > (this patch):
> >
> >> ./bin/riscv64-unknown-linux-gnu-gcc -march=rv32e -mabi=ilp32e -S 
> >> ../gcc/gcc/testsuite/gcc.target/riscv/predef-13.c
> > ../gcc/gcc/testsuite/gcc.target/riscv/predef-13.c: In function 'main':
> > ../gcc/gcc/testsuite/gcc.target/riscv/predef-13.c:23:2: error: #error 
> > "__riscv_e"
> >    23 | #error "__riscv_e"
> >       |  ^~~~~
> >
> > Let me know if you need any additional info/investigation from me.
> >
> > Thanks,
> > Patrick
> >
> > On 11/24/23 02:18, Tsukasa OI wrote:
> >> From: Tsukasa OI <research_tra...@irq.a4lg.com>
> >>
> >> Along with RV32E, RV64E is ratified.  Though ILP32E and LP64E ABIs are
> >> still draft, it's worth supporting it.
> >>
> >> gcc/ChangeLog:
> >>
> >>      * common/config/riscv/riscv-common.cc
> >>      (riscv_ext_version_table): Set version to ratified 2.0.
> >>      (riscv_subset_list::parse_std_ext): Allow RV64E.
> >>      * config.gcc: Parse base ISA 'rv64e' and ABI 'lp64e'.
> >>      * config/riscv/arch-canonicalize: Parse base ISA 'rv64e'.
> >>      * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins):
> >>      Define different macro per XLEN.  Add handling for ABI_LP64E.
> >>      * config/riscv/riscv-d.cc (riscv_d_handle_target_float_abi):
> >>      Add handling for ABI_LP64E.
> >>      * config/riscv/riscv-opts.h (enum riscv_abi_type): Add ABI_LP64E.
> >>      * config/riscv/riscv.cc (riscv_option_override): Enhance error
> >>      handling to support RV64E and LP64E.
> >>      (riscv_conditional_register_usage): Change "RV32E" in a comment
> >>      to "RV32E/RV64E".
> >>      * config/riscv/riscv.h
> >>      (UNITS_PER_FP_ARG): Add handling for ABI_LP64E.
> >>      (STACK_BOUNDARY): Ditto.
> >>      (ABI_STACK_BOUNDARY): Ditto.
> >>      (MAX_ARGS_IN_REGISTERS): Ditto.
> >>      (ABI_SPEC): Add support for "lp64e".
> >>      * config/riscv/riscv.opt: Parse -mabi=lp64e as ABI_LP64E.
> >>      * doc/invoke.texi: Add documentation of the LP64E ABI.
> >>
> >> gcc/testsuite/ChangeLog:
> >>
> >>      * gcc.target/riscv/predef-1.c: Test for __riscv_64e.
> >>      * gcc.target/riscv/predef-2.c: Ditto.
> >>      * gcc.target/riscv/predef-3.c: Ditto.
> >>      * gcc.target/riscv/predef-4.c: Ditto.
> >>      * gcc.target/riscv/predef-5.c: Ditto.
> >>      * gcc.target/riscv/predef-6.c: Ditto.
> >>      * gcc.target/riscv/predef-7.c: Ditto.
> >>      * gcc.target/riscv/predef-8.c: Ditto.
> >>      * gcc.target/riscv/predef-9.c: New test for RV64E and LP64E,
> >>      based on predef-7.c.
> >> ---

Reply via email to