review (S) for 7032162: assert(flat != TypePtr::BOTTOM) failed: cannot alias-analyze an untyped ptr

Vladimir Kozlov vladimir.kozlov at oracle.com
Wed Apr 6 13:49:15 PDT 2011


You replaced 'require_constant' with 'true' to the call make_from_constant() so 
I was wondering if it may change behavior. Specifically it may produce NULL now
if oop_constant->can_be_constant() is 'false':

       if (require_constant) {
         if (!o->can_be_constant())  return NULL;

Vladimir

Tom Rodriguez wrote:
> http://cr.openjdk.java.net/~never/7032162
> 
> 7032162: assert(flat != TypePtr::BOTTOM) failed: cannot alias-analyze an untyped ptr
> Reviewed-by:
> 
> This appears to be an existing problem with OptimizeStringConcat where
> missing control can allow some loads to be split up to where their
> base is NULL which causes addresses that can't be analyzed.  The fix
> is to use the appropriate control.  If it's truly unneeded it will be
> optimized away.  The bug was exposed by the String not in perm changes
> because we were no longer treating some constant strings as embeddable
> constants.  This is fixed by handling them specially in push_constant.
> Tested with failing test from report and full CTW with string opts.
> 


More information about the hotspot-compiler-dev mailing list