This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/56718] New: Early inlining prevents type based devirtualization
- From: "jamborm at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 25 Mar 2013 10:26:49 +0000
- Subject: [Bug tree-optimization/56718] New: Early inlining prevents type based devirtualization
- Auto-submitted: auto-generated
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56718
Bug #: 56718
Summary: Early inlining prevents type based devirtualization
Classification: Unclassified
Product: gcc
Version: 4.9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: jamborm@gcc.gnu.org
Created attachment 29718
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=29718
Testcase
The attached testcase runs 2.5 times faster (on my x86_64 desktop at
-O3) when early inlining is disabled. The reason is that while
inlining and IPA-CP can work out the type of the object in
checkGetElement and checkSetElement, early inlining cannot and after
it puts the virtual call into the same function with the definition of
the object, there is subsequently no mechanism to do the
devirtualization in such intraprocedural setting.