diff src/share/vm/ci/ciEnv.hpp @ 780:c96bf21b756f

6788527: Server vm intermittently fails with assertion "live value must not be garbage" with fastdebug bits Summary: Cache Jvmti and DTrace flags used by Compiler. Reviewed-by: never
author kvn
date Fri, 08 May 2009 10:44:20 -0700
parents a61af66fc99e
children bd02caa94611
line wrap: on
line diff
--- a/src/share/vm/ci/ciEnv.hpp	Fri May 08 10:34:31 2009 -0700
+++ b/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; }