Mercurial > hg > graal-compiler
comparison src/share/vm/opto/runtime.hpp @ 1166:7b0e9cba0307
6896647: card marks can be deferred too long
Summary: Deferred card marks are now flushed during the gc prologue. Parallel[Scavege,OldGC] and SerialGC no longer defer card marks generated by COMPILER2 as a result of ReduceInitialCardMarks. For these cases, introduced a diagnostic option to defer the card marks, only for the purposes of testing and diagnostics. CMS and G1 continue to defer card marks. Potential performance concern related to single-threaded flushing of deferred card marks in the gc prologue will be addressed in the future.
Reviewed-by: never, johnc
author | ysr |
---|---|
date | Wed, 13 Jan 2010 15:26:39 -0800 |
parents | 39b01ab7035a |
children | c18cbe5936b8 |
comparison
equal
deleted
inserted
replaced
1165:2dd52dea6d28 | 1166:7b0e9cba0307 |
---|---|
131 static void new_instance_C(klassOopDesc* instance_klass, JavaThread *thread); | 131 static void new_instance_C(klassOopDesc* instance_klass, JavaThread *thread); |
132 | 132 |
133 // Allocate storage for a objArray or typeArray | 133 // Allocate storage for a objArray or typeArray |
134 static void new_array_C(klassOopDesc* array_klass, int len, JavaThread *thread); | 134 static void new_array_C(klassOopDesc* array_klass, int len, JavaThread *thread); |
135 | 135 |
136 // Post-slow-path-allocation step for implementing ReduceInitialCardMarks: | 136 // Post-slow-path-allocation, pre-initializing-stores step for |
137 static void maybe_defer_card_mark(JavaThread* thread); | 137 // implementing ReduceInitialCardMarks |
138 static void new_store_pre_barrier(JavaThread* thread); | |
138 | 139 |
139 // Allocate storage for a multi-dimensional arrays | 140 // Allocate storage for a multi-dimensional arrays |
140 // Note: needs to be fixed for arbitrary number of dimensions | 141 // Note: needs to be fixed for arbitrary number of dimensions |
141 static void multianewarray2_C(klassOopDesc* klass, int len1, int len2, JavaThread *thread); | 142 static void multianewarray2_C(klassOopDesc* klass, int len1, int len2, JavaThread *thread); |
142 static void multianewarray3_C(klassOopDesc* klass, int len1, int len2, int len3, JavaThread *thread); | 143 static void multianewarray3_C(klassOopDesc* klass, int len1, int len2, int len3, JavaThread *thread); |