Request for reviews (S): 6791852: assert(b->_nodes[insidx] == n,"got insidx set incorrectly")
Paul Hohensee
Paul.Hohensee at Sun.COM
Fri Feb 6 11:03:17 PST 2009
I'd put #ifdef ASSERT around all the code in block.cpp to make sure the
compiler
elides it for product and optimized vms.
The verification code in chaitin.cpp seems pretty similar in a lot of
places. Any way
to factor it?
You might change the code in live.cpp from
if (!check->is_Proj() && !(check->is_Mach() ... ))
to
if (check->is_Proj() || (check->is_Mach() ... ))
I.e., prefer positive rather than negative (use of '!') tests. Easier
on the brain. :)
Paul
Vladimir Kozlov wrote:
> http://cr.openjdk.java.net/~kvn/6791852/webrev.00
>
> Fixed 6791852: assert(b->_nodes[insidx] == n,"got insidx set
> incorrectly")
>
> Problem:
> The code in PhaseChaitin::Split() in the part "Handle Crossing HRP
> Boundry"
> expects that a new MachSpillCopy node is inserted before the current
> node.
> After 6782232 fix it is not true if the current node is CreateEx.
>
> Solution:
> Remove the original fix for 6782232 in PhaseChaitin::insert_proj().
> Move the CreateEx up before each round of IFG construction to produce
> correct interference graph.
> Move verification checks in chaitin after IFG construction.
> Add additional check into PhaseCFG::verify().
> Fix check in PhaseChaitin::verify_base_ptrs().
>
> Reviewed by:
>
> Fix verified (y/n): y, bug's test case
>
> Other testing:
> JPRT, CTW (with -XX:+VerifyRegisterAllocator)
>
More information about the hotspot-compiler-dev
mailing list