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