< prev index next >

src/hotspot/share/gc/shared/barrierSetConfig.hpp

G1BarrierSet_merge

11  * version 2 for more details (a copy is included in the LICENSE file that                                                           
12  * accompanied this code).                                                                                                           
13  *                                                                                                                                   
14  * You should have received a copy of the GNU General Public License version                                                         
15  * 2 along with this work; if not, write to the Free Software Foundation,                                                            
16  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.                                                                     
17  *                                                                                                                                   
18  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA                                                           
19  * or visit www.oracle.com if you need additional information or have any                                                            
20  * questions.                                                                                                                        
21  *                                                                                                                                   
22  */                                                                                                                                  
23 
24 #ifndef SHARE_VM_GC_SHARED_BARRIERSETCONFIG_HPP                                                                                      
25 #define SHARE_VM_GC_SHARED_BARRIERSETCONFIG_HPP                                                                                      
26 
27 #include "utilities/macros.hpp"                                                                                                      
28 
29 #if INCLUDE_ALL_GCS                                                                                                                  
30 #define FOR_EACH_CONCRETE_INCLUDE_ALL_GC_BARRIER_SET_DO(f) \                                                                         
31   f(G1SATBCTLogging)                                                                                                                 
32 #else                                                                                                                                
33 #define FOR_EACH_CONCRETE_INCLUDE_ALL_GC_BARRIER_SET_DO(f)                                                                           
34 #endif                                                                                                                               
35 
36 #if INCLUDE_ALL_GCS                                                                                                                  
37 #define FOR_EACH_ABSTRACT_INCLUDE_ALL_GC_BARRIER_SET_DO(f) \                                                                         
38   f(G1SATBCT)                                                                                                                        
39 #else                                                                                                                                
40 #define FOR_EACH_ABSTRACT_INCLUDE_ALL_GC_BARRIER_SET_DO(f)                                                                           
41 #endif                                                                                                                               
42                                                                                                                                      
43 // Do something for each concrete barrier set part of the build.                                                                     
44 #define FOR_EACH_CONCRETE_BARRIER_SET_DO(f)          \                                                                               
45   f(CardTableModRef)                                 \                                                                               
46   FOR_EACH_CONCRETE_INCLUDE_ALL_GC_BARRIER_SET_DO(f)                                                                                 
47 
48 #define FOR_EACH_ABSTRACT_BARRIER_SET_DO(f)          \                                                                               
49   f(ModRef)                                          \                                                                               
50   FOR_EACH_ABSTRACT_INCLUDE_ALL_GC_BARRIER_SET_DO(f)                                                                                 
51 
52 // Do something for each known barrier set.                                                                                          
53 #define FOR_EACH_BARRIER_SET_DO(f)    \                                                                                              
54   FOR_EACH_ABSTRACT_BARRIER_SET_DO(f) \                                                                                              
55   FOR_EACH_CONCRETE_BARRIER_SET_DO(f)                                                                                                
56 
57 // To enable runtime-resolution of GC barriers on primitives, please                                                                 
58 // define SUPPORT_BARRIER_ON_PRIMITIVES.                                                                                             
59 #ifdef SUPPORT_BARRIER_ON_PRIMITIVES                                                                                                 
60 #define ACCESS_PRIMITIVE_SUPPORT INTERNAL_BT_BARRIER_ON_PRIMITIVES                                                                   
61 #else                                                                                                                                
62 #define ACCESS_PRIMITIVE_SUPPORT INTERNAL_EMPTY                                                                                      
63 #endif                                                                                                                               
64 
65 #ifdef SUPPORT_NOT_TO_SPACE_INVARIANT                                                                                                
66 #define ACCESS_TO_SPACE_INVARIANT_SUPPORT INTERNAL_EMPTY                                                                             
67 #else                                                                                                                                
68 #define ACCESS_TO_SPACE_INVARIANT_SUPPORT INTERNAL_BT_TO_SPACE_INVARIANT                                                             
69 #endif                                                                                                                               

11  * version 2 for more details (a copy is included in the LICENSE file that
12  * accompanied this code).
13  *
14  * You should have received a copy of the GNU General Public License version
15  * 2 along with this work; if not, write to the Free Software Foundation,
16  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
17  *
18  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
19  * or visit www.oracle.com if you need additional information or have any
20  * questions.
21  *
22  */
23 
24 #ifndef SHARE_VM_GC_SHARED_BARRIERSETCONFIG_HPP
25 #define SHARE_VM_GC_SHARED_BARRIERSETCONFIG_HPP
26 
27 #include "utilities/macros.hpp"
28 
29 #if INCLUDE_ALL_GCS
30 #define FOR_EACH_CONCRETE_INCLUDE_ALL_GC_BARRIER_SET_DO(f) \
31   f(G1BarrierSet)
32 #else
33 #define FOR_EACH_CONCRETE_INCLUDE_ALL_GC_BARRIER_SET_DO(f)
34 #endif
35 







36 // Do something for each concrete barrier set part of the build.
37 #define FOR_EACH_CONCRETE_BARRIER_SET_DO(f)          \
38   f(CardTableModRef)                                 \
39   FOR_EACH_CONCRETE_INCLUDE_ALL_GC_BARRIER_SET_DO(f)
40 
41 #define FOR_EACH_ABSTRACT_BARRIER_SET_DO(f)          \
42   f(ModRef)

43 
44 // Do something for each known barrier set.
45 #define FOR_EACH_BARRIER_SET_DO(f)    \
46   FOR_EACH_ABSTRACT_BARRIER_SET_DO(f) \
47   FOR_EACH_CONCRETE_BARRIER_SET_DO(f)
48 
49 // To enable runtime-resolution of GC barriers on primitives, please
50 // define SUPPORT_BARRIER_ON_PRIMITIVES.
51 #ifdef SUPPORT_BARRIER_ON_PRIMITIVES
52 #define ACCESS_PRIMITIVE_SUPPORT INTERNAL_BT_BARRIER_ON_PRIMITIVES
53 #else
54 #define ACCESS_PRIMITIVE_SUPPORT INTERNAL_EMPTY
55 #endif
56 
57 #ifdef SUPPORT_NOT_TO_SPACE_INVARIANT
58 #define ACCESS_TO_SPACE_INVARIANT_SUPPORT INTERNAL_EMPTY
59 #else
60 #define ACCESS_TO_SPACE_INVARIANT_SUPPORT INTERNAL_BT_TO_SPACE_INVARIANT
61 #endif
< prev index next >