< prev index next >

src/hotspot/share/ci/ciEnv.hpp

Print this page
@@ -37,10 +37,11 @@
  #include "oops/methodData.hpp"
  #include "runtime/javaThread.hpp"
  
  class CompileTask;
  class OopMapSet;
+ class SCCEntry;
  
  // ciEnv
  //
  // This class is the top level broker for requests from the compiler
  // to the VM.

@@ -372,15 +373,19 @@
                         int                       frame_words,
                         OopMapSet*                oop_map_set,
                         ExceptionHandlerTable*    handler_table,
                         ImplicitExceptionTable*   inc_table,
                         AbstractCompiler*         compiler,
+                        bool                      has_clinit_barriers,
+                        bool                      for_preload,
                         bool                      has_unsafe_access,
                         bool                      has_wide_vectors,
                         bool                      has_monitors,
                         bool                      has_scoped_access,
-                        int                       immediate_oops_patched);
+                        int                       immediate_oops_patched,
+                        bool                      install_code,
+                        SCCEntry*                 entry = nullptr);
  
    // Access to certain well known ciObjects.
  #define VM_CLASS_FUNC(name, ignore_s) \
    ciInstanceKlass* name() { \
      return _##name;\

@@ -466,10 +471,17 @@
    void record_out_of_memory_failure();
  
    // RedefineClasses support
    void metadata_do(MetadataClosure* f) { _factory->metadata_do(f); }
  
+ private:
+   SCCEntry* _scc_clinit_barriers_entry;
+ 
+ public:
+   void  set_scc_clinit_barriers_entry(SCCEntry* entry) { _scc_clinit_barriers_entry = entry; }
+   SCCEntry* scc_clinit_barriers_entry()          const { return _scc_clinit_barriers_entry; }
+ 
    // Replay support
  private:
    static int klass_compare(const InstanceKlass* const &ik1, const InstanceKlass* const &ik2) {
      if (ik1 > ik2) {
        return 1;

@@ -510,8 +522,12 @@
    void record_call_site_obj(Thread* thread, oop obj);
    void record_call_site_method(Thread* thread, Method* adapter);
    void process_invokedynamic(const constantPoolHandle &cp, int index, JavaThread* thread);
    void process_invokehandle(const constantPoolHandle &cp, int index, JavaThread* thread);
    void find_dynamic_call_sites();
+ 
+   bool is_precompiled();
+   bool is_fully_initialized(InstanceKlass* ik);
+   InstanceKlass::ClassState compute_init_state_for_precompiled(InstanceKlass* ik);
  };
  
  #endif // SHARE_CI_CIENV_HPP
< prev index next >