[master] RFR: Unconditionally preserve all marks during GC

Roman Kennke rkennke at openjdk.java.net
Wed May 19 16:38:57 UTC 2021

On Wed, 19 May 2021 13:09:33 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:

>> This block concerns about non-forwarded objects because forwarded objects are handled above.
> OK, but I am still confused what `mark_must_be_preserved` case does in the original assert. Faithfully, you would need to replace that case with `true`, and then the whole assert should fold to always passing? Maybe it handles identityHashCode-bearing or displaced-header objects?

Right. Originally, only relatively few headers need to be preserved. Specifically, all headers that are involved in locking or which carry a hash-code. The assert checks that we either have a header that gets preserved, or a default/prototype header. Now that all headers are preserved, the asserts fold-up to be always true and can go away. I'll fix that.


PR: https://git.openjdk.java.net/lilliput/pull/6

More information about the lilliput-dev mailing list