diff --git a/.gitmodules b/.gitmodules index 696e42871d8..8850b2c9251 100644 --- a/.gitmodules +++ b/.gitmodules @@ -9,7 +9,7 @@ [submodule "gcc"] path = gcc url = https://github.com/gcc-mirror/gcc.git - branch = releases/gcc-14 + branch = releases/gcc-15 shallow = true [submodule "glibc"] path = glibc diff --git a/gcc b/gcc index 04696df0963..1b306039ac4 160000 --- a/gcc +++ b/gcc @@ -1 +1 @@ -Subproject commit 04696df09633baf97cdbbdd6e9929b9d472161d3 +Subproject commit 1b306039ac49f8ad91ca71d3de3150a3c9fa792a diff --git a/test/allowlist/gcc/common.log b/test/allowlist/gcc/common.log index 7262cf067e8..7e74b085afb 100644 --- a/test/allowlist/gcc/common.log +++ b/test/allowlist/gcc/common.log @@ -1,38 +1,35 @@ -# -# XXX: Need review. -# -XPASS: gcc.dg/attr-alloc_size-11.c -FAIL: g++.dg/modules/bad-mapper-3.C -# -# We didn't define TARGET_HAVE_SPECULATION_SAFE_VALUE or -# speculation_barrier pattern -# -FAIL: c-c++-common/spec-barrier-1.c -# -# Fix upstream (77f3b3419d4) but no backport -# -UNRESOLVED: gcc.target/riscv/mcpu-6.c -UNRESOLVED: gcc.target/riscv/mcpu-7.c -FAIL: g++.dg/vect/pr95401.cc -FAIL: gcc.dg/Wstringop-overflow-47.c -# -# Still fail on upstream(2024.8.12) -# -FAIL: gcc.dg/vect/costmodel/riscv/rvv/pr113281-1.c -FAIL: gcc.dg/vect/costmodel/riscv/rvv/pr113281-2.c -FAIL: gcc.dg/vect/costmodel/riscv/rvv/pr113281-5.c -FAIL: gcc.dg/tree-ssa/ssa-dom-cse-2.c -FAIL: gcc.dg/tree-ssa/update-threading.c -FAIL: gcc.dg/vect/pr65310.c -FAIL: gcc.dg/vect/pr88598-1.c -FAIL: gcc.dg/vect/pr88598-2.c -FAIL: gcc.dg/vect/pr88598-3.c -FAIL: gcc.dg/vect/vect-gather-2.c -FAIL: gcc.dg/plugin/cpython-plugin-test-PyList_Append.c -FAIL: gcc.dg/plugin/cpython-plugin-test-PyList_New.c -FAIL: gcc.dg/plugin/cpython-plugin-test-PyLong_FromLong.c -# -# Fail when don't have floating point support -# see https://github.com/riscv-collab/riscv-gnu-toolchain/pull/1531#issuecomment-2373636158 -# -FAIL: gcc.dg/pr110279-1.c +FAIL: gcc.dg/vect/pr65310.c +FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-5.c +FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-5.c +FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-3.c +FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-6.c +FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-1.c +FAIL: gcc.dg/vect/costmodel/riscv/rvv/pr113112-2.c +FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-4.c +FAIL: g++.target/riscv/redundant-bitmap-2.C +FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-7.c +FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-12.c +FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-3.c +FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-3.c +FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-1.c +FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-2.c +FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-2.c +FAIL: gcc.target/riscv/rvv/autovec/bug-3.c +FAIL: gcc.dg/vect/pr88598-1.c +FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-2.c +FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-2.c +FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul-mixed-1.c +FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-7.c +FAIL: gcc.dg/vect/pr88598-3.c +FAIL: gcc.dg/vect/costmodel/riscv/rvv/pr113112-4.c +FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-4.c +FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-4.c +FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-1.c +FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-11.c +FAIL: c-c++-common/spec-barrier-1.c +FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-5.c +FAIL: gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-6.c +FAIL: gcc.dg/vect/vect-gather-2.c +FAIL: gcc.dg/vect/pr88598-2.c +# Added because machine performance can affect test results. +FAIL: gcc.dg/tree-prof/time-profiler-2.c diff --git a/test/allowlist/gcc/gen.py b/test/allowlist/gcc/gen.py new file mode 100644 index 00000000000..e06f9ce4f9d --- /dev/null +++ b/test/allowlist/gcc/gen.py @@ -0,0 +1,50 @@ +from tqdm import tqdm +import re + +def processlog(filename: str) -> set: + with open(filename, "r", encoding='utf-8') as f: + data = f.readlines() + set1 = set() + for line in tqdm(data): + result = re.match('^.*((FAIL|UNRESOLVED): .*.c) .*$',line) #使用正则表达式筛选每一行的数据,自行查找正则表达式 + if result: + t = (result.group(1)) #group(1)将正则表达式的(/d.*/d)提取出来 + set1.add(t) + return set1 + +def writeset(filename: str, set1: set) -> None: + if len(set1)!=0: + with open(filename, "a", encoding='utf-8') as f1: + for t in tqdm(set1): + f1.write(t+'\n') + +newlib64=processlog("10_build (ubuntu-24.04, newlib, rv64gc-lp64d, gcc).txt") +newlib32=processlog("25_build (ubuntu-24.04, newlib, rv32gc-ilp32d, gcc).txt") +linux64=processlog("24_build (ubuntu-24.04, linux, rv64gc-lp64d, gcc).txt") +linux32=processlog("15_build (ubuntu-24.04, linux, rv32gc-ilp32d, gcc).txt") + +# common should be 4 intersection +commonerror=set.intersection(newlib64, newlib32, linux64, linux32) +writeset("res/common.log",commonerror) +# rv32 +rv32=set.intersection(newlib32, linux32) +rv32=rv32-commonerror +writeset("res/rv32.log",rv32) +# rv64 +rv64=set.intersection(newlib64, linux64) +rv64=rv64-commonerror +writeset("res/rv64.log",rv64) +# glibc +glibc=set.intersection(linux32, linux64) +glibc=glibc-commonerror +writeset("res/glibc.log",glibc) +# newlib +newlib=set.intersection(newlib64, newlib32) +newlib=newlib-commonerror +writeset("res/newlib.log",newlib) + +# everything out of it +writeset("res/glibc.rv32.log",linux32-rv32-glibc-commonerror) +writeset("res/glibc.rv64.log",linux64-rv64-glibc-commonerror) +writeset("res/newlib.rv32.log",newlib32-rv32-newlib-commonerror) +writeset("res/newlib.rv64.log",newlib64-rv64-newlib-commonerror) diff --git a/test/allowlist/gcc/glibc.log b/test/allowlist/gcc/glibc.log index 6ef0d7f062d..84342cfee19 100644 --- a/test/allowlist/gcc/glibc.log +++ b/test/allowlist/gcc/glibc.log @@ -1,74 +1,6 @@ -# -# XXX: Need review why. -# -FAIL: gfortran.dg/matmul_15.f90 -FAIL: gfortran.dg/ieee/comparisons_3.F90 -FAIL: gfortran.dg/ieee/ieee_1.F90 -FAIL: gfortran.dg/ieee/ieee_2.f90 -FAIL: gfortran.dg/ieee/ieee_6.f90 -FAIL: gfortran.dg/ieee/large_2.f90 -FAIL: gfortran.dg/ieee/large_3.F90 -FAIL: gfortran.dg/ieee/modes_1.f90 -FAIL: gfortran.dg/ieee/rounding_1.f90 -# -# Fails if there is no F extension -# -FAIL: gfortran.dg/ieee/rounding_3.f90 -# -# Fixed but not backport -# -UNRESOLVED: gcc.target/riscv/rvv/autovec/vls-vlmax/full-vec-move1.c -FAIL: gcc.target/riscv/rvv/autovec/vls-vlmax/full-vec-move1.c -# -# Unknown random fail case. -# -FAIL: gcc.dg/tree-prof/time-profiler-2.c -# -# RVV fail cases(still exist on upstream) -# -FAIL: gcc.dg/vect/costmodel/riscv/rvv/pr113112-2.c -FAIL: gcc.target/riscv/rvv/autovec/bug-1.c -FAIL: gcc.target/riscv/rvv/autovec/pr113087-2.c -FAIL: gcc.target/riscv/rvv/autovec/vls/misalign-1.c -FAIL: gcc.target/riscv/rvv/base/abi-callee-saved-1-fixed-1.c -FAIL: gcc.target/riscv/rvv/base/abi-callee-saved-1-fixed-2.c -FAIL: gcc.target/riscv/rvv/base/abi-callee-saved-1-save-restore.c -FAIL: gcc.target/riscv/rvv/base/abi-callee-saved-1-zcmp.c -FAIL: gcc.target/riscv/rvv/base/abi-callee-saved-1.c -FAIL: gcc.target/riscv/rvv/base/abi-callee-saved-2-save-restore.c -FAIL: gcc.target/riscv/rvv/base/abi-callee-saved-2-zcmp.c -FAIL: gcc.target/riscv/rvv/base/abi-callee-saved-2.c -FAIL: gcc.target/riscv/rvv/base/pr110943.c -FAIL: gcc.target/riscv/rvv/base/pr111533-2.c -FAIL: gcc.target/riscv/rvv/base/pr112743-2.c -FAIL: gcc.target/riscv/rvv/base/pr114639-1.c -FAIL: gcc.target/riscv/rvv/base/pr115456-1.c -FAIL: gcc.target/riscv/rvv/base/pr115456-2.c -FAIL: gcc.target/riscv/rvv/base/pr115456-3.c -FAIL: gcc.target/riscv/rvv/base/vlmul_ext-1.c -FAIL: gcc.target/riscv/rvv/vsetvl/pr111234.c -FAIL: gcc.target/riscv/rvv/vsetvl/pr115214.c -FAIL: gcc.target/riscv/rvv/vsetvl/vsetvl-24.c -UNRESOLVED: gcc.dg/vect/costmodel/riscv/rvv/pr113112-2.c -UNRESOLVED: gcc.target/riscv/rvv/autovec/bug-1.c -UNRESOLVED: gcc.target/riscv/rvv/autovec/pr113087-2.c -UNRESOLVED: gcc.target/riscv/rvv/autovec/vls/misalign-1.c -UNRESOLVED: gcc.target/riscv/rvv/base/abi-callee-saved-1-fixed-1.c -UNRESOLVED: gcc.target/riscv/rvv/base/abi-callee-saved-1-fixed-2.c -UNRESOLVED: gcc.target/riscv/rvv/base/abi-callee-saved-1-save-restore.c -UNRESOLVED: gcc.target/riscv/rvv/base/abi-callee-saved-1-zcmp.c -UNRESOLVED: gcc.target/riscv/rvv/base/abi-callee-saved-1.c -UNRESOLVED: gcc.target/riscv/rvv/base/abi-callee-saved-2-save-restore.c -UNRESOLVED: gcc.target/riscv/rvv/base/abi-callee-saved-2-zcmp.c -UNRESOLVED: gcc.target/riscv/rvv/base/abi-callee-saved-2.c -UNRESOLVED: gcc.target/riscv/rvv/base/pr110943.c -UNRESOLVED: gcc.target/riscv/rvv/base/pr111533-2.c -UNRESOLVED: gcc.target/riscv/rvv/base/pr112743-2.c -UNRESOLVED: gcc.target/riscv/rvv/base/pr114639-1.c -UNRESOLVED: gcc.target/riscv/rvv/base/pr115456-1.c -UNRESOLVED: gcc.target/riscv/rvv/base/pr115456-2.c -UNRESOLVED: gcc.target/riscv/rvv/base/pr115456-3.c -UNRESOLVED: gcc.target/riscv/rvv/base/vlmul_ext-1.c -UNRESOLVED: gcc.target/riscv/rvv/vsetvl/pr111234.c -UNRESOLVED: gcc.target/riscv/rvv/vsetvl/pr115214.c -UNRESOLVED: gcc.target/riscv/rvv/vsetvl/vsetvl-24.c +UNRESOLVED: gcc.target/riscv/rvv/xtheadvector/prefix.c +FAIL: gfortran.dg/ieee/modes_1.f90 +FAIL: gcc.target/riscv/rvv/vtype-call-clobbered.c +UNRESOLVED: gcc.target/riscv/rvv/vtype-call-clobbered.c +FAIL: gcc.target/riscv/rvv/xtheadvector/prefix.c +FAIL: gfortran.dg/ieee/ieee_6.f90 diff --git a/test/allowlist/gcc/glibc.rv32.log b/test/allowlist/gcc/glibc.rv32.log new file mode 100644 index 00000000000..8c490efedf7 --- /dev/null +++ b/test/allowlist/gcc/glibc.rv32.log @@ -0,0 +1,40 @@ +FAIL: g++.target/riscv/rvv/autovec/pr116595.C +UNRESOLVED: gcc.target/riscv/rvv/base/pr115456-2.c +UNRESOLVED: gcc.target/riscv/rvv/autovec/pr113087-2.c +UNRESOLVED: gcc.target/riscv/rvv/xsfvector/sf_vfnrclip_x_f_qf.c +FAIL: gcc.target/riscv/rvv/autovec/vls/misalign-1.c +UNRESOLVED: gcc.target/riscv/rvv/xsfvector/sf_vqmaccu_2x8x2.c +FAIL: gcc.target/riscv/rvv/xsfvector/sf_vqmaccu_4x8x4.c +UNRESOLVED: gcc.target/riscv/rvv/xsfvector/sf_vqmacc_4x8x4.c +FAIL: gcc.target/riscv/rvv/xsfvector/sf_vqmacc_4x8x4.c +UNRESOLVED: gcc.target/riscv/rvv/xsfvector/sf_vqmaccu_4x8x4.c +FAIL: gcc.target/riscv/rvv/base/pr115456-1.c +FAIL: gcc.target/riscv/rvv/xsfvector/sf_vqmaccus_2x8x2.c +UNRESOLVED: gcc.target/riscv/rvv/base/pr115456-3.c +FAIL: gcc.target/riscv/rvv/base/pr115456-2.c +UNRESOLVED: gcc.target/riscv/rvv/xsfvector/sf_vfnrclip_xu_f_qf.c +FAIL: gcc.target/riscv/rvv/xsfvector/sf_vqmaccus_4x8x4.c +FAIL: gcc.target/riscv/rvv/base/pr111533-2.c +UNRESOLVED: gcc.target/riscv/rvv/xsfvector/sf_vqmaccus_4x8x4.c +UNRESOLVED: gcc.target/riscv/rvv/xsfvector/sf_vqmacc_2x8x2.c +FAIL: gcc.target/riscv/rvv/xsfvector/sf_vfnrclip_xu_f_qf.c +FAIL: gcc.target/riscv/rvv/xsfvector/sf_vqmaccsu_4x8x4.c +UNRESOLVED: gcc.target/riscv/pr112398.c +FAIL: gcc.target/riscv/pr112398.c +FAIL: gcc.target/riscv/rvv/xsfvector/sf_vqmacc_2x8x2.c +UNRESOLVED: gcc.target/riscv/rvv/autovec/bug-1.c +UNRESOLVED: gcc.target/riscv/rvv/xsfvector/sf_vqmaccsu_4x8x4.c +UNRESOLVED: gcc.target/riscv/rvv/base/pr115456-1.c +FAIL: gcc.target/riscv/rvv/base/pr112743-2.c +FAIL: gcc.target/riscv/rvv/xsfvector/sf_vqmaccsu_2x8x2.c +FAIL: gcc.target/riscv/rvv/autovec/pr113087-2.c +FAIL: gcc.target/riscv/slt-1.c +FAIL: gcc.target/riscv/rvv/xsfvector/sf_vqmaccu_2x8x2.c +FAIL: gcc.target/riscv/rvv/base/pr115456-3.c +FAIL: gcc.target/riscv/rvv/xsfvector/sf_vfnrclip_x_f_qf.c +FAIL: gcc.target/riscv/rvv/autovec/bug-1.c +UNRESOLVED: gcc.dg/vect/costmodel/riscv/rvv/pr113112-2.c +UNRESOLVED: gcc.target/riscv/slt-1.c +UNRESOLVED: gcc.target/riscv/rvv/autovec/vls/misalign-1.c +UNRESOLVED: gcc.target/riscv/rvv/xsfvector/sf_vqmaccsu_2x8x2.c +UNRESOLVED: gcc.target/riscv/rvv/xsfvector/sf_vqmaccus_2x8x2.c diff --git a/test/allowlist/gcc/glibc.rv64.log b/test/allowlist/gcc/glibc.rv64.log new file mode 100644 index 00000000000..a114ca2a5a4 --- /dev/null +++ b/test/allowlist/gcc/glibc.rv64.log @@ -0,0 +1,12 @@ +UNRESOLVED: gcc.target/riscv/rvv/xtheadvector/vlh-vsh.c +FAIL: gcc.target/riscv/rvv/xtheadvector/vlbu-vsb.c +FAIL: gcc.target/riscv/rvv/xtheadvector/vlh-vsh.c +UNRESOLVED: gcc.target/riscv/rvv/xtheadvector/vlwu-vsw.c +FAIL: gcc.target/riscv/rvv/xtheadvector/vlhu-vsh.c +UNRESOLVED: gcc.target/riscv/rvv/xtheadvector/vlw-vsw.c +UNRESOLVED: gcc.target/riscv/rvv/xtheadvector/vlb-vsb.c +UNRESOLVED: gcc.target/riscv/rvv/xtheadvector/vlhu-vsh.c +UNRESOLVED: gcc.target/riscv/rvv/xtheadvector/vlbu-vsb.c +FAIL: gcc.target/riscv/rvv/xtheadvector/vlwu-vsw.c +FAIL: gcc.target/riscv/rvv/xtheadvector/vlw-vsw.c +FAIL: gcc.target/riscv/rvv/xtheadvector/vlb-vsb.c diff --git a/test/allowlist/gcc/newlib-nano.f.log b/test/allowlist/gcc/newlib-nano.f.log deleted file mode 100644 index 37b510abbeb..00000000000 --- a/test/allowlist/gcc/newlib-nano.f.log +++ /dev/null @@ -1,4 +0,0 @@ -# -# errno, failed because newlib nano didn't build with _POSIX_MODE -# -FAIL: gcc.dg/torture/pr68264.c diff --git a/test/allowlist/gcc/newlib-nano.log b/test/allowlist/gcc/newlib-nano.log deleted file mode 100644 index 9eb3e9cf8d4..00000000000 --- a/test/allowlist/gcc/newlib-nano.log +++ /dev/null @@ -1,34 +0,0 @@ -# -# We didn't init thread pointer in qemu nor newlib. -# -FAIL: gcc.dg/tls/pr78796.c execution test -FAIL: g++.dg/cpp2a/decomp2.C -# -# freopen with stdout not work correctly for newlib -# -FAIL: gcc.c-torture/execute/user-printf.c -FAIL: gcc.c-torture/execute/fprintf-2.c -FAIL: gcc.c-torture/execute/printf-2.c -# -# newlib-nano didn't print out floating point by default, -# program must link with -u_printf_float. -# -FAIL: g++.old-deja/g++.brendan/nest21.C -FAIL: gcc.dg/torture/builtin-sprintf.c -FAIL: gcc.dg/tree-ssa/builtin-sprintf.c -FAIL: gcc.c-torture/execute/930513-1.c -FAIL: gcc.c-torture/execute/920501-8.c -FAIL: gcc.c-torture/execute/ieee/920810-1.c -FAIL: gcc.c-torture/execute/printf-2.c -# -# newlib nano using LITE_EXIT, __register_exitproc won't link by default, -# so dtor of global var not work properly. -# Program must link with -u __register_exitproc to work properly. -# -FAIL: g++.dg/init/ref15.C -FAIL: g++.old-deja/g++.other/init18.C -FAIL: g++.old-deja/g++.pt/static11.C -# -# Missing dg-require-effective-target shared -# -FAIL: g++.dg/lto/pr87906 diff --git a/test/allowlist/gcc/newlib.log b/test/allowlist/gcc/newlib.log index 50d20d8010a..2b877ee9d74 100644 --- a/test/allowlist/gcc/newlib.log +++ b/test/allowlist/gcc/newlib.log @@ -1,14 +1,4 @@ -# -# We didn't init thread pointer in qemu nor newlib. -# -FAIL: g++.dg/cpp2a/decomp2.C -# -# freopen with stdout not work correctly for newlib -# -FAIL: gcc.c-torture/execute/user-printf.c -FAIL: gcc.c-torture/execute/fprintf-2.c -FAIL: gcc.c-torture/execute/printf-2.c -# -# Spike execution fail -# -FAIL: g++.dg/vect/pr84556.cc +FAIL: gcc.c-torture/execute/printf-2.c +FAIL: gcc.c-torture/execute/fprintf-2.c +FAIL: gcc.c-torture/execute/user-printf.c +FAIL: g++.dg/cpp2a/decomp2.C diff --git a/test/allowlist/gcc/newlib.rv32.log b/test/allowlist/gcc/newlib.rv32.log deleted file mode 100644 index 1f1aee1ef52..00000000000 --- a/test/allowlist/gcc/newlib.rv32.log +++ /dev/null @@ -1,8 +0,0 @@ -# -# RV32 only -# -UNRESOLVED: g++.dg/vect/pr115278.cc -FAIL: g++.dg/vect/pr115278.cc -FAIL: c-c++-common/analyzer/out-of-bounds-diagram-11.c -FAIL: c-c++-common/analyzer/out-of-bounds-diagram-8.c -FAIL: gcc.dg/analyzer/out-of-bounds-diagram-10.c diff --git a/test/allowlist/gcc/rv32.log b/test/allowlist/gcc/rv32.log index 758bc9f8dbe..5a985894900 100644 --- a/test/allowlist/gcc/rv32.log +++ b/test/allowlist/gcc/rv32.log @@ -1,5 +1,8 @@ -# -# RV32 only -# -FAIL: gcc.target/riscv/rvv/base/vwaddsub-1.c -FAIL: gcc.dg/torture/pr113026-1.c +UNRESOLVED: gcc.target/riscv/rvv/autovec/vls-vlmax/shuffle-slide.c +FAIL: gcc.dg/tree-ssa/pr83403-1.c +FAIL: gcc.dg/tree-ssa/pr83403-2.c +FAIL: gcc.target/riscv/pr116715.c +FAIL: gcc.dg/torture/pr113026-1.c +FAIL: gcc.dg/pr90838-2.c +UNRESOLVED: gcc.target/riscv/pr116715.c +FAIL: gcc.target/riscv/rvv/autovec/vls-vlmax/shuffle-slide.c