|
Key
This line was removed.
This word was removed. This word was added.
This line was added.
|
Changes (1)
View page history... |
| h5. C2 Compiler The stores into new objects are not card marked, because they are presumably in the TLAB. For the rare cases where the slow path for TLAB overflow creates a non-TLAB object, the slow path preemptively marks the entire object just before returning down to the compiled code. It is a crucial fact that there is no possible safepoint between this preemptive marking and the compiled block which initializes the object without card marks. |
This optimization is controlled by the option ReduceInitialCardMarks. |
| h5. Unsafe Stores The method Unsafe.putObject can write a reference to an arbitrary place in the heap. Unusually, this is done without knowledge of the object's status as an instance or array. The card mark is done exactly (like an array) if no information is available about the target object. See {{GraphKit::store_oop_to_unknown}}. |