Mercurial > hg > truffle
comparison src/share/vm/memory/cardTableRS.hpp @ 3287:c48ad6ab8bdf
7037276: Unnecessary double traversal of dirty card windows
Summary: Short-circuited an unnecessary double traversal of dirty card windows when iterating younger refs. Also renamed some cardtable methods for more clarity.
Reviewed-by: jmasa, stefank, poonam
author | ysr |
---|---|
date | Wed, 20 Apr 2011 19:19:30 -0700 |
parents | f95d63e2154a |
children | fc2b798ab316 |
comparison
equal
deleted
inserted
replaced
3285:49a67202bc67 | 3287:c48ad6ab8bdf |
---|---|
1 /* | 1 /* |
2 * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. | 2 * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * | 4 * |
5 * This code is free software; you can redistribute it and/or modify it | 5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as | 6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
164 return cv == CardTableRS::cur_youngergen_and_prev_nonclean_card; | 164 return cv == CardTableRS::cur_youngergen_and_prev_nonclean_card; |
165 } | 165 } |
166 | 166 |
167 }; | 167 }; |
168 | 168 |
169 class ClearNoncleanCardWrapper: public MemRegionClosure { | |
170 MemRegionClosure* _dirty_card_closure; | |
171 CardTableRS* _ct; | |
172 bool _is_par; | |
173 private: | |
174 // Clears the given card, return true if the corresponding card should be | |
175 // processed. | |
176 inline bool clear_card(jbyte* entry); | |
177 // Work methods called by the clear_card() | |
178 inline bool clear_card_serial(jbyte* entry); | |
179 inline bool clear_card_parallel(jbyte* entry); | |
180 | |
181 public: | |
182 ClearNoncleanCardWrapper(MemRegionClosure* dirty_card_closure, CardTableRS* ct); | |
183 void do_MemRegion(MemRegion mr); | |
184 }; | |
185 | |
169 #endif // SHARE_VM_MEMORY_CARDTABLERS_HPP | 186 #endif // SHARE_VM_MEMORY_CARDTABLERS_HPP |