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