< prev index next >

src/hotspot/share/opto/compile.cpp

Print this page

 865 
 866 #ifndef PRODUCT
 867   if (should_print_ideal()) {
 868     print_ideal_ir("PrintIdeal");
 869   }
 870 #endif
 871 
 872 #ifdef ASSERT
 873   BarrierSetC2* bs = BarrierSet::barrier_set()->barrier_set_c2();
 874   bs->verify_gc_barriers(this, BarrierSetC2::BeforeCodeGen);
 875 #endif
 876 
 877   // Dump compilation data to replay it.
 878   if (directive->DumpReplayOption) {
 879     env()->dump_replay_data(_compile_id);
 880   }
 881   if (directive->DumpInlineOption && (ilt() != nullptr)) {
 882     env()->dump_inline_data(_compile_id);
 883   }
 884 
 885   // Now that we know the size of all the monitors we can add a fixed slot
 886   // for the original deopt pc.
 887   int next_slot = fixed_slots() + (sizeof(address) / VMRegImpl::stack_slot_size);


 888   set_fixed_slots(next_slot);
 889 
 890   // Compute when to use implicit null checks. Used by matching trap based
 891   // nodes and NullCheck optimization.
 892   set_allowed_deopt_reasons();
 893 
 894   // Now generate code
 895   Code_Gen();
 896 }
 897 
 898 //------------------------------Compile----------------------------------------
 899 // Compile a runtime stub
 900 Compile::Compile(ciEnv* ci_env,
 901                  TypeFunc_generator generator,
 902                  address stub_function,
 903                  const char* stub_name,
 904                  StubId stub_id,
 905                  int is_fancy_jump,
 906                  bool pass_tls,
 907                  bool return_pc,

 865 
 866 #ifndef PRODUCT
 867   if (should_print_ideal()) {
 868     print_ideal_ir("PrintIdeal");
 869   }
 870 #endif
 871 
 872 #ifdef ASSERT
 873   BarrierSetC2* bs = BarrierSet::barrier_set()->barrier_set_c2();
 874   bs->verify_gc_barriers(this, BarrierSetC2::BeforeCodeGen);
 875 #endif
 876 
 877   // Dump compilation data to replay it.
 878   if (directive->DumpReplayOption) {
 879     env()->dump_replay_data(_compile_id);
 880   }
 881   if (directive->DumpInlineOption && (ilt() != nullptr)) {
 882     env()->dump_inline_data(_compile_id);
 883   }
 884 
 885   // Now that we know the size of all the monitors we can add the fixed slots
 886   // for GC barriers and the original deopt pc. All these slots should be able
 887   // to fit an address.
 888   int reserved_gc_slots = BarrierSet::barrier_set()->barrier_set_c2()->reserved_slots();
 889   int next_slot = fixed_slots() + (reserved_gc_slots + 1) * sizeof(address) / VMRegImpl::stack_slot_size;
 890   set_fixed_slots(next_slot);
 891 
 892   // Compute when to use implicit null checks. Used by matching trap based
 893   // nodes and NullCheck optimization.
 894   set_allowed_deopt_reasons();
 895 
 896   // Now generate code
 897   Code_Gen();
 898 }
 899 
 900 //------------------------------Compile----------------------------------------
 901 // Compile a runtime stub
 902 Compile::Compile(ciEnv* ci_env,
 903                  TypeFunc_generator generator,
 904                  address stub_function,
 905                  const char* stub_name,
 906                  StubId stub_id,
 907                  int is_fancy_jump,
 908                  bool pass_tls,
 909                  bool return_pc,
< prev index next >