Mercurial > hg > graal-compiler
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); } |