859 #ifndef PRODUCT
860 if (should_print_igv(1)) {
861 _igv_printer->print_inlining();
862 }
863 #endif
864
865 if (failing()) return;
866 NOT_PRODUCT( verify_graph_edges(); )
867
868 // Now optimize
869 Optimize();
870 if (failing()) return;
871 NOT_PRODUCT( verify_graph_edges(); )
872
873 #ifndef PRODUCT
874 if (should_print_ideal()) {
875 print_ideal_ir("PrintIdeal");
876 }
877 #endif
878
879 #ifdef ASSERT
880 BarrierSetC2* bs = BarrierSet::barrier_set()->barrier_set_c2();
881 bs->verify_gc_barriers(this, BarrierSetC2::BeforeCodeGen);
882 #endif
883
884 // Dump compilation data to replay it.
885 if (directive->DumpReplayOption) {
886 env()->dump_replay_data(_compile_id);
887 }
888 if (directive->DumpInlineOption && (ilt() != nullptr)) {
889 env()->dump_inline_data(_compile_id);
890 }
891
892 // Now that we know the size of all the monitors we can add a fixed slot
893 // for the original deopt pc.
894 int next_slot = fixed_slots() + (sizeof(address) / VMRegImpl::stack_slot_size);
895 set_fixed_slots(next_slot);
896
897 // Compute when to use implicit null checks. Used by matching trap based
898 // nodes and NullCheck optimization.
899 set_allowed_deopt_reasons();
900
|
859 #ifndef PRODUCT
860 if (should_print_igv(1)) {
861 _igv_printer->print_inlining();
862 }
863 #endif
864
865 if (failing()) return;
866 NOT_PRODUCT( verify_graph_edges(); )
867
868 // Now optimize
869 Optimize();
870 if (failing()) return;
871 NOT_PRODUCT( verify_graph_edges(); )
872
873 #ifndef PRODUCT
874 if (should_print_ideal()) {
875 print_ideal_ir("PrintIdeal");
876 }
877 #endif
878
879 BarrierSetC2* bs = BarrierSet::barrier_set()->barrier_set_c2();
880 bs->final_refinement(this);
881
882 #ifdef ASSERT
883 bs->verify_gc_barriers(this, BarrierSetC2::BeforeCodeGen);
884 #endif
885
886 // Dump compilation data to replay it.
887 if (directive->DumpReplayOption) {
888 env()->dump_replay_data(_compile_id);
889 }
890 if (directive->DumpInlineOption && (ilt() != nullptr)) {
891 env()->dump_inline_data(_compile_id);
892 }
893
894 // Now that we know the size of all the monitors we can add a fixed slot
895 // for the original deopt pc.
896 int next_slot = fixed_slots() + (sizeof(address) / VMRegImpl::stack_slot_size);
897 set_fixed_slots(next_slot);
898
899 // Compute when to use implicit null checks. Used by matching trap based
900 // nodes and NullCheck optimization.
901 set_allowed_deopt_reasons();
902
|