This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug ipa/63533] New: Function splitter causes unnecessary splits
- From: "y.gribov at samsung dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 14 Oct 2014 11:31:38 +0000
- Subject: [Bug ipa/63533] New: Function splitter causes unnecessary splits
- Auto-submitted: auto-generated
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63533
Bug ID: 63533
Summary: Function splitter causes unnecessary splits
Product: gcc
Version: 5.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: ipa
Assignee: unassigned at gcc dot gnu.org
Reporter: y.gribov at samsung dot com
CC: hubicka at gcc dot gnu.org, khlebnikov at openvz dot org,
ryabinin.a.a at gmail dot com
Created attachment 33712
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=33712&action=edit
Short repro
The attached reprocase contains an innocent function which can not ever benefit
from inlining. But fnsplit pass still jumps on it and splits it to two
functions thus hurting performance and code size:
gcc -O2 -fconserve-stack -S repro.i -o-
...g.part.0:
...
g:
...
call g.part.0
This can not be recovered later by inliner because of -fconserve-stack option.
The reprocase is a reduced version of a real-world code (from Linux kernel).