From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 8825E3861800; Mon, 22 Feb 2021 14:16:48 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8825E3861800 From: "tkoenig at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug tree-optimization/99199] New: [9/10/11 Regression] Very large boolean expression leads to quite a few return statements Date: Mon, 22 Feb 2021 14:16:48 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: tree-optimization X-Bugzilla-Version: unknown X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: tkoenig at gcc dot gnu.org X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version bug_status bug_severity priority component assigned_to reporter target_milestone attachments.created Message-ID: 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: Mon, 22 Feb 2021 14:16:48 -0000 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D99199 Bug ID: 99199 Summary: [9/10/11 Regression] Very large boolean expression leads to quite a few return statements Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: tkoenig at gcc dot gnu.org Target Milestone: --- Created attachment 50233 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=3D50233&action=3Dedit C test case The attached test case translated rather strangely with -O3. The instruction sequence is very long, and it generates 42 return instructions, quite a few of them at the end: $ gcc -O3 -S tr.c $ wc -l tr.s 504 tr.s $ grep ret tr.s | wc -l 42 ... L24: movl %r9d, %eax orl %r8d, %eax xorl $1, %eax jmp .L112 .L131: ret .L132: ret .L140: ret .L141: ret .L145: ret .L146: ret .L148: ret .L142: ret .L143: ret .L150: ret .L152: ret .L151: ret .L138: ret .L129: ret .L147: ret .cfi_endproc Seems to have been introduced with gcc 9, gcc 8 is fine.=