Request for reviews (S): 6820514: meet not symmetric failure in ctw
Tom Rodriguez
Thomas.Rodriguez at Sun.COM
Mon Mar 23 13:07:57 PDT 2009
There's a nice comment above this code and it would be nice if the
table and code agreed in both order and results.
// Meet unloaded class with java/lang/Object
//
// Meet
// | Unloaded Class
// Object | TOP | AnyNull | Constant | NotNull |
BOTTOM |
//
===================================================================
// TOP
| ..........................Unloaded......................|
// AnyNull | U-AN
|................Unloaded......................|
// Constant | ... O-NN .................................. | O-
BOT |
// NotNull | ... O-NN .................................. | O-
BOT |
// BOTTOM | ........................Object-
BOTTOM ..................|
Your changes appear to make this line:
// AnyNull | U-AN
|................Unloaded......................|
become
// AnyNull |........................... U-
AN ......................|
The -AN part isn't quite true since we're returning the results of
meet_ptr which uses the table below. AnyNull meeting NotNull returns
NotNull. The Constant line in the comments seems to be wrong too.
const TypePtr::PTR TypePtr::ptr_meet[TypePtr::lastPTR]
[TypePtr::lastPTR] = {
// TopPTR, AnyNull, Constant, Null, NotNull,
BotPTR,
{ /* Top */ TopPTR, AnyNull, Constant, Null, NotNull,
BotPTR,},
{ /* AnyNull */ AnyNull, AnyNull, Constant, BotPTR, NotNull,
BotPTR,},
{ /* Constant*/ Constant, Constant, Constant, BotPTR, NotNull,
BotPTR,},
{ /* Null */ Null, BotPTR, BotPTR, Null, BotPTR,
BotPTR,},
{ /* NotNull */ NotNull, NotNull, NotNull, BotPTR, NotNull,
BotPTR,},
{ /* BotPTR */ BotPTR, BotPTR, BotPTR, BotPTR, BotPTR,
BotPTR,}
};
The code itself looks right to me after much rereading of the meet
logic.
tom
On Mar 20, 2009, at 11:31 PM, Vladimir Kozlov wrote:
>
> http://cr.openjdk.java.net/~kvn/6820514/webrev.00
>
> Fixed 6820514: meet not symmetric failure in ctw
>
> Problem:
> Missing instance_id meet for the case j.l.Object:NotNull meets
> unloaded instance klass.
>
> Solution:
> Add missing code.
>
> Reviewed by:
>
> Fix verified (y/n): y, ctw test from bug
>
> Other testing:
> JPRT
>
More information about the hotspot-compiler-dev
mailing list