comparison src/share/vm/utilities/accessFlags.hpp @ 1783:d5d065957597

6953144: Tiered compilation Summary: Infrastructure for tiered compilation support (interpreter + c1 + c2) for 32 and 64 bit. Simple tiered policy implementation. Reviewed-by: kvn, never, phh, twisti
author iveresov
date Fri, 03 Sep 2010 17:51:07 -0700
parents c18cbe5936b8
children f95d63e2154a
comparison
equal deleted inserted replaced
1782:f353275af40e 1783:d5d065957597
1 /* 1 /*
2 * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 1997, 2010, 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.
37 JVM_ACC_MONITOR_MATCH = 0x10000000, // True if we know that monitorenter/monitorexit bytecodes match 37 JVM_ACC_MONITOR_MATCH = 0x10000000, // True if we know that monitorenter/monitorexit bytecodes match
38 JVM_ACC_HAS_MONITOR_BYTECODES = 0x20000000, // Method contains monitorenter/monitorexit bytecodes 38 JVM_ACC_HAS_MONITOR_BYTECODES = 0x20000000, // Method contains monitorenter/monitorexit bytecodes
39 JVM_ACC_HAS_LOOPS = 0x40000000, // Method has loops 39 JVM_ACC_HAS_LOOPS = 0x40000000, // Method has loops
40 JVM_ACC_LOOPS_FLAG_INIT = (int)0x80000000,// The loop flag has been initialized 40 JVM_ACC_LOOPS_FLAG_INIT = (int)0x80000000,// The loop flag has been initialized
41 JVM_ACC_QUEUED = 0x01000000, // Queued for compilation 41 JVM_ACC_QUEUED = 0x01000000, // Queued for compilation
42 JVM_ACC_NOT_TIER1_COMPILABLE = 0x04000000, 42 JVM_ACC_NOT_C2_COMPILABLE = 0x02000000,
43 JVM_ACC_NOT_C1_COMPILABLE = 0x04000000,
43 JVM_ACC_NOT_OSR_COMPILABLE = 0x08000000, 44 JVM_ACC_NOT_OSR_COMPILABLE = 0x08000000,
44 JVM_ACC_HAS_LINE_NUMBER_TABLE = 0x00100000, 45 JVM_ACC_HAS_LINE_NUMBER_TABLE = 0x00100000,
45 JVM_ACC_HAS_CHECKED_EXCEPTIONS = 0x00400000, 46 JVM_ACC_HAS_CHECKED_EXCEPTIONS = 0x00400000,
46 JVM_ACC_HAS_JSRS = 0x00800000, 47 JVM_ACC_HAS_JSRS = 0x00800000,
47 JVM_ACC_IS_OLD = 0x00010000, // RedefineClasses() has replaced this method 48 JVM_ACC_IS_OLD = 0x00010000, // RedefineClasses() has replaced this method
48 JVM_ACC_IS_OBSOLETE = 0x00020000, // RedefineClasses() has made method obsolete 49 JVM_ACC_IS_OBSOLETE = 0x00020000, // RedefineClasses() has made method obsolete
49 JVM_ACC_IS_PREFIXED_NATIVE = 0x00040000, // JVMTI has prefixed this native method 50 JVM_ACC_IS_PREFIXED_NATIVE = 0x00040000, // JVMTI has prefixed this native method
51
50 JVM_MH_INVOKE_BITS // = 0x10001100 // MethodHandle.invoke quasi-native 52 JVM_MH_INVOKE_BITS // = 0x10001100 // MethodHandle.invoke quasi-native
51 = (JVM_ACC_NATIVE | JVM_ACC_SYNTHETIC | JVM_ACC_MONITOR_MATCH), 53 = (JVM_ACC_NATIVE | JVM_ACC_SYNTHETIC | JVM_ACC_MONITOR_MATCH),
52 54
53 // klassOop flags 55 // klassOop flags
54 JVM_ACC_HAS_MIRANDA_METHODS = 0x10000000, // True if this class has miranda methods in it's vtable 56 JVM_ACC_HAS_MIRANDA_METHODS = 0x10000000, // True if this class has miranda methods in it's vtable
106 bool is_monitor_matching () const { return (_flags & JVM_ACC_MONITOR_MATCH ) != 0; } 108 bool is_monitor_matching () const { return (_flags & JVM_ACC_MONITOR_MATCH ) != 0; }
107 bool has_monitor_bytecodes () const { return (_flags & JVM_ACC_HAS_MONITOR_BYTECODES ) != 0; } 109 bool has_monitor_bytecodes () const { return (_flags & JVM_ACC_HAS_MONITOR_BYTECODES ) != 0; }
108 bool has_loops () const { return (_flags & JVM_ACC_HAS_LOOPS ) != 0; } 110 bool has_loops () const { return (_flags & JVM_ACC_HAS_LOOPS ) != 0; }
109 bool loops_flag_init () const { return (_flags & JVM_ACC_LOOPS_FLAG_INIT ) != 0; } 111 bool loops_flag_init () const { return (_flags & JVM_ACC_LOOPS_FLAG_INIT ) != 0; }
110 bool queued_for_compilation () const { return (_flags & JVM_ACC_QUEUED ) != 0; } 112 bool queued_for_compilation () const { return (_flags & JVM_ACC_QUEUED ) != 0; }
111 bool is_not_tier1_compilable () const { return (_flags & JVM_ACC_NOT_TIER1_COMPILABLE ) != 0; } 113 bool is_not_c1_compilable () const { return (_flags & JVM_ACC_NOT_C1_COMPILABLE ) != 0; }
114 bool is_not_c2_compilable () const { return (_flags & JVM_ACC_NOT_C2_COMPILABLE ) != 0; }
112 bool is_not_osr_compilable () const { return (_flags & JVM_ACC_NOT_OSR_COMPILABLE ) != 0; } 115 bool is_not_osr_compilable () const { return (_flags & JVM_ACC_NOT_OSR_COMPILABLE ) != 0; }
113 bool has_linenumber_table () const { return (_flags & JVM_ACC_HAS_LINE_NUMBER_TABLE ) != 0; } 116 bool has_linenumber_table () const { return (_flags & JVM_ACC_HAS_LINE_NUMBER_TABLE ) != 0; }
114 bool has_checked_exceptions () const { return (_flags & JVM_ACC_HAS_CHECKED_EXCEPTIONS ) != 0; } 117 bool has_checked_exceptions () const { return (_flags & JVM_ACC_HAS_CHECKED_EXCEPTIONS ) != 0; }
115 bool has_jsrs () const { return (_flags & JVM_ACC_HAS_JSRS ) != 0; } 118 bool has_jsrs () const { return (_flags & JVM_ACC_HAS_JSRS ) != 0; }
116 bool is_old () const { return (_flags & JVM_ACC_IS_OLD ) != 0; } 119 bool is_old () const { return (_flags & JVM_ACC_IS_OLD ) != 0; }
170 // methodOop flags 173 // methodOop flags
171 void set_monitor_matching() { atomic_set_bits(JVM_ACC_MONITOR_MATCH); } 174 void set_monitor_matching() { atomic_set_bits(JVM_ACC_MONITOR_MATCH); }
172 void set_has_monitor_bytecodes() { atomic_set_bits(JVM_ACC_HAS_MONITOR_BYTECODES); } 175 void set_has_monitor_bytecodes() { atomic_set_bits(JVM_ACC_HAS_MONITOR_BYTECODES); }
173 void set_has_loops() { atomic_set_bits(JVM_ACC_HAS_LOOPS); } 176 void set_has_loops() { atomic_set_bits(JVM_ACC_HAS_LOOPS); }
174 void set_loops_flag_init() { atomic_set_bits(JVM_ACC_LOOPS_FLAG_INIT); } 177 void set_loops_flag_init() { atomic_set_bits(JVM_ACC_LOOPS_FLAG_INIT); }
175 void set_not_tier1_compilable() { atomic_set_bits(JVM_ACC_NOT_TIER1_COMPILABLE); } 178 void set_not_c1_compilable() { atomic_set_bits(JVM_ACC_NOT_C1_COMPILABLE); }
179 void set_not_c2_compilable() { atomic_set_bits(JVM_ACC_NOT_C2_COMPILABLE); }
176 void set_not_osr_compilable() { atomic_set_bits(JVM_ACC_NOT_OSR_COMPILABLE); } 180 void set_not_osr_compilable() { atomic_set_bits(JVM_ACC_NOT_OSR_COMPILABLE); }
177 void set_has_linenumber_table() { atomic_set_bits(JVM_ACC_HAS_LINE_NUMBER_TABLE); } 181 void set_has_linenumber_table() { atomic_set_bits(JVM_ACC_HAS_LINE_NUMBER_TABLE); }
178 void set_has_checked_exceptions() { atomic_set_bits(JVM_ACC_HAS_CHECKED_EXCEPTIONS); } 182 void set_has_checked_exceptions() { atomic_set_bits(JVM_ACC_HAS_CHECKED_EXCEPTIONS); }
179 void set_has_jsrs() { atomic_set_bits(JVM_ACC_HAS_JSRS); } 183 void set_has_jsrs() { atomic_set_bits(JVM_ACC_HAS_JSRS); }
180 void set_is_old() { atomic_set_bits(JVM_ACC_IS_OLD); } 184 void set_is_old() { atomic_set_bits(JVM_ACC_IS_OLD); }