Request for reviews (M): 6973963: SEGV in ciBlock::start_bci() with EA

Vladimir Kozlov vladimir.kozlov at oracle.com
Mon Aug 2 14:57:25 PDT 2010


http://cr.openjdk.java.net/~kvn/6973963/webrev

Fixed 6973963: SEGV in ciBlock::start_bci() with EA

I added stress recompilation during CompileTheWorld and found this case.
It is similar to 6968368. BCEscapeAnalyzer::do_analysis() calls
ciMethod::get_method_blocks() which calls constructor ciMethodBlocks.
This constructor allocates GrowableArray elements on stack (thread
local resource area). As result when the method recompiled without EA
_blocks->_data is NULL.

Solution:
Added stress recompilation during CompileTheWorld: recompile with
subsume_loads = false and do_escape_analysis = false.
Added more checks into ResourceObj and growableArray to verify correctness
of allocation. I have to relax the new assert in GrowableArray when
elements are allocated on arena to allow allocattion of GrowableArray object
as a part of an other object (for example, in ConnectionGraph and SuperWord).

Tested with failed cases, CTW.


More information about the hotspot-compiler-dev mailing list