Mercurial > hg > graal-compiler
comparison src/share/vm/memory/freeList.cpp @ 17753:191174b49bec
8035406: Improve data structure for Code Cache remembered sets
Summary: Change the code cache remembered sets data structure from a GrowableArray to a chunked list of nmethods. This makes the data structure more amenable to parallelization, and decreases freeing time.
Reviewed-by: mgerdin, brutisso
author | tschatzl |
---|---|
date | Mon, 24 Mar 2014 15:30:14 +0100 |
parents | 55fb97c4c58d |
children | 52b4284cb496 7baf47cb97cb |
comparison
equal
deleted
inserted
replaced
17750:f53edbc2b728 | 17753:191174b49bec |
---|---|
1 /* | 1 /* |
2 * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved. | 2 * Copyright (c) 2001, 2014, 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. |
32 #include "runtime/vmThread.hpp" | 32 #include "runtime/vmThread.hpp" |
33 #include "utilities/macros.hpp" | 33 #include "utilities/macros.hpp" |
34 | 34 |
35 #if INCLUDE_ALL_GCS | 35 #if INCLUDE_ALL_GCS |
36 #include "gc_implementation/concurrentMarkSweep/freeChunk.hpp" | 36 #include "gc_implementation/concurrentMarkSweep/freeChunk.hpp" |
37 #include "gc_implementation/g1/g1CodeCacheRemSet.hpp" | |
37 #endif // INCLUDE_ALL_GCS | 38 #endif // INCLUDE_ALL_GCS |
38 | 39 |
39 // Free list. A FreeList is used to access a linked list of chunks | 40 // Free list. A FreeList is used to access a linked list of chunks |
40 // of space in the heap. The head and tail are maintained so that | 41 // of space in the heap. The head and tail are maintained so that |
41 // items can be (as in the current implementation) added at the | 42 // items can be (as in the current implementation) added at the |
330 | 331 |
331 template class FreeList<Metablock>; | 332 template class FreeList<Metablock>; |
332 template class FreeList<Metachunk>; | 333 template class FreeList<Metachunk>; |
333 #if INCLUDE_ALL_GCS | 334 #if INCLUDE_ALL_GCS |
334 template class FreeList<FreeChunk>; | 335 template class FreeList<FreeChunk>; |
336 template class FreeList<G1CodeRootChunk>; | |
335 #endif // INCLUDE_ALL_GCS | 337 #endif // INCLUDE_ALL_GCS |