Mercurial > hg > graal-compiler
diff src/share/vm/graal/graalEnv.hpp @ 19321:98592ae4b1fa
only record method dependencies if JVMTI hotswapping or breakpointing is enabled
don't verify dependencies if the SystemDictionary was not updated during compilation
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Thu, 12 Feb 2015 16:54:12 +0100 |
parents | cd22c8dbda4f |
children | dd8989d5547f |
line wrap: on
line diff
--- a/src/share/vm/graal/graalEnv.hpp Thu Feb 12 15:20:14 2015 +0100 +++ b/src/share/vm/graal/graalEnv.hpp Thu Feb 12 16:54:12 2015 +0100 @@ -50,7 +50,7 @@ // // This class is the top level broker for requests from the compiler // to the VM. -class GraalEnv : AllStatic { +class GraalEnv : StackObj { CI_PACKAGE_ACCESS_TO friend class CompileBroker; @@ -92,7 +92,16 @@ int method_index, Bytecodes::Code bc, instanceKlassHandle& loading_klass); + GraalEnv(CompileTask* task, int system_dictionary_modification_counter); + private: + CompileTask* _task; + int _system_dictionary_modification_counter; + + // Cache JVMTI state + bool _jvmti_can_hotswap_or_post_breakpoint; + bool _jvmti_can_access_local_variables; + bool _jvmti_can_post_on_exceptions; // Implementation methods for loading and constant pool access. static KlassHandle get_klass_by_name_impl(KlassHandle& accessing_klass, @@ -124,9 +133,11 @@ // Helper routine for determining the validity of a compilation // with respect to concurrent class loading. - static bool check_for_system_dictionary_modification(Dependencies* target); + static bool check_for_system_dictionary_modification(Dependencies* target, GraalEnv* env); public: + CompileTask* task() { return _task; } + // Register the result of a compilation. static GraalEnv::CodeInstallResult register_method( methodHandle& target, @@ -141,7 +152,7 @@ AbstractCompiler* compiler, DebugInformationRecorder* debug_info, Dependencies* dependencies, - CompileTask* task, + GraalEnv* env, int compile_id, bool has_unsafe_access, Handle installed_code,