From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id D8FBA3851C24; Fri, 19 Jun 2020 15:33:48 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D8FBA3851C24 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1592580828; bh=F5OhzI8TErBvCt85Sk6IYnUrqSewybF9Zql4Kgua7lU=; h=From:To:Subject:Date:From; b=ba6K9TgaeIrGzeseUOkGJG9+o+g9+i9Fo5GLFOejo8t0rsMaKDHSwotWQ+43X7IHf 84HSkkSrqblL7OQ01JKjTz6hl9uqVMN0KBzcVUqbidB8eYkVl+5Ngkdj1K1ocYVuKO Rwz6RkRtgzIjPBwgAWBKJ8t+YDXzvI/vAj4M0vNY= From: "gcc at mailinator dot com" To: gcc-bugs@gcc.gnu.org Subject: [Bug tree-optimization/95769] New: Constant expression in inline function not optimized Date: Fri, 19 Jun 2020 15:33: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: 10.1.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: gcc at mailinator dot com 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 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: Fri, 19 Jun 2020 15:33:49 -0000 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D95769 Bug ID: 95769 Summary: Constant expression in inline function not optimized Product: gcc Version: 10.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: gcc at mailinator dot com Target Milestone: --- Godbolt link: https://godbolt.org/z/Kimna8 Code: ``` int constexpr expensive_function(int x){ int result{}; while(x!=3D1){ x=3Dx%2!=3D0 ? x*3+1 : x/2; result++; } return result; } int constexpr other_function(int a, int b){ return a*expensive_function(b); } int f_(int x){ return other_function(x, 1000); } int g(int x){ return x*expensive_function(1000); } ``` The function `g` is optimized so `expensive_function(1000)` is evaluated at compile time. The function `f` isn't.=