--- a/hotspot/src/share/vm/ci/ciEnv.hpp Fri May 08 10:34:31 2009 -0700
+++ b/hotspot/src/share/vm/ci/ciEnv.hpp Fri May 08 10:44:20 2009 -0700
@@ -53,6 +53,18 @@
char* _name_buffer;
int _name_buffer_len;
+ // Cache Jvmti state
+ bool _jvmti_can_hotswap_or_post_breakpoint;
+ bool _jvmti_can_examine_or_deopt_anywhere;
+ bool _jvmti_can_access_local_variables;
+ bool _jvmti_can_post_exceptions;
+
+ // Cache DTrace flags
+ bool _dtrace_extended_probes;
+ bool _dtrace_monitor_probes;
+ bool _dtrace_method_probes;
+ bool _dtrace_alloc_probes;
+
// Distinguished instances of certain ciObjects..
static ciObject* _null_object_instance;
static ciMethodKlass* _method_klass_instance;
@@ -236,6 +248,20 @@
bool break_at_compile() { return _break_at_compile; }
void set_break_at_compile(bool z) { _break_at_compile = z; }
+ // Cache Jvmti state
+ void cache_jvmti_state();
+ bool jvmti_can_hotswap_or_post_breakpoint() const { return _jvmti_can_hotswap_or_post_breakpoint; }
+ bool jvmti_can_examine_or_deopt_anywhere() const { return _jvmti_can_examine_or_deopt_anywhere; }
+ bool jvmti_can_access_local_variables() const { return _jvmti_can_access_local_variables; }
+ bool jvmti_can_post_exceptions() const { return _jvmti_can_post_exceptions; }
+
+ // Cache DTrace flags
+ void cache_dtrace_flags();
+ bool dtrace_extended_probes() const { return _dtrace_extended_probes; }
+ bool dtrace_monitor_probes() const { return _dtrace_monitor_probes; }
+ bool dtrace_method_probes() const { return _dtrace_method_probes; }
+ bool dtrace_alloc_probes() const { return _dtrace_alloc_probes; }
+
// The compiler task which has created this env.
// May be useful to find out compile_id, comp_level, etc.
CompileTask* task() { return _task; }