|
Quick Lists
|
|
Bug ID:
|
6805522
|
|
Votes
|
0
|
|
Synopsis
|
Server VM fails with assertion (block1->start() != block2->start(),"successors have unique bcis")
|
|
Category
|
hotspot:compiler2
|
|
Reported Against
|
b06
|
|
Release Fixed
|
hs15(b05),
6u14(b04) (Bug ID:2174685)
, hs14(b13) (Bug ID:2175141)
, 7(b54) (Bug ID:2175662)
|
|
State
|
10-Fix Delivered,
bug
|
|
Priority:
|
2-High
|
|
Related Bugs
|
6384206
|
|
Submit Date
|
13-FEB-2009
|
|
Description
|
Server VM fails with following assertions when running with fastdebug bits:
# Internal Error (/BUILD_AREA/jdk7/hotspot/src/share/vm/opto/parse1.cpp:1179), pid=23361, tid=21
# Error: assert(block1->start() != block2->start(),"successors have unique bcis")
Posted Date : 2009-02-13 19:43:29.0
|
|
Work Around
|
N/A
|
|
Evaluation
|
In current codebase (apparently after some refactoring of ciTypeFlow.*),
cloning of loop head was implemented in ciTypeFlow::clone_loop_head() method,
which does the following transformation:
> _______ ______ _______ ______ _______
> | |----->| | | | | |------>| head's|
> --->| head | | body | is transformed to: --->| head |---->| body | | clone |---->
> |_______|<-----|______| |_______| |______|<------|_______|
> (backedge_copy)
But current implementation of ciTypeFlow::clone_loop_head() can't correctly
transform graphs like this:
> _______ ______
> | |----->| |
> --->| head |<-----| body |
> |_______|<-----|______|
Because only _one_ of body's successors is moved to the cloned block:
> // tail->head becomes tail->clone
> for (SuccIter iter(tail); !iter.done(); iter.next()) {
> if (iter.succ() == head) {
> iter.set_succ(clone);
> break;
> }
> }
Which results in the following graph, where the "body" block breaks the
assertion, having two different successors starting at the same bci (see also
attached typeflow_run_error.log):
> _______ ______ _______
> | |----->| |------>| head |
> --->| head | | body | | clone |----->
> |_______|<-----|______|<------|_______|
> (backedge_copy)
Posted Date : 2009-03-23 20:51:12.0
http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/ebebd376f657
Posted Date : 2009-03-23 23:36:13.0
|
|
Comments
|
PLEASE NOTE: JDK6 is formerly known as Project Mustang
|
|
|
 |