RFR (XS): 8035887: VM crashes trying to force inlining the recursive call

Vladimir Ivanov vladimir.x.ivanov at oracle.com
Thu Feb 27 09:09:30 PST 2014


http://cr.openjdk.java.net/~vlivanov/8035887/webrev.00/
https://bugs.openjdk.java.net/browse/JDK-8035887

4 lines changed: 3 ins; 0 del; 1 mod

C1 overflows the stack when it tries to inline a recursive call of a 
method which is forced for inlining by CompilerOracle.

The problem is that C1 doesn't check inlining depth for methods forced 
for inlining by CompilerOracle.

The fix is to add missing checks. I added 2 checks (total depth and 
recursive depth). The former is to avoid a situation (very unlikely) 
when a long chain of methods, which are forced for inlining, overflows 
compiler stack. The latter is to unify behavior between C1 & C2.

No regression test is added because it can take very long time to 
provoke the crash in some configurations.

Testing: failing test

Best regards,
Vladimir Ivanov


More information about the hotspot-compiler-dev mailing list