review (XS) for 6938026: C2 compiler fails in Node::rematerialize()const
Christian Thalinger
Christian.Thalinger at Sun.COM
Tue Apr 13 00:07:20 PDT 2010
On Mon, 2010-04-12 at 13:46 -0700, Tom Rodriguez wrote:
> http://cr.openjdk.java.net/~never/6938026/
>
> 6938026: C2 compiler fails in Node::rematerialize()const
> Reviewed-by:
>
> This appears to be a long standing issue with OSR entry points. If
> ciTypeFlow proves that some local is null at the OSR entry it reports
> TypePtr::NULL_PTR as its type. Type::basic_type report T_ADDRESS for
> NULL_PTR so fetch_interpreter_stacke thinks this local is a jsr/ret
> address and emits a load that is typed as TypeRawPtr::BOTTOM but the
> bytecodes think this is an oop of some kind. Once this gets into the
> graph it can cause the graph to collapse in funny ways, in this case
> it allowed top into the final graph which causes us to die during
> register allocation. The bug is triggered because the use of an agent
> in the program keeps more of the locals alive. Without the use of the
> agent this local would be dead in the case where it went wrong and
> nothing would have happened. As far as I can tell this has always
> been an issue but it took the right bytecodes to expose it. I was
> unable to build a test case to expose the problem though asserts that
> checked for NULL_PTR in OSR entry points found it to be pretty common.
>
> src/share/vm/opto/parse1.cpp
Looks good. -- Christian
More information about the hotspot-compiler-dev
mailing list