Code Review for 6659207

Prepared by: Thomas Rodriguez (never) on Tue Mar 18 10:38:38 PDT 2008
Workspace:/net/smite.sfbay/export/ws/hs12
Compare against: /net/jano2.sfbay/export2/hotspot/hg/hotspot-comp.clean
Summary of changes: 42 lines changed: 42 ins; 0 del; 0 mod; 2696 unchg
Patch of changes: 6659207.patch
Author comments:
6659207: access violation in CompilerThread0
Summary: split_thru_phi produces top on a non-dead path
Reviewed-by:

split_thru_phi attempts to push a ConvI2L with a constrained type up
through a phi and ends up replacing the ConvI2L with top. This later
causes the register allocator to crash because there's no valid value.
The underlying problem is that we have ConvI2L that claims to produce
a restricted range of values but there's no dependence on the ConvI2L
showing how it's proven. This means that split_thru_phi can move it a
location where it's not true. This is simply a band aid fix for the
problem which disallows split_thru_phi on ConvI2Ls with a non-bottom
type. There are other band aids in that code to deal with this issue
and a more comprehensive fix for the problem will be done under
6675699.

Bug id: 6659207: access violation in CompilerThread0
Legend: Modified file
Deleted file
New file

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/opto/loopopts.cpp

5 lines changed: 5 ins; 0 del; 0 mod; 2696 unchg

------ ------ ------ ------ --- New Patch Raw test/compiler/6659207/Test.java

37 lines changed: 37 ins; 0 del; 0 mod; 0 unchg

This code review page was prepared using /net/smite.sfbay/never/bin/hgwebrev (vers 23.12-hg-never).