RFR(S) 7171824: assert(_offset >= 1) failed: illegal call to offset()

Vladimir Kozlov vladimir.kozlov at oracle.com
Thu Aug 9 13:37:38 PDT 2012


This looks good. Please, coordinate the push with Christian.

Thanks,
Vladimir

Roland Westrelin wrote:
> http://cr.openjdk.java.net/~roland/7171824/webrev.00/
> 
> Global/local value numbering, when it processes a StoreField, must kill
> every matching LoadField that are stored in the value numbering's hash
> table. A matching LoadField loads a field that has the same holder and
> offset (a LoadField is in the hash table only if it has a known offset).
> 
> In this failure, the StoreField is at an unknown offset (-1) but it has
> the same holder as a LoadField. The LoadField and the StoreField are not
> accessed from a class with the same class loader/protection domain. So
> for the LoadField both holder and offset are known while for the
> StoreField the holder is known but the offset is set to -1 because the
> field access is not known to be ok under the protection domain.
> 
> Given the offset of the StoreField is unknown during value numbering,
> all LoadFields with the same holder as the StoreField should be killed.
> 
> Roland.


More information about the hotspot-compiler-dev mailing list