http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54965
Bug #: 54965 Summary: [4.6] sorry, unimplemented: inlining failed in call to 'foo': function not considered for inlining Classification: Unclassified Product: gcc Version: 4.6.4 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassig...@gcc.gnu.org ReportedBy: siarhei.siamas...@gmail.com Created attachment 28474 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=28474 reduced.i GCC 4.6 fails when compiling current git versions of pixman: https://bugs.freedesktop.org/show_bug.cgi?id=55630 Bisecting shows that this problem started occurring in 4.6 branch after the following commit: http://gcc.gnu.org/git/?p=gcc.git;a=commit;h=3d5f815b529fe4b8b79d4f2a04e6eb670faee04d 3d5f815b529fe4b8b79d4f2a04e6eb670faee04d is the first bad commit commit 3d5f815b529fe4b8b79d4f2a04e6eb670faee04d Author: hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Thu Nov 11 22:08:26 2010 +0000 PR tree-optimize/40436 * gcc.dg/tree-ssa/inline-5.c: New testcase. * gcc.dg/tree-ssa/inline-6.c: New testcase. * ipa-inline.c (likely_eliminated_by_inlining_p): Rename to ... (eliminated_by_inlining_prob): ... this one; return 50% probability for SRA. (estimate_function_body_sizes): Update use of eliminated_by_inlining_prob; estimate static function size for 2 instructions. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166624 138bc75d-0d04-0410-961f-82ee72b054a4 The problem disappears in 4.7 branch after: http://gcc.gnu.org/git/?p=gcc.git;a=commit;h=526b36a8a249c8c8698ca48ffeb8bff552f5a6fd 526b36a8a249c8c8698ca48ffeb8bff552f5a6fd is the first bad commit commit 526b36a8a249c8c8698ca48ffeb8bff552f5a6fd Author: rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Fri Mar 25 11:59:19 2011 +0000 2011-03-25 Richard Guenther <rguent...@suse.de> * passes.c (init_optimization_passes): Add FRE pass after early SRA. * g++.dg/tree-ssa/pr41186.C: Scan the appropriate FRE dump. * g++.dg/tree-ssa/pr8781.C: Likewise. * gcc.dg/ipa/ipa-pta-13.c: Likewise. * gcc.dg/ipa/ipa-pta-3.c: Likewise. * gcc.dg/ipa/ipa-pta-4.c: Likewise. * gcc.dg/tree-ssa/20041122-1.c: Likewise. * gcc.dg/tree-ssa/alias-18.c: Likewise. * gcc.dg/tree-ssa/foldstring-1.c: Likewise. * gcc.dg/tree-ssa/forwprop-10.c: Likewise. * gcc.dg/tree-ssa/forwprop-9.c: Likewise. * gcc.dg/tree-ssa/fre-vce-1.c: Likewise. * gcc.dg/tree-ssa/loadpre6.c: Likewise. * gcc.dg/tree-ssa/pr21574.c: Likewise. * gcc.dg/tree-ssa/ssa-dom-cse-1.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-1.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-11.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-12.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-13.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-14.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-15.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-16.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-17.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-18.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-19.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-2.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-21.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-22.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-23.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-24.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-25.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-26.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-27.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-3.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-4.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-5.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-6.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-7.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-8.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-9.c: Likewise. * gcc.dg/tree-ssa/ssa-pre-10.c: Likewise. * gcc.dg/tree-ssa/ssa-pre-26.c: Likewise. * gcc.dg/tree-ssa/ssa-pre-7.c: Likewise. * gcc.dg/tree-ssa/ssa-pre-8.c: Likewise. * gcc.dg/tree-ssa/ssa-pre-9.c: Likewise. * gcc.dg/tree-ssa/ssa-sccvn-1.c: Likewise. * gcc.dg/tree-ssa/ssa-sccvn-2.c: Likewise. * gcc.dg/tree-ssa/ssa-sccvn-3.c: Likewise. * gcc.dg/tree-ssa/ssa-sccvn-4.c: Likewise. * gcc.dg/tree-ssa/struct-aliasing-1.c: Likewise. * gcc.dg/tree-ssa/struct-aliasing-2.c: Likewise. * c-c++-common/pr46562-2.c: Likewise. * gfortran.dg/pr42108.f90: Likewise. * gcc.dg/torture/pta-structcopy-1.c: Scan ealias dump, force foo to be inlined even at -O1. * gcc.dg/tree-ssa/ssa-dce-4.c: Disable FRE. * gcc.dg/ipa/ipa-pta-14.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-1.c: Adjust. * gcc.dg/matrix/matrix.exp: Disable FRE. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171450 138bc75d-0d04-0410-961f-82ee72b054a4 Reducing the testcase does not seem to be an easy task. The smallest that I could get is the attached 'reduced.i' file. It triggers something that looks like a sibling '--param large-function-growth limit reached' problem: $ gcc-4.6.4-20121016 -O1 -c reduced.i reduced.i: In function ‘combine_conjoint_xor_ca_float’: reduced.i:41:50: sorry, unimplemented: inlining failed in call to ‘pd_combine_conjoint_xor’: --param large-function-growth limit reached reduced.i:54:14: sorry, unimplemented: called from here