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: unassig...@gcc.gnu.org

        ReportedBy: jamb...@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.

Reply via email to