On Mon, Jan 9, 2012 at 12:07 PM, Jan Hubicka <hubi...@ucw.cz> wrote: >> >> That surely should be MAX_INLINE_INSNS_AUTO instead. At _least_. >> You are triggering very much more inlining during early inlining now - >> I don't see >> where we did this for -Os already as you claim. In fact it is totally >> against the spirit of early inlining now :( > > This is IPA inlining, not early inlining. I just moved the logic from -Os > logic > to include -O2 logic, too.
Ok, I was confused then. But as you re-order the tests this exception will apply always, no? > I added the size check because I was worried of units containing one very > large > function that simplifies quite a lot by inlining (because of the new predicate > code). Because badness function is not really worried about function sizes (it > expects them to be small) and merely accounts relative benefits, we would end > up then inlining this large function quite early in queue preventing other > inlining from happening. > > So it seemed safer to add the size check. Except the degenerate case described > above it should not make much of practical difference. But the size check is inconsistent wrt inline declares, non-inline declared fns should get the _auto limit. >> >> Why does IPA inlining not figure out that inlining the indirect call is good? > > For reasons described in the original mail. We are doing -O2, function is not > declared inline and so far we was inlining only for size at -O2 in that case. > > Honza