From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id A367C385840A; Fri, 29 Jul 2022 08:19:35 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A367C385840A From: "rguenth at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug tree-optimization/105679] [12/13 Regression] extra -Warray-bounds warning added with -fsanitize=shift due to jump threading Date: Fri, 29 Jul 2022 08:19:35 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: tree-optimization X-Bugzilla-Version: 12.1.1 X-Bugzilla-Keywords: diagnostic X-Bugzilla-Severity: normal X-Bugzilla-Who: rguenth at gcc dot gnu.org X-Bugzilla-Status: ASSIGNED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: rguenth at gcc dot gnu.org X-Bugzilla-Target-Milestone: 12.2 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: everconfirmed cf_reconfirmed_on bug_status assigned_to 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: Fri, 29 Jul 2022 08:19:35 -0000 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D105679 Richard Biener changed: What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Last reconfirmed| |2022-07-29 Status|UNCONFIRMED |ASSIGNED Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot = gnu.org --- Comment #3 from Richard Biener --- Checking profitability of path (backwards): bb:5 (2 insns) bb:4 (7 insns) = bb:3 Control statement insns: 2 Overall: 7 insns [1] Registering jump thread: (3, 4) incoming edge; (4, 5) normal (5, 6) nocopy; path: 3->4->5->6 SUCCESS but from the following you can see BB3 is known to probably never execute. ;; basic block 2, loop depth 0, count 1073741823 (estimated locally), may= be hot ;; prev block 9, next block 3, flags: (NEW, REACHABLE, VISITED) ;; pred: 9 [always] count:1073741823 (estimated locally) (FALLTHRU,EXECUTABLE) if (irq_1(D) > 31) goto ; [0.00%] else goto ; [100.00%] ;; basic block 3, loop depth 0, count 0 (precise), probably never executed ;; prev block 2, next block 4, flags: (NEW, REACHABLE, VISITED) ;; pred: 2 [never] count:0 (precise) (TRUE_VALUE,EXECUTABLE) _2 =3D (unsigned long) irq_1(D); __builtin___ubsan_handle_shift_out_of_bounds (&*.Lubsan_data0, 1, _2); ;; succ: 4 [never] count:0 (precise) (FALLTHRU,EXECUTABLE) ;; basic block 4, loop depth 0, count 1073741823 (estimated locally), may= be hot ;; prev block 3, next block 5, flags: (NEW, REACHABLE, VISITED) ;; pred: 2 [always] count:1073741823 (estimated locally) (FALSE_VALUE,EXECUTABLE) ;; 3 [never] count:0 (precise) (FALLTHRU,EXECUTABLE) _3 =3D 1 << irq_1(D); mask_4 =3D (u32) _3; entry =3D instance_5(D)->array[irq_1(D)]; capture (mask_4); if (level_6(D) !=3D 0) goto ; [34.00%] else goto ; [66.00%] ;; succ: 7 [34.0% (guessed)] count:365072224 (estimated locally) (TRUE_VALUE,EXECUTABLE) ;; 5 [66.0% (guessed)] count:708669599 (estimated locally) (FALSE_VALUE,EXECUTABLE) ;; basic block 5, loop depth 0, count 708669600 (estimated locally), maybe hot ;; prev block 4, next block 6, flags: (NEW, REACHABLE, VISITED) ;; pred: 4 [66.0% (guessed)] count:708669599 (estimated locally) (FALSE_VALUE,EXECUTABLE) if (irq_1(D) =3D=3D 1) goto ; [20.97%] else goto ; [79.03%] ;; succ: 7 [21.0% (guessed)] count:148608017 (estimated locally) (TRUE_VALUE,EXECUTABLE) ;; 6 [79.0% (guessed)] count:560061583 (estimated locally) (FALSE_VALUE,EXECUTABLE)=