ipa/103989 - avoid IPA inlining of small functions with -Og
authorRichard Biener <rguenther@suse.de>
Tue, 18 Jan 2022 12:48:34 +0000 (13:48 +0100)
committerRichard Biener <rguenther@suse.de>
Tue, 18 Jan 2022 14:43:04 +0000 (15:43 +0100)
commitc952126870c92cf293d59ffb1497e402eb8fc269
tree83ef891500bdd07ebeef4f75edc508bd82874ee1
parente89b2a270d31d7298d516ae545e256645992c7b9
ipa/103989 - avoid IPA inlining of small functions with -Og

The following change avoids doing IPA inlining of small functions
into functions compiled with -Og - those functions will see almost no
followup scalar cleanups so that the benefit anticipated by the
inliner will not be realized and instead the late diagnostic code
will be confused by dead code that is left around.

2022-01-18  Richard Biener  <rguenther@suse.de>

PR ipa/103989
* ipa-inline.cc (inline_small_functions): Do not enqueue call
edges originating in functions compiled with -Og.

* g++.dg/opt/pr103989.C: New testcase.
gcc/ipa-inline.cc
gcc/testsuite/g++.dg/opt/pr103989.C [new file with mode: 0644]