[Bug c++/108162] New: Missed optimization opportunity. Complex function that starts with if (param == 0) return 0;
levo.delellis at gmail dot com
gcc-bugzilla@gcc.gnu.org
Sat Dec 17 23:01:49 GMT 2022
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108162
Bug ID: 108162
Summary: Missed optimization opportunity. Complex function that
starts with if (param == 0) return 0;
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: levo.delellis at gmail dot com
Target Milestone: ---
I had a lot of fun writing https://bolinlang.com/does-it-inline
I was intentionally trying to break the optimizer. I found a few cases in clang
and two cases I don't think should apply but I think both can gain from the
last one. Skipping a function call when the function starts with `if (param ==
0) return 0;`. I tested with a recursive fibonacci. If you scroll to the very
bottom you'll see it.
Cases that clang optimizes but gcc did not A) Round 3 a and b. I don't think
locale will affect it and clang optimizes it. All of round 4 clang optimizes. I
suspect there's something getting in the way of peeking through push and size.
I vaguely remember thinking std::forward may get in the way in the past but it
was long enough ago that I don't remember what I was doing to think that
More information about the Gcc-bugs
mailing list