< prev index next >

src/hotspot/share/opto/compile.cpp

Print this page

        

@@ -652,10 +652,11 @@
                   _has_reserved_stack_access(target->has_reserved_stack_access()),
 #ifndef PRODUCT
                   _trace_opto_output(directive->TraceOptoOutputOption),
 #endif
                   _has_method_handle_invokes(false),
+                  _clinit_barrier_on_entry(false),
                   _comp_arena(mtCompiler),
                   _barrier_set_state(BarrierSet::barrier_set()->barrier_set_c2()->create_barrier_state(comp_arena())),
                   _env(ci_env),
                   _directive(directive),
                   _log(ci_env->log()),

@@ -983,10 +984,11 @@
     _has_reserved_stack_access(false),
 #ifndef PRODUCT
     _trace_opto_output(directive->TraceOptoOutputOption),
 #endif
     _has_method_handle_invokes(false),
+    _clinit_barrier_on_entry(false),
     _comp_arena(mtCompiler),
     _env(ci_env),
     _directive(directive),
     _log(ci_env->log()),
     _failure_reason(NULL),

@@ -1163,10 +1165,13 @@
       // code if UseRTMDeopt is on.
       set_rtm_state(ProfileRTM);
     }
   }
 #endif
+  if (UseFastClassInitChecks && has_method() && !is_osr_compilation() && method()->needs_clinit_barrier()) {
+    set_clinit_barrier_on_entry(true);
+  }
   if (debug_info()->recording_non_safepoints()) {
     set_node_note_array(new(comp_arena()) GrowableArray<Node_Notes*>
                         (comp_arena(), 8, 0, NULL));
     set_default_node_notes(Node_Notes::make(this));
   }
< prev index next >