Created attachment 24208 [details] reduced testcase Compiler output: $ gcc -O -findirect-inlining testcase.c testcase.c:30:1: internal compiler error: in estimate_size_after_inlining, at ipa-inline-analysis.c:1961 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. Tested revisions: r173545 - crash 4.6 r173059 - OK
It was caused by revision 173190: http://gcc.gnu.org/ml/gcc-cvs/2011-04/msg01386.html
Created attachment 24428 [details] Pack I am testing The problem is that the code assumes transitivity in edge predicates, while this is broken by bug in remap_edge_predicates. When inlining function F that has predicate P and F contains edge with no predicates, the edge should be remapped to have predicate P. Regtesting/bootstrapping the patch and will commit it if it passes.
Author: hubicka Date: Sat Jun 4 14:24:20 2011 New Revision: 174638 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=174638 Log: PR tree-optimize/48929 * gcc.c-torture/compile/pr48929.c: New testcase. * ipa-inline-analysis.c (remap_edge_predicates): Fix handling of empty predicate. Added: trunk/gcc/testsuite/gcc.c-torture/compile/pr48929.c Modified: trunk/gcc/ChangeLog trunk/gcc/ipa-inline-analysis.c trunk/gcc/testsuite/ChangeLog
Fixed.