From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 443043858C78; Tue, 19 Mar 2024 16:28:49 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 443043858C78 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1710865729; bh=UrSqS0FnNmFv4ZYF61vBDxK56eWpPydIa00JJ8b6SUk=; h=From:To:Subject:Date:In-Reply-To:References:From; b=pIr0LA6UfvciMxOIDfQhEcFIrMuKx6vsIJ2FLnMp/g/3yeajpJuwo1b9FY+5vASoD uLFS5Z3SUFRQWY+KvXAtU/koxGO9rVEir4Xo+yk91xIMh0Eev/uu14v2+sjOiDiIaj P1EwSeBOEgBzK/el2E00uifP38nWHtRAdHi0jQkY= From: "jakub at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug testsuite/109596] [14 Regression] Lots of guality testcase fails on x86_64 after r14-162-gcda246f8b421ba Date: Tue, 19 Mar 2024 16:28:48 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: testsuite X-Bugzilla-Version: 14.0 X-Bugzilla-Keywords: testsuite-fail, wrong-debug X-Bugzilla-Severity: normal X-Bugzilla-Who: jakub at gcc dot gnu.org X-Bugzilla-Status: ASSIGNED X-Bugzilla-Resolution: X-Bugzilla-Priority: P1 X-Bugzilla-Assigned-To: hubicka at gcc dot gnu.org X-Bugzilla-Target-Milestone: 14.0 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 List-Id: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D109596 --- Comment #8 from Jakub Jelinek --- Great, --- gcc/tree-ssa-loop-ch.cc.jj 2024-03-19 16:27:35.969474787 +0100 +++ gcc/tree-ssa-loop-ch.cc 2024-03-19 17:12:57.904712489 +0100 @@ -957,7 +957,7 @@ ch_base::copy_headers (function *fun) edge entry =3D loop_preheader_edge (loop); - propagate_threaded_block_debug_into (exit->dest, entry->dest); + propagate_threaded_block_debug_into (nonexit->dest, entry->dest); if (!gimple_duplicate_seme_region (entry, exit, bbs, n_bbs, copied_b= bs, true)) { looks very much promising: -XFAIL: gcc.dg/guality/example.c -O1 -DPREVENT_OPTIMIZATION execution t= est +XPASS: gcc.dg/guality/example.c -O1 -DPREVENT_OPTIMIZATION execution t= est -FAIL: gcc.dg/guality/pr43051-1.c -O1 -DPREVENT_OPTIMIZATION line 34 c = =3D=3D &a[0] +PASS: gcc.dg/guality/pr43051-1.c -O1 -DPREVENT_OPTIMIZATION line 34 c = =3D=3D &a[0] -FAIL: gcc.dg/guality/pr43051-1.c -O1 -DPREVENT_OPTIMIZATION line 39 c = =3D=3D &a[0] +PASS: gcc.dg/guality/pr43051-1.c -O1 -DPREVENT_OPTIMIZATION line 39 c = =3D=3D &a[0] -PASS: gcc.dg/guality/pr43051-1.c -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions -DPREVENT_OPTIMIZATION line 34 c= =3D=3D &a[0] +FAIL: gcc.dg/guality/pr43051-1.c -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions -DPREVENT_OPTIMIZATION line 34 c= =3D=3D &a[0] -PASS: gcc.dg/guality/pr43051-1.c -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions -DPREVENT_OPTIMIZATION line 39 c= =3D=3D &a[0] +FAIL: gcc.dg/guality/pr43051-1.c -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions -DPREVENT_OPTIMIZATION line 39 c= =3D=3D &a[0] -FAIL: gcc.dg/guality/pr54693-2.c -O1 -DPREVENT_OPTIMIZATION line 21 i = =3D=3D v + 1 -UNSUPPORTED: gcc.dg/guality/pr54693-2.c -O1 -DPREVENT_OPTIMIZATION lin= e 21 x =3D=3D 10 - i -UNSUPPORTED: gcc.dg/guality/pr54693-2.c -O1 -DPREVENT_OPTIMIZATION lin= e 21 y =3D=3D 20 - 2 * i -UNSUPPORTED: gcc.dg/guality/pr54693-2.c -O1 -DPREVENT_OPTIMIZATION lin= e 21 z =3D=3D 30 - 3 * i +PASS: gcc.dg/guality/pr54693-2.c -O1 -DPREVENT_OPTIMIZATION line 21 i = =3D=3D v + 1 +PASS: gcc.dg/guality/pr54693-2.c -O1 -DPREVENT_OPTIMIZATION line 21 x = =3D=3D 10 - i +PASS: gcc.dg/guality/pr54693-2.c -O1 -DPREVENT_OPTIMIZATION line 21 y = =3D=3D 20 - 2 * i +PASS: gcc.dg/guality/pr54693-2.c -O1 -DPREVENT_OPTIMIZATION line 21 z = =3D=3D 30 - 3 * i -FAIL: gcc.dg/guality/pr54693-2.c -O2 -DPREVENT_OPTIMIZATION line 21 i = =3D=3D v + 1 -UNSUPPORTED: gcc.dg/guality/pr54693-2.c -O2 -DPREVENT_OPTIMIZATION lin= e 21 x =3D=3D 10 - i -UNSUPPORTED: gcc.dg/guality/pr54693-2.c -O2 -DPREVENT_OPTIMIZATION lin= e 21 y =3D=3D 20 - 2 * i -UNSUPPORTED: gcc.dg/guality/pr54693-2.c -O2 -DPREVENT_OPTIMIZATION lin= e 21 z =3D=3D 30 - 3 * i +PASS: gcc.dg/guality/pr54693-2.c -O2 -DPREVENT_OPTIMIZATION line 21 i = =3D=3D v + 1 +PASS: gcc.dg/guality/pr54693-2.c -O2 -DPREVENT_OPTIMIZATION line 21 x = =3D=3D 10 - i +PASS: gcc.dg/guality/pr54693-2.c -O2 -DPREVENT_OPTIMIZATION line 21 y = =3D=3D 20 - 2 * i +PASS: gcc.dg/guality/pr54693-2.c -O2 -DPREVENT_OPTIMIZATION line 21 z = =3D=3D 30 - 3 * i -FAIL: gcc.dg/guality/pr54693-2.c -O2 -flto -fno-use-linker-plugin -flto-partition=3Dnone -DPREVENT_OPTIMIZATION line 21 i =3D=3D v + 1 -UNSUPPORTED: gcc.dg/guality/pr54693-2.c -O2 -flto -fno-use-linker-plugin -flto-partition=3Dnone -DPREVENT_OPTIMIZATION line 21 x =3D=3D 10 - i -UNSUPPORTED: gcc.dg/guality/pr54693-2.c -O2 -flto -fno-use-linker-plugin -flto-partition=3Dnone -DPREVENT_OPTIMIZATION line 21 y =3D=3D 20 - 2 * i -UNSUPPORTED: gcc.dg/guality/pr54693-2.c -O2 -flto -fno-use-linker-plugin -flto-partition=3Dnone -DPREVENT_OPTIMIZATION line 21 z =3D=3D 30 - 3 * i +PASS: gcc.dg/guality/pr54693-2.c -O2 -flto -fno-use-linker-plugin -flto-partition=3Dnone -DPREVENT_OPTIMIZATION line 21 i =3D=3D v + 1 +PASS: gcc.dg/guality/pr54693-2.c -O2 -flto -fno-use-linker-plugin -flto-partition=3Dnone -DPREVENT_OPTIMIZATION line 21 x =3D=3D 10 - i +PASS: gcc.dg/guality/pr54693-2.c -O2 -flto -fno-use-linker-plugin -flto-partition=3Dnone -DPREVENT_OPTIMIZATION line 21 y =3D=3D 20 - 2 * i +PASS: gcc.dg/guality/pr54693-2.c -O2 -flto -fno-use-linker-plugin -flto-partition=3Dnone -DPREVENT_OPTIMIZATION line 21 z =3D=3D 30 - 3 * i -UNSUPPORTED: gcc.dg/guality/pr54693-2.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects -DPREVENT_OPTIMIZATION line 21 x =3D=3D 10 - i -UNSUPPORTED: gcc.dg/guality/pr54693-2.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects -DPREVENT_OPTIMIZATION line 21 y =3D=3D 20 - 2 * i -UNSUPPORTED: gcc.dg/guality/pr54693-2.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects -DPREVENT_OPTIMIZATION line 21 z =3D=3D 30 - 3 * i +FAIL: gcc.dg/guality/pr54693-2.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects -DPREVENT_OPTIMIZATION line 21 x =3D=3D 10 - i +FAIL: gcc.dg/guality/pr54693-2.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects -DPREVENT_OPTIMIZATION line 21 y =3D=3D 20 - 2 * i +FAIL: gcc.dg/guality/pr54693-2.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects -DPREVENT_OPTIMIZATION line 21 z =3D=3D 30 - 3 * i -FAIL: gcc.dg/guality/pr54693-2.c -O3 -g -DPREVENT_OPTIMIZATION line 21= i =3D=3D v + 1 -UNSUPPORTED: gcc.dg/guality/pr54693-2.c -O3 -g -DPREVENT_OPTIMIZATION = line 21 x =3D=3D 10 - i -UNSUPPORTED: gcc.dg/guality/pr54693-2.c -O3 -g -DPREVENT_OPTIMIZATION = line 21 y =3D=3D 20 - 2 * i -UNSUPPORTED: gcc.dg/guality/pr54693-2.c -O3 -g -DPREVENT_OPTIMIZATION = line 21 z =3D=3D 30 - 3 * i +PASS: gcc.dg/guality/pr54693-2.c -O3 -g -DPREVENT_OPTIMIZATION line 21= i =3D=3D v + 1 +PASS: gcc.dg/guality/pr54693-2.c -O3 -g -DPREVENT_OPTIMIZATION line 21= x =3D=3D 10 - i +PASS: gcc.dg/guality/pr54693-2.c -O3 -g -DPREVENT_OPTIMIZATION line 21= y =3D=3D 20 - 2 * i +PASS: gcc.dg/guality/pr54693-2.c -O3 -g -DPREVENT_OPTIMIZATION line 21= z =3D=3D 30 - 3 * i -FAIL: gcc.dg/guality/pr54693.c -O1 -DPREVENT_OPTIMIZATION line 22 i = =3D=3D c - 48 +PASS: gcc.dg/guality/pr54693.c -O1 -DPREVENT_OPTIMIZATION line 22 i = =3D=3D c - 48 -FAIL: gcc.dg/guality/pr54693.c -O2 -DPREVENT_OPTIMIZATION line 22 i = =3D=3D c - 48 +PASS: gcc.dg/guality/pr54693.c -O2 -DPREVENT_OPTIMIZATION line 22 i = =3D=3D c - 48 -FAIL: gcc.dg/guality/pr54693.c -O2 -flto -fno-use-linker-plugin -flto-partition=3Dnone -DPREVENT_OPTIMIZATION line 22 i =3D=3D c - 48 +PASS: gcc.dg/guality/pr54693.c -O2 -flto -fno-use-linker-plugin -flto-partition=3Dnone -DPREVENT_OPTIMIZATION line 22 i =3D=3D c - 48 -FAIL: gcc.dg/guality/pr54693.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects -DPREVENT_OPTIMIZATION line 22 i =3D=3D c - 48 +PASS: gcc.dg/guality/pr54693.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects -DPREVENT_OPTIMIZATION line 22 i =3D=3D c - 48 -FAIL: gcc.dg/guality/pr54693.c -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions -DPREVENT_OPTIMIZATION line 22 i= =3D=3D c - 48 +PASS: gcc.dg/guality/pr54693.c -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions -DPREVENT_OPTIMIZATION line 22 i= =3D=3D c - 48 -FAIL: gcc.dg/guality/pr54693.c -O3 -g -DPREVENT_OPTIMIZATION line 22 i= =3D=3D c - 48 +PASS: gcc.dg/guality/pr54693.c -O3 -g -DPREVENT_OPTIMIZATION line 22 i= =3D=3D c - 48 -FAIL: gcc.dg/guality/pr54693.c -Os -DPREVENT_OPTIMIZATION line 22 i = =3D=3D c - 48 +PASS: gcc.dg/guality/pr54693.c -Os -DPREVENT_OPTIMIZATION line 22 i = =3D=3D c - 48 -FAIL: gcc.dg/guality/pr89463.c -O1 -DPREVENT_OPTIMIZATION line 23 i + = 1 =3D=3D 7 +PASS: gcc.dg/guality/pr89463.c -O1 -DPREVENT_OPTIMIZATION line 23 i + = 1 =3D=3D 7 -FAIL: gcc.dg/guality/pr90074.c -O1 -DPREVENT_OPTIMIZATION line 28 c + = 1 =3D=3D 2 -FAIL: gcc.dg/guality/pr90074.c -O1 -DPREVENT_OPTIMIZATION line 28 i + = 1 =3D=3D 8 +PASS: gcc.dg/guality/pr90074.c -O1 -DPREVENT_OPTIMIZATION line 28 c + = 1 =3D=3D 2 +PASS: gcc.dg/guality/pr90074.c -O1 -DPREVENT_OPTIMIZATION line 28 i + = 1 =3D=3D 8 -UNSUPPORTED: gcc.dg/guality/pr90131.c -O1 -DPREVENT_OPTIMIZATION line = 31 i + 1 =3D=3D 1 +PASS: gcc.dg/guality/pr90131.c -O1 -DPREVENT_OPTIMIZATION line 31 i + = 1 =3D=3D 1 -FAIL: gcc.dg/guality/pr90716.c -O1 -DPREVENT_OPTIMIZATION line 23 j + = 1 =3D=3D 9 +PASS: gcc.dg/guality/pr90716.c -O1 -DPREVENT_OPTIMIZATION line 23 j + = 1 =3D=3D 9 -FAIL: gcc.dg/guality/pr90716.c -O2 -DPREVENT_OPTIMIZATION line 23 j + = 1 =3D=3D 9 +UNSUPPORTED: gcc.dg/guality/pr90716.c -O2 -DPREVENT_OPTIMIZATION line = 23 j + 1 =3D=3D 9 -FAIL: gcc.dg/guality/pr90716.c -O2 -flto -fno-use-linker-plugin -flto-partition=3Dnone -DPREVENT_OPTIMIZATION line 23 j + 1 =3D=3D 9 +UNSUPPORTED: gcc.dg/guality/pr90716.c -O2 -flto -fno-use-linker-plugin -flto-partition=3Dnone -DPREVENT_OPTIMIZATION line 23 j + 1 =3D=3D 9 -FAIL: gcc.dg/guality/pr90716.c -Os -DPREVENT_OPTIMIZATION line 23 j + = 1 =3D=3D 9 +UNSUPPORTED: gcc.dg/guality/pr90716.c -Os -DPREVENT_OPTIMIZATION line = 23 j + 1 =3D=3D 9 so feels like it mostly gets back to the 13 results. Guess for pr90716.c it would be nice (bet stage1 material) if ldist did bet= ter job with debug stmts when it replaces the whole loop with a function call try to fig= ure out the final value of the SSA_NAMEs used in the debug stmts. It has before ldist: b_7 =3D b_14 + 1; # DEBUG b =3D> b_7 ivtmp_3 =3D ivtmp_1 - 1; if (ivtmp_3 !=3D 0) goto ; [85.71%] else goto ; [14.29%] where the 4->6 edge is the loop exit one, and similarly j_9 =3D j_15 + 1; # DEBUG j =3D> j_9 # DEBUG BEGIN_STMT ivtmp_4 =3D ivtmp_13 - 1; if (ivtmp_4 !=3D 0) goto ; [87.50%] else goto ; [12.50%] before this bb, and ldist clearly needs to figure out how many iterations t= he loop has, so if it added # DEBUG j =3D> 8 # DEBUG b =3D> 7 to start of bb 6 when it kills the loop, that would be great.=