Message ID | 20230522064138.74056-1-kito.cheng@sifive.com |
---|---|
State | New |
Headers | show |
Series | RISC-V: Add missing torture-init and torture-finish for rvv.exp | expand |
Ooops, seems still some issue around here, but I found something might related this issue: https://github.com/gcc-mirror/gcc/commit/d6654a4be3ba44c0d57be7c8a51d76d9721345e1 https://github.com/gcc-mirror/gcc/commit/23c49bb8d09bc3bfce9a08be637cf32ac014de56 On Mon, May 22, 2023 at 2:42 PM Kito Cheng <kito.cheng@sifive.com> wrote: > > Hi Vineet: > > Could you help to test this patch, this could resolve that issue on our > machine, but I would like to also work for other env. > > Thanks :) > > --- > > We got bunch of following error message for multi-lib run: > > ERROR: torture-init: torture_without_loops is not empty as expected > ERROR: tcl error code NONE > > And seems we need torture-init and torture-finish around the test > loop. > > gcc/testsuite/ChangeLog: > > * gcc.target/riscv/rvv/rvv.exp: Add torture-init and > torture-finish. > --- > gcc/testsuite/gcc.target/riscv/rvv/rvv.exp | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp b/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp > index bc99cc0c3cf4..19179564361a 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp > +++ b/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp > @@ -39,6 +39,7 @@ if [istarget riscv32-*-*] then { > > # Initialize `dg'. > dg-init > +torture-init > > # Main loop. > set CFLAGS "$DEFAULT_CFLAGS -march=$gcc_march -mabi=$gcc_mabi -O3" > @@ -69,5 +70,7 @@ foreach op $AUTOVEC_TEST_OPTS { > dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/autovec/vls-vlmax/*.\[cS\]]] \ > "-std=c99 -O3 -ftree-vectorize --param riscv-autovec-preference=fixed-vlmax" $CFLAGS > > +torture-finish > + > # All done. > dg-finish > -- > 2.40.1 >
On 5/22/23 02:17, Kito Cheng wrote: > Ooops, seems still some issue around here, Yep still 5000 fails :-( > but I found something might > related this issue: > > https://github.com/gcc-mirror/gcc/commit/d6654a4be3ba44c0d57be7c8a51d76d9721345e1 > https://github.com/gcc-mirror/gcc/commit/23c49bb8d09bc3bfce9a08be637cf32ac014de56 It seems both of these patches are essentially doing what yours did. So something else is amiss still. Thx, -Vineet > > On Mon, May 22, 2023 at 2:42 PM Kito Cheng <kito.cheng@sifive.com> wrote: >> Hi Vineet: >> >> Could you help to test this patch, this could resolve that issue on our >> machine, but I would like to also work for other env. >> >> Thanks :) >> >> --- >> >> We got bunch of following error message for multi-lib run: >> >> ERROR: torture-init: torture_without_loops is not empty as expected >> ERROR: tcl error code NONE >> >> And seems we need torture-init and torture-finish around the test >> loop. >> >> gcc/testsuite/ChangeLog: >> >> * gcc.target/riscv/rvv/rvv.exp: Add torture-init and >> torture-finish. >> --- >> gcc/testsuite/gcc.target/riscv/rvv/rvv.exp | 3 +++ >> 1 file changed, 3 insertions(+) >> >> diff --git a/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp b/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp >> index bc99cc0c3cf4..19179564361a 100644 >> --- a/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp >> +++ b/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp >> @@ -39,6 +39,7 @@ if [istarget riscv32-*-*] then { >> >> # Initialize `dg'. >> dg-init >> +torture-init >> >> # Main loop. >> set CFLAGS "$DEFAULT_CFLAGS -march=$gcc_march -mabi=$gcc_mabi -O3" >> @@ -69,5 +70,7 @@ foreach op $AUTOVEC_TEST_OPTS { >> dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/autovec/vls-vlmax/*.\[cS\]]] \ >> "-std=c99 -O3 -ftree-vectorize --param riscv-autovec-preference=fixed-vlmax" $CFLAGS >> >> +torture-finish >> + >> # All done. >> dg-finish >> -- >> 2.40.1 >>
+CC Thomas and Maciej On 5/22/23 20:52, Vineet Gupta wrote: > On 5/22/23 02:17, Kito Cheng wrote: >> Ooops, seems still some issue around here, > > Yep still 5000 fails :-( > >> but I found something might >> related this issue: >> >> https://github.com/gcc-mirror/gcc/commit/d6654a4be3ba44c0d57be7c8a51d76d9721345e1 >> >> https://github.com/gcc-mirror/gcc/commit/23c49bb8d09bc3bfce9a08be637cf32ac014de56 >> > > It seems both of these patches are essentially doing what yours did. > So something else is amiss still. Apparently in addition to Kito's patch below, If I comment out the additional torture options, failures go down drastically. diff --git a/gcc/testsuite/gcc.target/riscv/riscv.exp b/gcc/testsuite/gcc.target/riscv/riscv.exp -lappend ADDITIONAL_TORTURE_OPTIONS {-Og -g} {-Oz} +#lappend ADDITIONAL_TORTURE_OPTIONS {-Og -g} {-Oz} @Thomas, do you have some thoughts on how to fix riscv.exp properly in light of recent changes to exp files. > > Thx, > -Vineet > >> >> On Mon, May 22, 2023 at 2:42 PM Kito Cheng <kito.cheng@sifive.com> >> wrote: >>> Hi Vineet: >>> >>> Could you help to test this patch, this could resolve that issue on our >>> machine, but I would like to also work for other env. >>> >>> Thanks :) >>> >>> --- >>> >>> We got bunch of following error message for multi-lib run: >>> >>> ERROR: torture-init: torture_without_loops is not empty as expected >>> ERROR: tcl error code NONE >>> >>> And seems we need torture-init and torture-finish around the test >>> loop. >>> >>> gcc/testsuite/ChangeLog: >>> >>> * gcc.target/riscv/rvv/rvv.exp: Add torture-init and >>> torture-finish. >>> --- >>> gcc/testsuite/gcc.target/riscv/rvv/rvv.exp | 3 +++ >>> 1 file changed, 3 insertions(+) >>> >>> diff --git a/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp >>> b/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp >>> index bc99cc0c3cf4..19179564361a 100644 >>> --- a/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp >>> +++ b/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp >>> @@ -39,6 +39,7 @@ if [istarget riscv32-*-*] then { >>> >>> # Initialize `dg'. >>> dg-init >>> +torture-init >>> >>> # Main loop. >>> set CFLAGS "$DEFAULT_CFLAGS -march=$gcc_march -mabi=$gcc_mabi -O3" >>> @@ -69,5 +70,7 @@ foreach op $AUTOVEC_TEST_OPTS { >>> dg-runtest [lsort [glob -nocomplain >>> $srcdir/$subdir/autovec/vls-vlmax/*.\[cS\]]] \ >>> "-std=c99 -O3 -ftree-vectorize --param >>> riscv-autovec-preference=fixed-vlmax" $CFLAGS >>> >>> +torture-finish >>> + >>> # All done. >>> dg-finish >>> -- >>> 2.40.1 >>> >
Hi! On 2023-05-24T11:18:35-0700, Vineet Gupta <vineetg@rivosinc.com> wrote: > On 5/22/23 20:52, Vineet Gupta wrote: >> On 5/22/23 02:17, Kito Cheng wrote: >>> Ooops, seems still some issue around here, >> >> Yep still 5000 fails :-( >> >>> but I found something might >>> related this issue: >>> >>> https://github.com/gcc-mirror/gcc/commit/d6654a4be3ba44c0d57be7c8a51d76d9721345e1 >>> >>> https://github.com/gcc-mirror/gcc/commit/23c49bb8d09bc3bfce9a08be637cf32ac014de56 >>> >> >> It seems both of these patches are essentially doing what yours did. >> So something else is amiss still. Yeah, at this point I'm not sure whether my recent changes really are related/relevant here. > Apparently in addition to Kito's patch below, If I comment out the > additional torture options, failures go down drastically. Meaning that *all* those ERRORs disappear? > diff --git a/gcc/testsuite/gcc.target/riscv/riscv.exp > b/gcc/testsuite/gcc.target/riscv/riscv.exp > > -lappend ADDITIONAL_TORTURE_OPTIONS {-Og -g} {-Oz} > +#lappend ADDITIONAL_TORTURE_OPTIONS {-Og -g} {-Oz} > > @Thomas, do you have some thoughts on how to fix riscv.exp properly in > light of recent changes to exp files. I'm trying to understand this, but so far don't. Can I please see a complete 'gcc.log' file where the ERRORs are visible? Grüße Thomas >>> On Mon, May 22, 2023 at 2:42 PM Kito Cheng <kito.cheng@sifive.com> >>> wrote: >>>> Hi Vineet: >>>> >>>> Could you help to test this patch, this could resolve that issue on our >>>> machine, but I would like to also work for other env. >>>> >>>> Thanks :) >>>> >>>> --- >>>> >>>> We got bunch of following error message for multi-lib run: >>>> >>>> ERROR: torture-init: torture_without_loops is not empty as expected >>>> ERROR: tcl error code NONE >>>> >>>> And seems we need torture-init and torture-finish around the test >>>> loop. >>>> >>>> gcc/testsuite/ChangeLog: >>>> >>>> * gcc.target/riscv/rvv/rvv.exp: Add torture-init and >>>> torture-finish. >>>> --- >>>> gcc/testsuite/gcc.target/riscv/rvv/rvv.exp | 3 +++ >>>> 1 file changed, 3 insertions(+) >>>> >>>> diff --git a/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp >>>> b/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp >>>> index bc99cc0c3cf4..19179564361a 100644 >>>> --- a/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp >>>> +++ b/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp >>>> @@ -39,6 +39,7 @@ if [istarget riscv32-*-*] then { >>>> >>>> # Initialize `dg'. >>>> dg-init >>>> +torture-init >>>> >>>> # Main loop. >>>> set CFLAGS "$DEFAULT_CFLAGS -march=$gcc_march -mabi=$gcc_mabi -O3" >>>> @@ -69,5 +70,7 @@ foreach op $AUTOVEC_TEST_OPTS { >>>> dg-runtest [lsort [glob -nocomplain >>>> $srcdir/$subdir/autovec/vls-vlmax/*.\[cS\]]] \ >>>> "-std=c99 -O3 -ftree-vectorize --param >>>> riscv-autovec-preference=fixed-vlmax" $CFLAGS >>>> >>>> +torture-finish >>>> + >>>> # All done. >>>> dg-finish >>>> -- >>>> 2.40.1 >>>> >>
On 5/24/23 13:34, Thomas Schwinge wrote: > Yeah, at this point I'm not sure whether my recent changes really are > related/relevant here. > >> Apparently in addition to Kito's patch below, If I comment out the >> additional torture options, failures go down drastically. > Meaning that *all* those ERRORs disappear? No but they reduced significantly. Anyhow I think the issue should be simple enough for someone familiar with how the tcl stuff works... > >> diff --git a/gcc/testsuite/gcc.target/riscv/riscv.exp >> b/gcc/testsuite/gcc.target/riscv/riscv.exp >> >> -lappend ADDITIONAL_TORTURE_OPTIONS {-Og -g} {-Oz} >> +#lappend ADDITIONAL_TORTURE_OPTIONS {-Og -g} {-Oz} >> >> @Thomas, do you have some thoughts on how to fix riscv.exp properly in >> light of recent changes to exp files. > I'm trying to understand this, but so far don't. Can I please see a > complete 'gcc.log' file where the ERRORs are visible? So we are at bleeding edge gcc from today 2023-05-24 ec2e86274427 Fortran: reject bad DIM argument of SIZE intrinsic in simplification [PR104350] With an additional fix from Kito along the lines of.. diff --git a/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp b/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp dg-init +torture-init # All done. +torture-finish dg-finish I'm pasting a snippet of gcc.log. Issue is indeed triggered by rvv.exp which needs some love. PASS: gcc.target/riscv/zmmul-2.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects (test for excess errors) PASS: gcc.target/riscv/zmmul-2.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects scan-assembler-times mul\t 1 PASS: gcc.target/riscv/zmmul-2.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects scan-assembler-not div\t PASS: gcc.target/riscv/zmmul-2.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects scan-assembler-not rem\t testcase /scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/riscv/riscv.exp completed in 60 seconds Running /scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp ... ERROR: tcl error sourcing /scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp. ERROR: tcl error code NONE ERROR: torture-init: torture_without_loops is not empty as expected while executing "error "torture-init: torture_without_loops is not empty as expected"" invoked from within "if [info exists torture_without_loops] { error "torture-init: torture_without_loops is not empty as expected" }" (procedure "torture-init" line 4) invoked from within "torture-init" (file "/scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp" line 42) invoked from within "source /scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp" ("uplevel" body line 1) invoked from within "uplevel #0 source /scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp" invoked from within "catch "uplevel #0 source $test_file_name" msg" UNRESOLVED: testcase '/scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp' aborted due to Tcl error testcase /scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp completed in 0 seconds Running /scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/rl78/rl78.exp ... ...
On 5/24/23 15:13, Vineet Gupta wrote: > > PASS: gcc.target/riscv/zmmul-2.c -O2 -flto -fuse-linker-plugin > -fno-fat-lto-objects (test for excess errors) > PASS: gcc.target/riscv/zmmul-2.c -O2 -flto -fuse-linker-plugin > -fno-fat-lto-objects scan-assembler-times mul\t 1 > PASS: gcc.target/riscv/zmmul-2.c -O2 -flto -fuse-linker-plugin > -fno-fat-lto-objects scan-assembler-not div\t > PASS: gcc.target/riscv/zmmul-2.c -O2 -flto -fuse-linker-plugin > -fno-fat-lto-objects scan-assembler-not rem\t > testcase > /scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/riscv/riscv.exp > completed in 60 seconds > Running > /scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp > ... > ERROR: tcl error sourcing > /scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp. > ERROR: tcl error code NONE > ERROR: torture-init: torture_without_loops is not empty as expected > while executing > "error "torture-init: torture_without_loops is not empty as expected"" > invoked from within > "if [info exists torture_without_loops] { > error "torture-init: torture_without_loops is not empty as expected" > }" > (procedure "torture-init" line 4) > invoked from within > "torture-init" > (file > "/scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp" > line 42) > invoked from within > "source > /scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp" > ("uplevel" body line 1) > invoked from within > "uplevel #0 source > /scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp" > invoked from within > "catch "uplevel #0 source $test_file_name" msg" > UNRESOLVED: testcase > '/scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp' > aborted due to Tcl error > testcase > /scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp > completed in 0 seconds > Running > /scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/rl78/rl78.exp > ... > ... > Never mind. Looks like I found the issue - with just trial and error and no idea of how this stuff works. The torture-{init,finish} needs to be in riscv.exp not rvv.exp Running full tests now. -Vineet
On Wed, 24 May 2023 16:12:20 PDT (-0700), Vineet Gupta wrote: > > > On 5/24/23 15:13, Vineet Gupta wrote: >> >> PASS: gcc.target/riscv/zmmul-2.c -O2 -flto -fuse-linker-plugin >> -fno-fat-lto-objects (test for excess errors) >> PASS: gcc.target/riscv/zmmul-2.c -O2 -flto -fuse-linker-plugin >> -fno-fat-lto-objects scan-assembler-times mul\t 1 >> PASS: gcc.target/riscv/zmmul-2.c -O2 -flto -fuse-linker-plugin >> -fno-fat-lto-objects scan-assembler-not div\t >> PASS: gcc.target/riscv/zmmul-2.c -O2 -flto -fuse-linker-plugin >> -fno-fat-lto-objects scan-assembler-not rem\t >> testcase >> /scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/riscv/riscv.exp >> completed in 60 seconds >> Running >> /scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp >> ... >> ERROR: tcl error sourcing >> /scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp. >> ERROR: tcl error code NONE >> ERROR: torture-init: torture_without_loops is not empty as expected >> while executing >> "error "torture-init: torture_without_loops is not empty as expected"" >> invoked from within >> "if [info exists torture_without_loops] { >> error "torture-init: torture_without_loops is not empty as expected" >> }" >> (procedure "torture-init" line 4) >> invoked from within >> "torture-init" >> (file >> "/scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp" >> line 42) >> invoked from within >> "source >> /scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp" >> ("uplevel" body line 1) >> invoked from within >> "uplevel #0 source >> /scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp" >> invoked from within >> "catch "uplevel #0 source $test_file_name" msg" >> UNRESOLVED: testcase >> '/scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp' >> aborted due to Tcl error >> testcase >> /scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp >> completed in 0 seconds >> Running >> /scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/rl78/rl78.exp >> ... >> ... >> > > Never mind. Looks like I found the issue - with just trial and error and > no idea of how this stuff works. > The torture-{init,finish} needs to be in riscv.exp not rvv.exp > Running full tests now. Thanks! > > -Vineet
On 5/24/23 17:12, Vineet Gupta wrote: > > > On 5/24/23 15:13, Vineet Gupta wrote: >> >> PASS: gcc.target/riscv/zmmul-2.c -O2 -flto -fuse-linker-plugin >> -fno-fat-lto-objects (test for excess errors) >> PASS: gcc.target/riscv/zmmul-2.c -O2 -flto -fuse-linker-plugin >> -fno-fat-lto-objects scan-assembler-times mul\t 1 >> PASS: gcc.target/riscv/zmmul-2.c -O2 -flto -fuse-linker-plugin >> -fno-fat-lto-objects scan-assembler-not div\t >> PASS: gcc.target/riscv/zmmul-2.c -O2 -flto -fuse-linker-plugin >> -fno-fat-lto-objects scan-assembler-not rem\t >> testcase >> /scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/riscv/riscv.exp completed in 60 seconds >> Running >> /scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp ... >> ERROR: tcl error sourcing >> /scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp. >> ERROR: tcl error code NONE >> ERROR: torture-init: torture_without_loops is not empty as expected >> while executing >> "error "torture-init: torture_without_loops is not empty as expected"" >> invoked from within >> "if [info exists torture_without_loops] { >> error "torture-init: torture_without_loops is not empty as expected" >> }" >> (procedure "torture-init" line 4) >> invoked from within >> "torture-init" >> (file >> "/scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp" line 42) >> invoked from within >> "source >> /scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp" >> ("uplevel" body line 1) >> invoked from within >> "uplevel #0 source >> /scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp" >> invoked from within >> "catch "uplevel #0 source $test_file_name" msg" >> UNRESOLVED: testcase >> '/scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp' aborted due to Tcl error >> testcase >> /scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp completed in 0 seconds >> Running >> /scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/rl78/rl78.exp ... >> ... >> > > Never mind. Looks like I found the issue - with just trial and error and > no idea of how this stuff works. > The torture-{init,finish} needs to be in riscv.exp not rvv.exp > Running full tests now. Trial and error is how I think most of us deal with the TCL insanity. I have found send_user (aka printf debugging) to be quite helpful through the years. There's also verbosity and trace options, but they can be painfully hard to interpret. jeff
On 5/24/23 17:13, Palmer Dabbelt wrote: > On Wed, 24 May 2023 16:12:20 PDT (-0700), Vineet Gupta wrote: [ ... big snip ... ] >> >> Never mind. Looks like I found the issue - with just trial and error and >> no idea of how this stuff works. >> The torture-{init,finish} needs to be in riscv.exp not rvv.exp >> Running full tests now. > > Thanks! Marginally related. I was able to bisect the "hang" when 3-staging the trunk on RISC-V with qemu user mode emulation. So it wasn't actually hanging, but after the introduction of segment intrinsics the compilation time for insn-emit explodes -- previously I could do a full 3-stage bootstrap, build the glibc & the kernel, then test c/c++/fortran in ~10 hours. Now just building insn-emit.o alone takes ~10 hours in that environment. I suspect (but have not yet confirmed) that we should see a huge compile-time spike in cross builds as well, though obviously it won't be as bad since we're not using qemu emulation. Clearly something isn't scaling well. I don't know if we've got a crazy large function in there, a crazy number of functions or something that's just triggering a compile-time scaling problem. Whatever it is, we probably need to address it. jeff
segment intrinsics are really huge amount. Even though I have tried to optimized them, still we have the issues...... How about LLVM? Can kito help with this issue? LLVM has already support full intrinsics for a long time and no issues. Thanks. juzhe.zhong@rivai.ai From: Jeff Law Date: 2023-05-25 11:43 To: Palmer Dabbelt; Vineet Gupta CC: kito.cheng; gcc-patches; Kito Cheng; Patrick O'Neill; Jeff Law; macro; juzhe.zhong@rivai.ai Subject: Re: RISC-V Bootstrap problems On 5/24/23 17:13, Palmer Dabbelt wrote: > On Wed, 24 May 2023 16:12:20 PDT (-0700), Vineet Gupta wrote: [ ... big snip ... ] >> >> Never mind. Looks like I found the issue - with just trial and error and >> no idea of how this stuff works. >> The torture-{init,finish} needs to be in riscv.exp not rvv.exp >> Running full tests now. > > Thanks! Marginally related. I was able to bisect the "hang" when 3-staging the trunk on RISC-V with qemu user mode emulation. So it wasn't actually hanging, but after the introduction of segment intrinsics the compilation time for insn-emit explodes -- previously I could do a full 3-stage bootstrap, build the glibc & the kernel, then test c/c++/fortran in ~10 hours. Now just building insn-emit.o alone takes ~10 hours in that environment. I suspect (but have not yet confirmed) that we should see a huge compile-time spike in cross builds as well, though obviously it won't be as bad since we're not using qemu emulation. Clearly something isn't scaling well. I don't know if we've got a crazy large function in there, a crazy number of functions or something that's just triggering a compile-time scaling problem. Whatever it is, we probably need to address it. jeff
Besides, we don't have compilation issues in crossing-compiling (with segment intrinsics). But I do agree we need to address such issue. As far as I known, GCC compile insn-emit in single thread single core. Can we multi-thread && multi-core to compile it to speed up the compilation? Thanks. juzhe.zhong@rivai.ai From: Jeff Law Date: 2023-05-25 11:43 To: Palmer Dabbelt; Vineet Gupta CC: kito.cheng; gcc-patches; Kito Cheng; Patrick O'Neill; Jeff Law; macro; juzhe.zhong@rivai.ai Subject: Re: RISC-V Bootstrap problems On 5/24/23 17:13, Palmer Dabbelt wrote: > On Wed, 24 May 2023 16:12:20 PDT (-0700), Vineet Gupta wrote: [ ... big snip ... ] >> >> Never mind. Looks like I found the issue - with just trial and error and >> no idea of how this stuff works. >> The torture-{init,finish} needs to be in riscv.exp not rvv.exp >> Running full tests now. > > Thanks! Marginally related. I was able to bisect the "hang" when 3-staging the trunk on RISC-V with qemu user mode emulation. So it wasn't actually hanging, but after the introduction of segment intrinsics the compilation time for insn-emit explodes -- previously I could do a full 3-stage bootstrap, build the glibc & the kernel, then test c/c++/fortran in ~10 hours. Now just building insn-emit.o alone takes ~10 hours in that environment. I suspect (but have not yet confirmed) that we should see a huge compile-time spike in cross builds as well, though obviously it won't be as bad since we're not using qemu emulation. Clearly something isn't scaling well. I don't know if we've got a crazy large function in there, a crazy number of functions or something that's just triggering a compile-time scaling problem. Whatever it is, we probably need to address it. jeff
Jojo has a patch to try to split those things that should help this, but seems not landed. https://patchwork.ozlabs.org/project/gcc/patch/20201104015315.81416-1-jiejie_rong@c-sky.com/ > How about LLVM? Can kito help with this issue? > LLVM has already supported full intrinsics for a long time and no issues. IIRC LLVM is using the table driven mechanism, so it's less impact on the compilation time when the instruction becomes more and more. On Thu, May 25, 2023 at 11:46 AM juzhe.zhong@rivai.ai <juzhe.zhong@rivai.ai> wrote: > > segment intrinsics are really huge amount. > > Even though I have tried to optimized them, still we have the issues...... > > How about LLVM? Can kito help with this issue? > LLVM has already support full intrinsics for a long time and no issues. > > Thanks. > > > juzhe.zhong@rivai.ai > > From: Jeff Law > Date: 2023-05-25 11:43 > To: Palmer Dabbelt; Vineet Gupta > CC: kito.cheng; gcc-patches; Kito Cheng; Patrick O'Neill; Jeff Law; macro; juzhe.zhong@rivai.ai > Subject: Re: RISC-V Bootstrap problems > > > On 5/24/23 17:13, Palmer Dabbelt wrote: > > On Wed, 24 May 2023 16:12:20 PDT (-0700), Vineet Gupta wrote: > > [ ... big snip ... ] > > >> > >> Never mind. Looks like I found the issue - with just trial and error and > >> no idea of how this stuff works. > >> The torture-{init,finish} needs to be in riscv.exp not rvv.exp > >> Running full tests now. > > > > Thanks! > Marginally related. I was able to bisect the "hang" when 3-staging the > trunk on RISC-V with qemu user mode emulation. > > So it wasn't actually hanging, but after the introduction of segment > intrinsics the compilation time for insn-emit explodes -- previously I > could do a full 3-stage bootstrap, build the glibc & the kernel, then > test c/c++/fortran in ~10 hours. > > Now just building insn-emit.o alone takes ~10 hours in that environment. > I suspect (but have not yet confirmed) that we should see a huge > compile-time spike in cross builds as well, though obviously it won't be > as bad since we're not using qemu emulation. > > Clearly something isn't scaling well. I don't know if we've got a crazy > large function in there, a crazy number of functions or something that's > just triggering a compile-time scaling problem. Whatever it is, we > probably need to address it. > > jeff > >
>> IIRC LLVM is using the table driven mechanism, so it's less impact on the >> compilation time when the instruction becomes more and more. Oh, I see. Could you share more details ? Maybe we can support this in GCC. juzhe.zhong@rivai.ai From: Kito Cheng Date: 2023-05-25 11:53 To: juzhe.zhong@rivai.ai CC: jeffreyalaw; palmer; vineetg; Kito.cheng; gcc-patches; Patrick O'Neill; jlaw; macro Subject: Re: Re: RISC-V Bootstrap problems Jojo has a patch to try to split those things that should help this, but seems not landed. https://patchwork.ozlabs.org/project/gcc/patch/20201104015315.81416-1-jiejie_rong@c-sky.com/ > How about LLVM? Can kito help with this issue? > LLVM has already supported full intrinsics for a long time and no issues. IIRC LLVM is using the table driven mechanism, so it's less impact on the compilation time when the instruction becomes more and more. On Thu, May 25, 2023 at 11:46 AM juzhe.zhong@rivai.ai <juzhe.zhong@rivai.ai> wrote: > > segment intrinsics are really huge amount. > > Even though I have tried to optimized them, still we have the issues...... > > How about LLVM? Can kito help with this issue? > LLVM has already support full intrinsics for a long time and no issues. > > Thanks. > > > juzhe.zhong@rivai.ai > > From: Jeff Law > Date: 2023-05-25 11:43 > To: Palmer Dabbelt; Vineet Gupta > CC: kito.cheng; gcc-patches; Kito Cheng; Patrick O'Neill; Jeff Law; macro; juzhe.zhong@rivai.ai > Subject: Re: RISC-V Bootstrap problems > > > On 5/24/23 17:13, Palmer Dabbelt wrote: > > On Wed, 24 May 2023 16:12:20 PDT (-0700), Vineet Gupta wrote: > > [ ... big snip ... ] > > >> > >> Never mind. Looks like I found the issue - with just trial and error and > >> no idea of how this stuff works. > >> The torture-{init,finish} needs to be in riscv.exp not rvv.exp > >> Running full tests now. > > > > Thanks! > Marginally related. I was able to bisect the "hang" when 3-staging the > trunk on RISC-V with qemu user mode emulation. > > So it wasn't actually hanging, but after the introduction of segment > intrinsics the compilation time for insn-emit explodes -- previously I > could do a full 3-stage bootstrap, build the glibc & the kernel, then > test c/c++/fortran in ~10 hours. > > Now just building insn-emit.o alone takes ~10 hours in that environment. > I suspect (but have not yet confirmed) that we should see a huge > compile-time spike in cross builds as well, though obviously it won't be > as bad since we're not using qemu emulation. > > Clearly something isn't scaling well. I don't know if we've got a crazy > large function in there, a crazy number of functions or something that's > just triggering a compile-time scaling problem. Whatever it is, we > probably need to address it. > > jeff > >
On 5/24/23 21:53, Kito Cheng wrote: > Jojo has a patch to try to split those things that should help this, > but seems not landed. > > https://patchwork.ozlabs.org/project/gcc/patch/20201104015315.81416-1-jiejie_rong@c-sky.com/ Is JoJo still active? I haven't heard from JoJo in many months, perhaps as long as a year or two. Jeff
On 5/24/23 21:54, juzhe.zhong@rivai.ai wrote: > >> IIRC LLVM is using the table driven mechanism, so it's less impact > on the >>>compilation time when the instruction becomes more and more. > Oh, I see. Could you share more details ? > Maybe we can support this in GCC. It's highly unlikely we'll switch from the mechanisms we're using. They're pretty deeply embedded into how all the ports are developed and work. The first step is to figure out what's exploding. I strongly suspect we'll be able to see this in a cross, but again, the magnitude will be smaller. jeff
Yeah, JoJo still working on toolchain stuff, but just not active on upstream GCC cc. jojo On Thu, May 25, 2023 at 12:06 PM Jeff Law <jlaw@ventanamicro.com> wrote: > > > > On 5/24/23 21:53, Kito Cheng wrote: > > Jojo has a patch to try to split those things that should help this, > > but seems not landed. > > > > https://patchwork.ozlabs.org/project/gcc/patch/20201104015315.81416-1-jiejie_rong@c-sky.com/ > Is JoJo still active? I haven't heard from JoJo in many months, perhaps > as long as a year or two. > > Jeff
>> It's highly unlikely we'll switch from the mechanisms we're using. >>They're pretty deeply embedded into how all the ports are developed and >>work. We just take a look at the build file. It seems that the functions generated by define_insn are so many. Do we have the chance optimize it? I believe the tablegen mechanism in LLVM is well optimized in case of generated files and functions so that they won't be affected to much as instructions go up. Thanks. juzhe.zhong@rivai.ai From: Jeff Law Date: 2023-05-25 12:07 To: juzhe.zhong@rivai.ai; kito.cheng CC: jeffreyalaw; palmer; vineetg; Kito.cheng; gcc-patches; Patrick O'Neill; macro Subject: Re: RISC-V Bootstrap problems On 5/24/23 21:54, juzhe.zhong@rivai.ai wrote: > >> IIRC LLVM is using the table driven mechanism, so it's less impact > on the >>>compilation time when the instruction becomes more and more. > Oh, I see. Could you share more details ? > Maybe we can support this in GCC. It's highly unlikely we'll switch from the mechanisms we're using. They're pretty deeply embedded into how all the ports are developed and work. The first step is to figure out what's exploding. I strongly suspect we'll be able to see this in a cross, but again, the magnitude will be smaller. jeff
On 5/24/23 22:19, juzhe.zhong@rivai.ai wrote: > >> It's highly unlikely we'll switch from the mechanisms we're using. >>>They're pretty deeply embedded into how all the ports are developed and >>>work. > > We just take a look at the build file. It seems that the functions > generated by define_insn > are so many. Do we have the chance optimize it? > I believe the tablegen mechanism in LLVM is well optimized in case of > generated files and functions > so that they won't be affected to much as instructions go up. Any define_insn or define_expand with a name that does not begin with a '*' will result in a function in insn-emit. Those functions allow us to generate those patterns either from generic parts of the compiler or from within the target. So if I have (define_insn "fubar" ...) I can say rtx x = gen_fubar (...); To constuct RTL matching the pattern for "fubar". So if there are patterns with names that are not used in this way, you can prefix their name with '*' to suppress creation of the generator function. I have not looked to see if this would help our situation. jeff
Hi! On 2023-05-24T15:13:19-0700, Vineet Gupta <vineetg@rivosinc.com> wrote: > On 5/24/23 13:34, Thomas Schwinge wrote: >> Yeah, at this point I'm not sure whether my recent changes really are >> related/relevant here. >> >>> Apparently in addition to Kito's patch below, If I comment out the >>> additional torture options, failures go down drastically. >> Meaning that *all* those ERRORs disappear? > > No but they reduced significantly. Anyhow I think the issue should be > simple enough for someone familiar with how the tcl stuff works... I'm here to help -- but you'll have to help me to help you, please. >>> diff --git a/gcc/testsuite/gcc.target/riscv/riscv.exp >>> b/gcc/testsuite/gcc.target/riscv/riscv.exp >>> >>> -lappend ADDITIONAL_TORTURE_OPTIONS {-Og -g} {-Oz} >>> +#lappend ADDITIONAL_TORTURE_OPTIONS {-Og -g} {-Oz} >>> >>> @Thomas, do you have some thoughts on how to fix riscv.exp properly in >>> light of recent changes to exp files. >> I'm trying to understand this, but so far don't. Can I please see a >> complete 'gcc.log' file where the ERRORs are visible? > So we are at bleeding edge gcc from today > 2023-05-24 ec2e86274427 Fortran: reject bad DIM argument of SIZE > intrinsic in simplification [PR104350] > > With an additional fix from Kito along the lines of.. > > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp > b/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp > > dg-init > +torture-init > > # All done. > +torture-finish > dg-finish That shouldn't be necessary here? > I'm pasting a snippet of gcc.log. Issue is indeed triggered by rvv.exp > which needs some love. I'd intentionally asked to "see a complete 'gcc.log' file where the ERRORs are visible". On 2023-05-24T16:12:20-0700, Vineet Gupta <vineetg@rivosinc.com> wrote: > On 5/24/23 15:13, Vineet Gupta wrote: >> >> PASS: gcc.target/riscv/zmmul-2.c -O2 -flto -fuse-linker-plugin >> -fno-fat-lto-objects (test for excess errors) >> PASS: gcc.target/riscv/zmmul-2.c -O2 -flto -fuse-linker-plugin >> -fno-fat-lto-objects scan-assembler-times mul\t 1 >> PASS: gcc.target/riscv/zmmul-2.c -O2 -flto -fuse-linker-plugin >> -fno-fat-lto-objects scan-assembler-not div\t >> PASS: gcc.target/riscv/zmmul-2.c -O2 -flto -fuse-linker-plugin >> -fno-fat-lto-objects scan-assembler-not rem\t >> testcase >> /scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/riscv/riscv.exp >> completed in 60 seconds >> Running >> /scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp >> ... >> ERROR: tcl error sourcing >> /scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp. >> ERROR: tcl error code NONE >> ERROR: torture-init: torture_without_loops is not empty as expected I'd seen this before, in your earlier emails. > Never mind. Looks like I found the issue - with just trial and error and > no idea of how this stuff works. Instead of "magic", let's please try to properly work this out. > The torture-{init,finish} needs to be in riscv.exp not rvv.exp > Running full tests now. I still don't understand this. My current theory would be that some other '*.exp' file runs 'torture-init' and then prematurely ends without 'torture-finish', and thus the torture testing state bleeds into the next '*.exp' file(s). I'd hoped that I could pinpoint that via "a complete 'gcc.log' file where the ERRORs are visible". Grüße Thomas
On 5/25/23 13:26, Thomas Schwinge wrote: >> I'm pasting a snippet of gcc.log. Issue is indeed triggered by rvv.exp >> which needs some love. > I'd intentionally asked to "see a complete 'gcc.log' file where the > ERRORs are visible". The full log files are humongous - even xz compressed is ~ 7 MB - how can I share that w/o the list dropping it. I guess I can try emailing it you directly on work email - if that's OK. >> The torture-{init,finish} needs to be in riscv.exp not rvv.exp >> Running full tests now. > I still don't understand this. > > My current theory would be that some other '*.exp' file runs > 'torture-init' and then prematurely ends without 'torture-finish', and > thus the torture testing state bleeds into the next '*.exp' file(s). I'd > hoped that I could pinpoint that via "a complete 'gcc.log' file where the > ERRORs are visible". Seems likely. So back to good old printf style debugging: I added dumping of the dup options to see what exactly was leaking. setup #1 - riscv.exp: Added torture-init/finish - Deleted rvv.exp (to isolate the problem) Leaking toggles are from torture-options.exp where the debug prints themselves are added. A trimmed version of gcc.log is at [1] --->8----- Running /scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/pru/pru.exp ... testcase /scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/pru/pru.exp completed in 0 seconds Running /scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/riscv/riscv.exp ... ERROR: tcl error sourcing /scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/riscv/riscv.exp. ERROR: tcl error code NONE ERROR: torture-init: LTO_TORTURE_OPTIONS is not empty as expected = "{ -O2 -flto -fno-use-linker-plugin -flto-partition=none } { -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects }" while executing "error "torture-init: LTO_TORTURE_OPTIONS is not empty as expected = \"${LTO_TORTURE_OPTIONS}\""" invoked from within "if [info exists LTO_TORTURE_OPTIONS] { error "torture-init: LTO_TORTURE_OPTIONS is not empty as expected = \"${LTO_TORTURE_OPTIONS}\"" }" (procedure "torture-init" line 12) invoked from within "torture-init" (file "/scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/riscv/riscv.exp" line 44) invoked from within "source /scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/riscv/riscv.exp" ("uplevel" body line 1) invoked from within "uplevel #0 source /scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/riscv/riscv.exp" invoked from within "catch "uplevel #0 source $test_file_name" msg" UNRESOLVED: testcase '/scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/riscv/riscv.exp' aborted due to Tcl error testcase /scratch/vineetg/gnu/toolchain-upstream/gcc/gcc/testsuite/gcc.target/riscv/riscv.exp completed in 0 seconds --->8--- Setup #2 - riscv.exp: Added torture-init/finish - riscv.exp: commented away ADDITIONAL_TORTURE_OPTIONS line - rvv.exp remains, unchanged This has more errors since I'm actually running all multilib variants. --->8--- testcase /scratch/vineetg/gnu/toolchain-upstream2/gcc/gcc/testsuite/gcc.target/riscv/riscv.exp completed in 0 seconds Running /scratch/vineetg/gnu/toolchain-upstream2/gcc/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp ... ERROR: tcl error sourcing /scratch/vineetg/gnu/toolchain-upstream2/gcc/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp. ERROR: tcl error code NONE ERROR: torture-init: LTO_TORTURE_OPTIONS is not empty as expected = "{ -O2 -flto -fno-use-linker-plugin -flto-partition=none } { -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects }" while executing "error "torture-init: LTO_TORTURE_OPTIONS is not empty as expected = \"${LTO_TORTURE_OPTIONS}\""" invoked from within "if [info exists LTO_TORTURE_OPTIONS] { error "torture-init: LTO_TORTURE_OPTIONS is not empty as expected = \"${LTO_TORTURE_OPTIONS}\"" }" (procedure "torture-init" line 12) invoked from within "torture-init" (file "/scratch/vineetg/gnu/toolchain-upstream2/gcc/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp" line 42) invoked from within "source /scratch/vineetg/gnu/toolchain-upstream2/gcc/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp" ("uplevel" body line 1) invoked from within "uplevel #0 source /scratch/vineetg/gnu/toolchain-upstream2/gcc/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp" invoked from within "catch "uplevel #0 source $test_file_name" msg" UNRESOLVED: testcase '/scratch/vineetg/gnu/toolchain-upstream2/gcc/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp' aborted due to Tcl error ... Running /scratch/vineetg/gnu/toolchain-upstream2/gcc/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp ... ERROR: tcl error sourcing /scratch/vineetg/gnu/toolchain-upstream2/gcc/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp. ERROR: tcl error code NONE ERROR: torture-init: torture_without_loops is not empty as expected = "{ -O0 } { -O1 } { -O2 } { -O3 -g } { -Os } { -O2 -flto -fno-use-linker-plugin -flto-partition=none } { -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects }" while executing "error "torture-init: torture_without_loops is not empty as expected = \"${torture_without_loops}\""" invoked from within "if [info exists torture_without_loops] { error "torture-init: torture_without_loops is not empty as expected = \"${torture_without_loops}\"" }" (procedure "torture-init" line 4) invoked from within "torture-init" (file "/scratch/vineetg/gnu/toolchain-upstream2/gcc/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp" line 37) invoked from within "source /scratch/vineetg/gnu/toolchain-upstream2/gcc/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp" ("uplevel" body line 1) invoked from within "uplevel #0 source /scratch/vineetg/gnu/toolchain-upstream2/gcc/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp" invoked from within "catch "uplevel #0 source $test_file_name" msg" UNRESOLVED: testcase '/scratch/vineetg/gnu/toolchain-upstream2/gcc/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp' aborted due to Tcl error ... --->8--- [1] https://paste.debian.net/1281237/ # this is redacted as this paste bin can
On 5/26/23 16:38, Vineet Gupta wrote: > > > On 5/25/23 13:26, Thomas Schwinge wrote: > >>> I'm pasting a snippet of gcc.log. Issue is indeed triggered by rvv.exp >>> which needs some love. >> I'd intentionally asked to "see a complete 'gcc.log' file where the >> ERRORs are visible". > > The full log files are humongous - even xz compressed is ~ 7 MB - how > can I share that w/o the list dropping it. > I guess I can try emailing it you directly on work email - if that's OK. > >>> The torture-{init,finish} needs to be in riscv.exp not rvv.exp >>> Running full tests now. >> I still don't understand this. >> >> My current theory would be that some other '*.exp' file runs >> 'torture-init' and then prematurely ends without 'torture-finish', and >> thus the torture testing state bleeds into the next '*.exp' file(s). >> I'd >> hoped that I could pinpoint that via "a complete 'gcc.log' file where >> the >> ERRORs are visible". > > Seems likely. So back to good old printf style debugging: I added > dumping of the dup options to see what exactly was leaking. > > setup #1 > - riscv.exp: Added torture-init/finish > - Deleted rvv.exp (to isolate the problem) > > ... > > Setup #2 > - riscv.exp: Added torture-init/finish > - riscv.exp: commented away ADDITIONAL_TORTURE_OPTIONS line > - rvv.exp remains, unchanged > > ... In the 3rd setup, I've removed riscv.exp and rvv.exp and running the testsuite: errors still show. So we are iterating over multilib combinations. Things are fine for the first one. The initial flags comprise of DG_TORTURE_OPTIONS from gcc-dg.exp (-O0, -O1 ....) However when the 2nd multilib runs, it seems the old ones are not getting cleared, hence the splat. --->8--- === gcc tests === Schedule of variations: riscv-sim/-march=rv32imac/-mabi=ilp32/-mcmodel=medlow riscv-sim/-march=rv32imafdc/-mabi=ilp32d/-mcmodel=medlow riscv-sim/-march=rv64imac/-mabi=lp64/-mcmodel=medlow riscv-sim/-march=rv64imafdc/-mabi=lp64d/-mcmodel=medlow Running target riscv-sim/-march=rv32imac/-mabi=ilp32/-mcmodel=medlow Using /scratch/vineetg/gnu/INSTALL/tc-up-230524-273895500425/share/dejagnu/baseboards/riscv-sim.exp as board description file for target. Using /scratch/vineetg/gnu/INSTALL/tc-up-230524-273895500425/share/dejagnu/config/sim.exp as generic interface file for target. Using /scratch/vineetg/gnu/INSTALL/tc-up-230524-273895500425/share/dejagnu/baseboards/basic-sim.exp as board description file for target. Using /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/config/default.exp as tool-and-target-specific interface file. Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.c-torture/compile/compile.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.c-torture/execute/execute.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.c-torture/execute/ieee/ieee.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.c-torture/unsorted/unsorted.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/analyzer/analyzer.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/analyzer/torture/analyzer-torture.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/asan/asan.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/atomic/atomic.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/autopar/autopar.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/charset/charset.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/compat/compat.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/compat/struct-layout-1.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/cpp/cpp.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/cpp/trad/trad.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/debug/btf/btf.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/debug/ctf/ctf.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/debug/debug.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/dfp/dfp.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/dg.exp ... XPASS: gcc.dg/attr-alloc_size-11.c missing range info for signed char (test for warnings, line 50) XPASS: gcc.dg/attr-alloc_size-11.c missing range info for short (test for warnings, line 51) XPASS: gcc.dg/uninit-pr101912.c pr101912 (test for bogus messages, line 14) FAIL: c-c++-common/spec-barrier-1.c -Wc++-compat (test for excess errors) Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/fixed-point/fixed-point.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/format/format.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/goacc-gomp/goacc-gomp.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/goacc/goacc.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/gomp/gomp.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/graphite/graphite.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/guality/guality.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/hwasan/hwasan.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/ipa/ipa.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/lto/lto.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/noncompile/noncompile.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/params/params.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/pch/pch.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/plugin/plugin.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/rtl/rtl.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/sancov/sancov.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/simulate-thread/simulate-thread.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/special/mips-abi.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/special/special.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/sso/sso.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/tls/tls.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/tm/tm.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/torture/stackalign/stackalign.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/torture/tls/tls.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/tree-prof/tree-prof.exp ... FAIL: gcc.dg/tree-prof/time-profiler-2.c scan-ipa-dump-times profile "Read tp_first_run: 0" 2 FAIL: gcc.dg/tree-prof/time-profiler-2.c scan-ipa-dump-times profile "Read tp_first_run: 2" 1 FAIL: gcc.dg/tree-prof/time-profiler-2.c scan-ipa-dump-times profile "Read tp_first_run: 3" 1 Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/tree-ssa/tree-ssa.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/tsan/tsan.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/ubsan/ubsan.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/vect/complex/complex.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/vect/costmodel/i386/i386-costmodel-vect.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/vect/costmodel/ppc/ppc-costmodel-vect.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/vect/costmodel/x86_64/x86_64-costmodel-vect.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/vect/vect.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/vmx/vmx.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/vxworks/vxworks.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg/weak/weak.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.dg-selftests/dg-final.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.misc-tests/acker1.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.misc-tests/arm-isr.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.misc-tests/bprob.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.misc-tests/dectest.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.misc-tests/dhry.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.misc-tests/gcov.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.misc-tests/godump.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.misc-tests/help.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.misc-tests/i386-prefetch.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.misc-tests/linkage.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.misc-tests/matrix1.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.misc-tests/mg-2.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.misc-tests/mg.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.misc-tests/options.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.misc-tests/output.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.misc-tests/outputs.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.misc-tests/sieve.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.misc-tests/sort2.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.src/maintainers.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/aarch64/aapcs64/aapcs64.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/aarch64/aarch64.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/aarch64/acle/acle.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/advsimd-intrinsics.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/aarch64/cpunative/aarch64-cpunative.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/aarch64/fp16/fp16.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/aarch64/simd/simd.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-mitigation.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/aarch64/sve/aarch64-sve.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/aarch64/sve/acle/aarch64-sve-acle-asm.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/aarch64/sve/acle/aarch64-sve-acle.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/aarch64/sve/pcs/aarch64-sve-pcs.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/aarch64/sve2/aarch64-sve2.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/aarch64/sve2/acle/aarch64-sve2-acle-asm.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/aarch64/sve2/acle/aarch64-sve2-acle.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/aarch64/torture/aarch64-torture.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/alpha/alpha.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/arc/arc.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/arm/aapcs/aapcs.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/arm/acle/acle.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/arm/arm.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/arm/cmse/cmse.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/arm/lto/lto.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/arm/multilib.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/arm/mve/mve.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/arm/pure-code/pure-code.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/arm/simd/simd.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/avr/avr.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/avr/mmcu/avr-mmcu.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/avr/torture/avr-torture.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/bfin/bfin.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/bfin/builtins/bfin-builtins.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/bpf/bpf.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/cris/cris.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/cris/torture/cris-torture.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/csky/csky.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/csky/fpuv3/fpuv3.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/epiphany/epiphany.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/frv/frv.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/gcn/gcn.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/h8300/h8300.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/hppa/hppa.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/i386/i386.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/i386/iamcu/abi-iamcu.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/i386/math-torture/math-torture.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/i386/stackalign/stackalign.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/ia64/ia64.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/loongarch/loongarch.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/m68k/m68k.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/microblaze/microblaze.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/mips/inter/mips16-inter.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/mips/mips-nonpic/mips-nonpic.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/mips/mips.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/msp430/msp430.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/nds32/nds32.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/nios2/nios2.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/nvptx/nvptx.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/or1k/or1k.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/pdp11/pdp11.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/powerpc/bfp/bfp.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/powerpc/dfp/dfp.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/powerpc/powerpc.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/powerpc/ppc-fortran/ppc-fortran.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/powerpc/vsu/vsu.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/pru/pru.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/rl78/rl78.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/rx/rx.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/s390/s390.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/sh/sh.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/sh/torture/sh-torture.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/sparc/sparc.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/tic6x/builtins/c6x-builtins.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/tic6x/tic6x.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/v850/v850.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/vax/vax.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/visium/visium.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/x86_64/abi/abi-x86_64.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/x86_64/abi/avx/abi-avx.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/x86_64/abi/avx512f/abi-avx512f.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/abi-avx512fp16-xmm.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m256h/abi-avx512fp16-ymm.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/m512h/abi-avx512fp16-zmm.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/x86_64/abi/bf16/abi-bf16.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/x86_64/abi/bf16/m256bf16/abi-bf16-ymm.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/x86_64/abi/bf16/m512bf16/abi-bf16-zmm.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/x86_64/abi/callabi/callabi.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/ms-sysv.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/xstormy16/xstormy16.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.target/xtensa/xtensa.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.test-framework/test-framework.exp ... skipping test framework tests, CHECK_TEST_FRAMEWORK is not defined === gcc Summary for riscv-sim/-march=rv32imac/-mabi=ilp32/-mcmodel=medlow === # of expected passes 136964 # of unexpected failures 4 # of unexpected successes 3 # of expected failures 1072 # of unsupported tests 3052 Running target riscv-sim/-march=rv32imafdc/-mabi=ilp32d/-mcmodel=medlow Using /scratch/vineetg/gnu/INSTALL/tc-up-230524-273895500425/share/dejagnu/baseboards/riscv-sim.exp as board description file for target. Using /scratch/vineetg/gnu/INSTALL/tc-up-230524-273895500425/share/dejagnu/config/sim.exp as generic interface file for target. Using /scratch/vineetg/gnu/INSTALL/tc-up-230524-273895500425/share/dejagnu/baseboards/basic-sim.exp as board description file for target. Using /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/config/default.exp as tool-and-target-specific interface file. Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.c-torture/compile/compile.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp ... ERROR: tcl error sourcing /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp. ERROR: tcl error code NONE ERROR: torture-init: torture_without_loops is not empty as expected = "{ -O0 } { -O1 } { -O2 } { -O3 -g } { -Os } { -O2 -flto -fno-use-linker-plugin -flto-partition=none } { -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects }" while executing "error "torture-init: torture_without_loops is not empty as expected = \"${torture_without_loops}\""" invoked from within "if [info exists torture_without_loops] { error "torture-init: torture_without_loops is not empty as expected = \"${torture_without_loops}\"" }" (procedure "torture-init" line 4) invoked from within "torture-init" (file "/scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp" line 37) invoked from within "source /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp" ("uplevel" body line 1) invoked from within "uplevel #0 source /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp" invoked from within "catch "uplevel #0 source $test_file_name" msg" Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.c-torture/execute/execute.exp ... Running /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.c-torture/execute/ieee/ieee.exp ... ERROR: tcl error sourcing /scratch/vineetg/gnu/toolchain-upstream-pristine/gcc/gcc/testsuite/gcc.c-torture/execute/ieee/ieee.exp. ERROR: tcl error code NONE ERROR: torture-init: torture_without_loops is not empty as expected = "{ -O0 } { -O1 } { -O2 } { -O3 -g } { -Os } { -O2 -flto -fno-use-linker-plugin -flto-partition=none } { -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects }" while executing
On 5/30/23 11:43, Vineet Gupta wrote: > On 5/26/23 16:38, Vineet Gupta wrote: >> >> >> On 5/25/23 13:26, Thomas Schwinge wrote: >> >>>> I'm pasting a snippet of gcc.log. Issue is indeed triggered by rvv.exp >>>> which needs some love. >>> I'd intentionally asked to "see a complete 'gcc.log' file where the >>> ERRORs are visible". >> >> The full log files are humongous - even xz compressed is ~ 7 MB - how >> can I share that w/o the list dropping it. >> I guess I can try emailing it you directly on work email - if that's OK. >> >>>> The torture-{init,finish} needs to be in riscv.exp not rvv.exp >>>> Running full tests now. >>> I still don't understand this. >>> >>> My current theory would be that some other '*.exp' file runs >>> 'torture-init' and then prematurely ends without 'torture-finish', and >>> thus the torture testing state bleeds into the next '*.exp' >>> file(s). I'd >>> hoped that I could pinpoint that via "a complete 'gcc.log' file >>> where the >>> ERRORs are visible". >> >> Seems likely. So back to good old printf style debugging: I added >> dumping of the dup options to see what exactly was leaking. >> >> setup #1 >> - riscv.exp: Added torture-init/finish >> - Deleted rvv.exp (to isolate the problem) >> >> ... >> >> Setup #2 >> - riscv.exp: Added torture-init/finish >> - riscv.exp: commented away ADDITIONAL_TORTURE_OPTIONS line >> - rvv.exp remains, unchanged >> >> ... > > In the 3rd setup, I've removed riscv.exp and rvv.exp and running the > testsuite: errors still show. > > So we are iterating over multilib combinations. > Things are fine for the first one. The initial flags comprise of > DG_TORTURE_OPTIONS from gcc-dg.exp (-O0, -O1 ....) > However when the 2nd multilib runs, it seems the old ones are not > getting cleared, hence the splat. I've posted the fix [1] . printf/send_user() to the rescue ! @Thomas I fat fingered the send and missed CC'ing you on the patches. Thx, -Vineet [1] https://gcc.gnu.org/pipermail/gcc-patches/2023-May/620263.html
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp b/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp index bc99cc0c3cf4..19179564361a 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp +++ b/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp @@ -39,6 +39,7 @@ if [istarget riscv32-*-*] then { # Initialize `dg'. dg-init +torture-init # Main loop. set CFLAGS "$DEFAULT_CFLAGS -march=$gcc_march -mabi=$gcc_mabi -O3" @@ -69,5 +70,7 @@ foreach op $AUTOVEC_TEST_OPTS { dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/autovec/vls-vlmax/*.\[cS\]]] \ "-std=c99 -O3 -ftree-vectorize --param riscv-autovec-preference=fixed-vlmax" $CFLAGS +torture-finish + # All done. dg-finish