C2 estimates of whether a compile has loops by calling has_loops() on the root of the compile but not on any inlinees. This means that inlining something with loops into something without loops might result in loop opts not being run. Sometimes it will be run anyway because we have split_ifs but it certainly should take inlinees into account.
inlining should accumulate the has_loop flag.
date: Tue Mar 18 11:17:37 2008 -0700
6666343: Compile::has_loops not always set correctly
Summary: Compile::has_loops() should be set from inlined methods
Reviewed-by: kvn, rasbold