< prev index next >

src/hotspot/share/c1/c1_Compilation.hpp

Print this page
@@ -31,10 +31,11 @@
  #include "compiler/compiler_globals.hpp"
  #include "compiler/compilerDefinitions.inline.hpp"
  #include "compiler/compilerDirectives.hpp"
  #include "memory/resourceArea.hpp"
  #include "runtime/deoptimization.hpp"
+ #include "runtime/sharedRuntime.hpp"
  
  class CompilationFailureInfo;
  class CompilationResourceObj;
  class XHandlers;
  class ExceptionInfo;

@@ -94,10 +95,11 @@
    LinearScan*        _allocator;
    CodeOffsets        _offsets;
    CodeBuffer         _code;
    bool               _has_access_indexed;
    int                _interpreter_frame_size; // Stack space needed in case of a deoptimization
+   CompiledEntrySignature _compiled_entry_signature;
    int                _immediate_oops_patched;
  
    // compilation helpers
    void initialize();
    void build_hir();

@@ -259,10 +261,14 @@
    }
    bool profile_return() {
      return env()->comp_level() == CompLevel_full_profile &&
        C1UpdateMethodData && MethodData::profile_return();
    }
+   bool profile_array_accesses() {
+     return env()->comp_level() == CompLevel_full_profile &&
+       C1UpdateMethodData;
+   }
  
    // will compilation make optimistic assumptions that might lead to
    // deoptimization and that the runtime will account for?
    bool is_optimistic() {
      return CompilerConfig::is_c1_only_no_jvmci() && !is_profiling() &&

@@ -284,10 +290,17 @@
    }
  
    int interpreter_frame_size() const {
      return _interpreter_frame_size;
    }
+ 
+   const CompiledEntrySignature* compiled_entry_signature() const {
+     return &_compiled_entry_signature;
+   }
+   bool needs_stack_repair() const {
+     return compiled_entry_signature()->c1_needs_stack_repair();
+   }
  };
  
  
  // Macro definitions for unified bailout-support
  // The methods bailout() and bailed_out() are present in all classes
< prev index next >