[r15-4104 Regression] FAIL: gfortran.dg/gomp/allocate-static.f90 -Os (test for excess errors) on Linux/x86_64
On Linux/x86_64, a8caeaacf499d58ba7ceabc311b7b71ca806f740 is the first bad commit commit a8caeaacf499d58ba7ceabc311b7b71ca806f740 Author: Tobias Burnus Date: Mon Oct 7 10:45:14 2024 +0200 OpenMP: Allocate directive for static vars, clean up caused FAIL: gfortran.dg/gomp/allocate-static.f90 -O0 (test for excess errors) FAIL: gfortran.dg/gomp/allocate-static.f90 -O1 (test for excess errors) FAIL: gfortran.dg/gomp/allocate-static.f90 -O2 (test for excess errors) FAIL: gfortran.dg/gomp/allocate-static.f90 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions (test for excess errors) FAIL: gfortran.dg/gomp/allocate-static.f90 -O3 -g (test for excess errors) FAIL: gfortran.dg/gomp/allocate-static.f90 -Os (test for excess errors) with GCC configured with ../../gcc/configure --prefix=/export/users/haochenj/src/gcc-bisect/master/master/r15-4104/usr --enable-clocale=gnu --with-system-zlib --with-demangler-in-ld --with-fpmath=sse --enable-languages=c,c++,fortran --enable-cet --without-isl --enable-libmpx x86_64-linux --disable-bootstrap To reproduce: $ cd {build_dir}/gcc && make check RUNTESTFLAGS="gomp.exp=gfortran.dg/gomp/allocate-static.f90 --target_board='unix{-m32}'" $ cd {build_dir}/gcc && make check RUNTESTFLAGS="gomp.exp=gfortran.dg/gomp/allocate-static.f90 --target_board='unix{-m32\ -march=cascadelake}'" $ cd {build_dir}/gcc && make check RUNTESTFLAGS="gomp.exp=gfortran.dg/gomp/allocate-static.f90 --target_board='unix{-m64}'" $ cd {build_dir}/gcc && make check RUNTESTFLAGS="gomp.exp=gfortran.dg/gomp/allocate-static.f90 --target_board='unix{-m64\ -march=cascadelake}'" (Please do not reply to this email, for question about this report, contact me at haochen dot jiang at intel.com.) (If you met problems with cascadelake related, disabling AVX512F in command line might save that.) (However, please make sure that there is no potential problems with AVX512.)
Re: [r15-4104 Regression] FAIL: gfortran.dg/gomp/allocate-static.f90 -Os (test for excess errors) on Linux/x86_64
Hi Tobias! On 2024-10-07T17:07:05+0200, Tobias Burnus wrote: > haochen.jiang wrote: >> On Linux/x86_64, >> FAIL: gfortran.dg/gomp/allocate-static.f90 -O0 (test for excess errors) > > If anyone can reproduce this, I would be interested in the excess errors. gfortran: fatal error: cannot read spec file 'libgomp.spec': No such file or directory > On two machines – with and without offloading configured – I cannot > reproduce this neither with a bootsstrap nor non-bootstrap build, > neither with the testsuite nor under valgrind and also not with -m32 vs. > -m64. Try again with build-tree (non-installed) testing. ;-) On 2024-10-07T10:47:56+0200, Tobias Burnus wrote: > --- /dev/null > +++ b/gcc/testsuite/gfortran.dg/gomp/allocate-static.f90 > @@ -0,0 +1,62 @@ > +! { dg-do run } Implicit linking here. I already was about to 'git mv' the file into 'libgomp/testsuite/libgomp.fortran/' -- but then realized that we probably also should get rid of this local 'module omp_lib_kinds': > +module omp_lib_kinds > + use iso_c_binding, only: c_int, c_intptr_t > + implicit none > + private :: c_int, c_intptr_t > + integer, parameter :: omp_allocator_handle_kind = c_intptr_t > + > + integer (kind=omp_allocator_handle_kind), & > + parameter :: omp_null_allocator = 0 > + [...] > +end module ..., right? > +[...] Grüße Thomas
Regressions on master at commit r15-4105 vs commit r15-4092 on Linux/x86_64
Regressions on master at commit r15-4105 vs commit r15-4092 on Linux/x86_64 New failures: FAIL: gcc.dg/torture/convert-dfp-2.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects (test for excess errors) FAIL: gcc.dg/torture/convert-dfp.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects (test for excess errors) FAIL: gfortran.dg/gomp/allocate-static.f90 -O0 (test for excess errors) FAIL: gfortran.dg/gomp/allocate-static.f90 -O0 (test for excess errors) FAIL: gfortran.dg/gomp/allocate-static.f90 -O1 (test for excess errors) FAIL: gfortran.dg/gomp/allocate-static.f90 -O1 (test for excess errors) FAIL: gfortran.dg/gomp/allocate-static.f90 -O2 (test for excess errors) FAIL: gfortran.dg/gomp/allocate-static.f90 -O2 (test for excess errors) FAIL: gfortran.dg/gomp/allocate-static.f90 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions (test for excess errors) FAIL: gfortran.dg/gomp/allocate-static.f90 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions (test for excess errors) FAIL: gfortran.dg/gomp/allocate-static.f90 -O3 -g (test for excess errors) FAIL: gfortran.dg/gomp/allocate-static.f90 -O3 -g (test for excess errors) FAIL: gfortran.dg/gomp/allocate-static.f90 -Os (test for excess errors) FAIL: gfortran.dg/gomp/allocate-static.f90 -Os (test for excess errors) New passes:
Regressions on master at commit r15-4105 vs commit r15-4092 on Linux/i686
Regressions on master at commit r15-4105 vs commit r15-4092 on Linux/i686 New failures: FAIL: gfortran.dg/gomp/allocate-static.f90 -O0 (test for excess errors) FAIL: gfortran.dg/gomp/allocate-static.f90 -O1 (test for excess errors) FAIL: gfortran.dg/gomp/allocate-static.f90 -O2 (test for excess errors) FAIL: gfortran.dg/gomp/allocate-static.f90 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions (test for excess errors) FAIL: gfortran.dg/gomp/allocate-static.f90 -O3 -g (test for excess errors) FAIL: gfortran.dg/gomp/allocate-static.f90 -Os (test for excess errors) New passes:
Regressions on master at commit r15-4116 vs commit r15-4105 on Linux/x86_64
Regressions on master at commit r15-4116 vs commit r15-4105 on Linux/x86_64 New failures: New passes: FAIL: gcc.dg/torture/convert-dfp-2.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects (test for excess errors) FAIL: gcc.dg/torture/convert-dfp.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects (test for excess errors)
Regressions on native/master at commit r15-4105 vs commit r15-4092 on Linux/x86_64
Regressions on master at commit r15-4105 vs commit r15-4092 on Linux/x86_64 New failures: FAIL: gfortran.dg/gomp/allocate-static.f90 -O0 (test for excess errors) FAIL: gfortran.dg/gomp/allocate-static.f90 -O0 (test for excess errors) FAIL: gfortran.dg/gomp/allocate-static.f90 -O1 (test for excess errors) FAIL: gfortran.dg/gomp/allocate-static.f90 -O1 (test for excess errors) FAIL: gfortran.dg/gomp/allocate-static.f90 -O2 (test for excess errors) FAIL: gfortran.dg/gomp/allocate-static.f90 -O2 (test for excess errors) FAIL: gfortran.dg/gomp/allocate-static.f90 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions (test for excess errors) FAIL: gfortran.dg/gomp/allocate-static.f90 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions (test for excess errors) FAIL: gfortran.dg/gomp/allocate-static.f90 -O3 -g (test for excess errors) FAIL: gfortran.dg/gomp/allocate-static.f90 -O3 -g (test for excess errors) FAIL: gfortran.dg/gomp/allocate-static.f90 -Os (test for excess errors) FAIL: gfortran.dg/gomp/allocate-static.f90 -Os (test for excess errors) New passes:
Re: [r15-4104 Regression] FAIL: gfortran.dg/gomp/allocate-static.f90 -Os (test for excess errors) on Linux/x86_64
haochen.jiang wrote: On Linux/x86_64, FAIL: gfortran.dg/gomp/allocate-static.f90 -O0 (test for excess errors) If anyone can reproduce this, I would be interested in the excess errors. On two machines – with and without offloading configured – I cannot reproduce this neither with a bootsstrap nor non-bootstrap build, neither with the testsuite nor under valgrind and also not with -m32 vs. -m64. Tobias
[committed] Move gfortran.dg/gomp/allocate-static.f90 to libgomp.fortran/ (was: [r15-4104 Regression] FAIL: gfortran.dg/gomp/allocate-static.f90 -Os (test for excess errors) on Linux/x86_64)
Committed as r15-4127-gb95ad25f9c9376 Hi Thomas, Thomas Schwinge wrote: On 2024-10-07T17:07:05+0200, Tobias Burnus wrote: If anyone can reproduce this, I would be interested in the excess errors. gfortran: fatal error: cannot read spec file 'libgomp.spec': No such file or directory Aha. Thanks! — I am in principle aware of it, but tend to forget it from time to time, especially when only later turning a compile-time test into a runtime one … In principle, a compile-time only check would enough (as with the C testcase) if the alignment were visible in the dump. (It is, kind of, with C/C++, using alignof; but for Fortran it isn't. On the other hand, checking it at runtime ensures that it really works.) I already was about to 'git mv' the file into 'libgomp/testsuite/libgomp.fortran/' -- but then realized that we probably also should get rid of this local 'module omp_lib_kinds': Yes, if 'omp_lib_kinds.mod' is available, there is no point to define it locally. Tobias commit b95ad25f9c9376575dcde4bcb529d3ca31b27359 Author: Tobias Burnus Date: Mon Oct 7 23:57:42 2024 +0200 Move gfortran.dg/gomp/allocate-static.f90 to libgomp.fortran/ The testcase was turned into a 'dg-do run' check to check for the alignment, but this only works in testsuite/gfortran.dg, causing link errors for out-of-tree testing. The test was added in r15-4104-ga8caeaacf499d5. gcc/testsuite/: * gfortran.dg/gomp/allocate-static.f90: Move to libgomp/testsuite/. libgomp/: * testsuite/libgomp.fortran/allocate-static.f90: Moved from gcc/testsuite/ as it is a dg-do run test; use real omp_lib_kinds instead of local definition --- .../testsuite/libgomp.fortran}/allocate-static.f90 | 28 -- 1 file changed, 28 deletions(-) diff --git a/gcc/testsuite/gfortran.dg/gomp/allocate-static.f90 b/libgomp/testsuite/libgomp.fortran/allocate-static.f90 similarity index 50% rename from gcc/testsuite/gfortran.dg/gomp/allocate-static.f90 rename to libgomp/testsuite/libgomp.fortran/allocate-static.f90 index e43dae5793f..2789e39e19b 100644 --- a/gcc/testsuite/gfortran.dg/gomp/allocate-static.f90 +++ b/libgomp/testsuite/libgomp.fortran/allocate-static.f90 @@ -1,31 +1,3 @@ -! { dg-do run } - -module omp_lib_kinds - use iso_c_binding, only: c_int, c_intptr_t - implicit none - private :: c_int, c_intptr_t - integer, parameter :: omp_allocator_handle_kind = c_intptr_t - - integer (kind=omp_allocator_handle_kind), & - parameter :: omp_null_allocator = 0 - integer (kind=omp_allocator_handle_kind), & - parameter :: omp_default_mem_alloc = 1 - integer (kind=omp_allocator_handle_kind), & - parameter :: omp_large_cap_mem_alloc = 2 - integer (kind=omp_allocator_handle_kind), & - parameter :: omp_const_mem_alloc = 3 - integer (kind=omp_allocator_handle_kind), & - parameter :: omp_high_bw_mem_alloc = 4 - integer (kind=omp_allocator_handle_kind), & - parameter :: omp_low_lat_mem_alloc = 5 - integer (kind=omp_allocator_handle_kind), & - parameter :: omp_cgroup_mem_alloc = 6 - integer (kind=omp_allocator_handle_kind), & - parameter :: omp_pteam_mem_alloc = 7 - integer (kind=omp_allocator_handle_kind), & - parameter :: omp_thread_mem_alloc = 8 -end module - module m use iso_c_binding, only: c_intptr_t use omp_lib_kinds, only: omp_default_mem_alloc