< prev index next >

src/hotspot/share/ci/ciEnv.hpp

Print this page

        

*** 49,58 **** --- 49,59 ---- friend class PrepareExtraDataClosure; private: Arena* _arena; // Alias for _ciEnv_arena except in init_shared_objects() Arena _ciEnv_arena; + int _system_dictionary_modification_counter; ciObjectFactory* _factory; OopRecorder* _oop_recorder; DebugInformationRecorder* _debug_info; Dependencies* _dependencies; const char* _failure_reason;
*** 288,305 **** static bool is_in_vm(); // Helper routine for determining the validity of a compilation with // respect to method dependencies (e.g. concurrent class loading). void validate_compile_task_dependencies(ciMethod* target); public: enum { MethodCompilable, MethodCompilable_not_at_tier, MethodCompilable_never }; ! ciEnv(CompileTask* task); // Used only during initialization of the ci ciEnv(Arena* arena); ~ciEnv(); OopRecorder* oop_recorder() { return _oop_recorder; } --- 289,309 ---- static bool is_in_vm(); // Helper routine for determining the validity of a compilation with // respect to method dependencies (e.g. concurrent class loading). void validate_compile_task_dependencies(ciMethod* target); + + // Call internally when Compile_lock is already held. + bool system_dictionary_modification_counter_changed_locked(); public: enum { MethodCompilable, MethodCompilable_not_at_tier, MethodCompilable_never }; ! ciEnv(CompileTask* task, int system_dictionary_modification_counter); // Used only during initialization of the ci ciEnv(Arena* arena); ~ciEnv(); OopRecorder* oop_recorder() { return _oop_recorder; }
*** 450,459 **** --- 454,466 ---- // Output stream for logging compilation info. CompileLog* log() { return _log; } void set_log(CompileLog* log) { _log = log; } + // Check for changes to the system dictionary during compilation + bool system_dictionary_modification_counter_changed(); + void record_failure(const char* reason); // Record failure and report later void report_failure(const char* reason); // Report failure immediately void record_method_not_compilable(const char* reason, bool all_tiers = true); void record_out_of_memory_failure();
< prev index next >