[Bug ipa/80277] New: ipa-icf missing overlooking functions
linux at carewolf dot com
gcc-bugzilla@gcc.gnu.org
Sat Apr 1 11:27:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80277
Bug ID: 80277
Summary: ipa-icf missing overlooking functions
Product: gcc
Version: 7.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: ipa
Assignee: unassigned at gcc dot gnu.org
Reporter: linux at carewolf dot com
Target Milestone: ---
Created attachment 41100
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=41100&action=edit
icf.cc
Several functions that produce identical assembler are not merged by ipa-icf. I
have attached an example, and only the two functions foo0 and foo1 that are
identical in every detail are meged, though all the foo* functions produce
identical assembler.
I theorice it is because the function signature is compared before the content,
and the templates and different types might cause that early comparison to fail
when it shouldn't.
I added a second test that just changed the return value but kept everything
else identical and it also wasn't merged.
A little unrelated: I noted the ipa-icf optimization is undone by -O3 as it
re-inlines, though that is kind of pointless unless it is needed for second
level inlining.
More information about the Gcc-bugs
mailing list