From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 8C4F53858405; Tue, 23 Nov 2021 05:31:22 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8C4F53858405 From: "luoxhu at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug testsuite/103270] [12 regression] gcc.dg/vect/pr96698.c inner loop turned from hot to cold after r12-4526 Date: Tue, 23 Nov 2021 05:31:22 +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: 12.0 X-Bugzilla-Keywords: missed-optimization X-Bugzilla-Severity: normal X-Bugzilla-Who: luoxhu at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: 12.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 X-BeenThere: gcc-bugs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-bugs mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Nov 2021 05:31:22 -0000 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D103270 --- Comment #5 from luoxhu at gcc dot gnu.org --- ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 5 6 11 7 8 10 9 ;; ;; Loop 1 ;; header 8, latch 7 ;; depth 1, outer 0 ;; nodes: 8 7 6 10 5 4 11 3 ;; ;; Loop 2 ;; header 6, latch 5 ;; depth 2, outer 1 ;; nodes: 6 5 4 11 3 ;; ;; Loop 3 ;; header 4, latch 3 ;; depth 3, outer 2 ;; nodes: 4 3 ;; 2 succs { 8 } ;; 3 succs { 4 } ;; 4 succs { 3 5 } ;; 5 succs { 6 } ;; 6 succs { 11 7 } ;; 11 succs { 4 } ;; 7 succs { 8 } ;; 8 succs { 10 9 } ;; 10 succs { 6 } ;; 9 succs { 1 } The CFG is: 2 | 8<---- | \ | 10 9 | | | 6----7 6<---- | |=20 11 |=20 | | 4<- |=20 | \| | 5 3 | | | ------ When iterating loop 3 in predict_extra_loop_exits, exit edge is 4->5, it fi= nds edge 3->4 for statement "if (d_8 =3D=3D 0)", and set all e->src->preds with "predict_paths_leading_to_edge (e1, PRED_LOOP_EXTRA_EXIT, NOT_TAKEN);". (gdb) pbb 3 ;; basic block 3, loop depth 3 ;; pred: 4 _1 =3D *i_19(D); _2 =3D a_4 & c_6; _3 =3D _1 + _2; *i_19(D) =3D _3; ;; succ: 4 (gdb) pbb 4 ;; basic block 4, loop depth 3 ;; pred: 11 ;; 3 # c_6 =3D PHI # d_8 =3D PHI <0(11), 1(3)> if (d_8 =3D=3D 0) goto ; [INV] else goto ; [INV] ;; succ: 3 ;; 5=20 (gdb) p e->src->preds $16 =3D 0x7ffff4fba140 =3D { 3)>}=