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