hotspot/src/share/vm/opto/compile.cpp
changeset 34185 ee71c590a456
parent 33626 3c94db05e903
parent 34174 4db2fb26dc49
child 34211 d25c2fc1e248
equal deleted inserted replaced
33813:4f376e851453 34185:ee71c590a456
   705 
   705 
   706   if (directive->ReplayInlineOption) {
   706   if (directive->ReplayInlineOption) {
   707     _replay_inline_data = ciReplay::load_inline_data(method(), entry_bci(), ci_env->comp_level());
   707     _replay_inline_data = ciReplay::load_inline_data(method(), entry_bci(), ci_env->comp_level());
   708   }
   708   }
   709 #endif
   709 #endif
   710   set_print_inlining(directive->PrintInliningOption NOT_PRODUCT( || PrintOptoInlining));
   710   set_print_inlining(directive->PrintInliningOption || PrintOptoInlining);
   711   set_print_intrinsics(directive->PrintIntrinsicsOption);
   711   set_print_intrinsics(directive->PrintIntrinsicsOption);
   712   set_has_irreducible_loop(true); // conservative until build_loop_tree() reset it
   712   set_has_irreducible_loop(true); // conservative until build_loop_tree() reset it
   713 
   713 
   714   if (ProfileTraps RTM_OPT_ONLY( || UseRTMLocking )) {
   714   if (ProfileTraps RTM_OPT_ONLY( || UseRTMLocking )) {
   715     // Make sure the method being compiled gets its own MDO,
   715     // Make sure the method being compiled gets its own MDO,
  3179     // confuses register allocation.
  3179     // confuses register allocation.
  3180     if (n->req() > MemBarNode::Precedent) {
  3180     if (n->req() > MemBarNode::Precedent) {
  3181       n->set_req(MemBarNode::Precedent, top());
  3181       n->set_req(MemBarNode::Precedent, top());
  3182     }
  3182     }
  3183     break;
  3183     break;
       
  3184   case Op_RangeCheck: {
       
  3185     RangeCheckNode* rc = n->as_RangeCheck();
       
  3186     Node* iff = new IfNode(rc->in(0), rc->in(1), rc->_prob, rc->_fcnt);
       
  3187     n->subsume_by(iff, this);
       
  3188     frc._tests.push(iff);
       
  3189     break;
       
  3190   }
  3184   default:
  3191   default:
  3185     assert( !n->is_Call(), "" );
  3192     assert( !n->is_Call(), "" );
  3186     assert( !n->is_Mem(), "" );
  3193     assert( !n->is_Mem(), "" );
  3187     assert( nop != Op_ProfileBoolean, "should be eliminated during IGVN");
  3194     assert( nop != Op_ProfileBoolean, "should be eliminated during IGVN");
  3188     break;
  3195     break;
  3189   }
  3196   }
  3190 
  3197 
  3191   // Collect CFG split points
  3198   // Collect CFG split points
  3192   if (n->is_MultiBranch())
  3199   if (n->is_MultiBranch() && !n->is_RangeCheck()) {
  3193     frc._tests.push(n);
  3200     frc._tests.push(n);
       
  3201   }
  3194 }
  3202 }
  3195 
  3203 
  3196 //------------------------------final_graph_reshaping_walk---------------------
  3204 //------------------------------final_graph_reshaping_walk---------------------
  3197 // Replacing Opaque nodes with their input in final_graph_reshaping_impl(),
  3205 // Replacing Opaque nodes with their input in final_graph_reshaping_impl(),
  3198 // requires that the walk visits a node's inputs before visiting the node.
  3206 // requires that the walk visits a node's inputs before visiting the node.