JDK-8005439 : no message about inline method if it specifed by CompileCommand
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 8
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2012-12-22
  • Updated: 2013-06-26
  • Resolved: 2013-02-01
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 7 JDK 8 Other
7u40Fixed 8Fixed hs24Fixed
Description
print_linling is not called if method specifed by '-XX:CompileCommand=inline'
so it's difficult to understand that the command works or does not work.

also it would be nice to have a flag in output that indicates that method has been successfully/unsuccessfully inlined.
Comments
Igor, your patch looks good, but it covers only inlining logic in C1 (hint: use -server -XX:-TieredCompilation to ensure you are running C2). Can you check that C2 shouldn't be fixed as well? src/share/vm/opto/bytecodeInfo.cpp: 99 // Allows targeted inlining 100 if(callee_method->should_inline()) { ... 212 if (callee_method->force_inline() || callee_method->should_inline()) { 213 // ignore heuristic controls on inlining 214 return NULL; 215 } After that I'll sponsor your change.
22-12-2012

output that illustrates problem: $ java -server -Xcomp -XX:+UnlockDiagnosticVMOptions -XX:+PrintInlining -version 2> /dev/null | grep length @ 8 java.lang.String::length (6 bytes) @ 8 java.lang.String::length (6 bytes) inline (hot) @ 1 java.lang.String::length (6 bytes) @ 1 java.lang.String::length (6 bytes) @ 1 java.lang.String::length (6 bytes) inline (hot) @ 12 java.lang.String::length (6 bytes) @ 12 java.lang.String::length (6 bytes) inline (hot) @ 4 java.lang.String::length (6 bytes) @ 257 java.nio.charset.CoderResult::length (20 bytes) @ 257 java.nio.charset.CoderResult::length (20 bytes) failed initial checks @ 4 java.lang.String::length (6 bytes) @ 4 java.lang.String::length (6 bytes) @ 4 java.lang.String::length (6 bytes) $ java -server -Xcomp -XX:CompileCommand='inline *::length' -XX:+UnlockDiagnosticVMOptions -XX:+PrintInlining -version 2> /dev/null | grep length CompilerOracle: inline *.length @ 8 java.lang.String::length (6 bytes) inline (hot) @ 1 java.lang.String::length (6 bytes) inline (hot) @ 12 java.lang.String::length (6 bytes) inline (hot) @ 257 java.nio.charset.CoderResult::length (20 bytes) failed initial checks
22-12-2012

c1_GraphBuilder.diff adds priniting of inlining these methods with 'force inline by CompilerOracle'
22-12-2012