< prev index next >

src/hotspot/share/c1/c1_Compilation.cpp

Print this page
@@ -361,10 +361,11 @@
    if (PrintExceptionHandlers && Verbose) {
      exception_handler_table()->print();
    }
  #endif /* PRODUCT */
  
+   _immediate_oops_patched = lir_asm.nr_immediate_oops_patched();
    return frame_map()->framesize();
  }
  
  
  int Compilation::compile_java_method() {

@@ -380,10 +381,14 @@
  
    if (is_profiling() && !method()->ensure_method_data()) {
      BAILOUT_("mdo allocation failed", no_frame_size);
    }
  
+   if (method()->is_synchronized()) {
+     set_has_monitors(true);
+   }
+ 
    {
      PhaseTraceTime timeit(_t_buildIR);
      build_hir();
    }
    if (BailoutAfterHIR) {

@@ -419,11 +424,13 @@
      debug_info_recorder()->_oopmaps,
      exception_handler_table(),
      implicit_exception_table(),
      compiler(),
      has_unsafe_access(),
-     SharedRuntime::is_wide_vector(max_vector_size())
+     SharedRuntime::is_wide_vector(max_vector_size()),
+     has_monitors(),
+     _immediate_oops_patched
    );
  }
  
  
  void Compilation::compile_method() {

@@ -556,17 +563,19 @@
  , _has_fpu_code(true)   // pessimistic assumption
  , _has_unsafe_access(false)
  , _would_profile(false)
  , _has_method_handle_invokes(false)
  , _has_reserved_stack_access(method->has_reserved_stack_access())
+ , _has_monitors(false)
  , _install_code(install_code)
  , _bailout_msg(NULL)
  , _exception_info_list(NULL)
  , _allocator(NULL)
  , _code(buffer_blob)
  , _has_access_indexed(false)
  , _interpreter_frame_size(0)
+ , _immediate_oops_patched(0)
  , _current_instruction(NULL)
  #ifndef PRODUCT
  , _last_instruction_printed(NULL)
  , _cfg_printer_output(NULL)
  #endif // PRODUCT
< prev index next >