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