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