< prev index next >
hotspot/src/share/vm/oops/methodData.hpp
Print this page
rev 6907 : 8056071: compiler/whitebox/IsMethodCompilableTest.java fails with 'method() is not compilable after 3 iterations'
Summary: Always use MDO if valid and always compile trivial methods with C1 if available.
Reviewed-by: kvn, iveresov
@@ -2097,11 +2097,12 @@
// Number of loops and blocks is computed when compiling the first
// time with C1. It is used to determine if method is trivial.
short _num_loops;
short _num_blocks;
// Does this method contain anything worth profiling?
- bool _would_profile;
+ enum WouldProfile {unknown, no_profile, profile};
+ WouldProfile _would_profile;
// Size of _data array in bytes. (Excludes header and extra_data fields.)
int _data_size;
// data index for the area dedicated to parameters. -1 if no
@@ -2266,12 +2267,12 @@
static int rtm_state_offset_in_bytes() {
return offset_of(MethodData, _rtm_state);
}
#endif
- void set_would_profile(bool p) { _would_profile = p; }
- bool would_profile() const { return _would_profile; }
+ void set_would_profile(bool p) { _would_profile = p ? profile : no_profile; }
+ bool would_profile() const { return _would_profile != no_profile; }
int num_loops() const { return _num_loops; }
void set_num_loops(int n) { _num_loops = n; }
int num_blocks() const { return _num_blocks; }
void set_num_blocks(int n) { _num_blocks = n; }
< prev index next >