< 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,16 +563,18 @@
 , _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)
 , _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 >