3235 if (in2->outcnt() == 0) { // Remove dead node
3236 in2->disconnect_inputs(NULL, this);
3237 }
3238 }
3239 break;
3240 case Op_MemBarStoreStore:
3241 case Op_MemBarRelease:
3242 // Break the link with AllocateNode: it is no longer useful and
3243 // confuses register allocation.
3244 if (n->req() > MemBarNode::Precedent) {
3245 n->set_req(MemBarNode::Precedent, top());
3246 }
3247 break;
3248 case Op_RangeCheck: {
3249 RangeCheckNode* rc = n->as_RangeCheck();
3250 Node* iff = new IfNode(rc->in(0), rc->in(1), rc->_prob, rc->_fcnt);
3251 n->subsume_by(iff, this);
3252 frc._tests.push(iff);
3253 break;
3254 }
3255 default:
3256 assert( !n->is_Call(), "" );
3257 assert( !n->is_Mem(), "" );
3258 assert( nop != Op_ProfileBoolean, "should be eliminated during IGVN");
3259 break;
3260 }
3261
3262 // Collect CFG split points
3263 if (n->is_MultiBranch() && !n->is_RangeCheck()) {
3264 frc._tests.push(n);
3265 }
3266 }
3267
3268 //------------------------------final_graph_reshaping_walk---------------------
3269 // Replacing Opaque nodes with their input in final_graph_reshaping_impl(),
3270 // requires that the walk visits a node's inputs before visiting the node.
3271 void Compile::final_graph_reshaping_walk( Node_Stack &nstack, Node *root, Final_Reshape_Counts &frc ) {
3272 ResourceArea *area = Thread::current()->resource_area();
3273 Unique_Node_List sfpt(area);
3274
|
3235 if (in2->outcnt() == 0) { // Remove dead node
3236 in2->disconnect_inputs(NULL, this);
3237 }
3238 }
3239 break;
3240 case Op_MemBarStoreStore:
3241 case Op_MemBarRelease:
3242 // Break the link with AllocateNode: it is no longer useful and
3243 // confuses register allocation.
3244 if (n->req() > MemBarNode::Precedent) {
3245 n->set_req(MemBarNode::Precedent, top());
3246 }
3247 break;
3248 case Op_RangeCheck: {
3249 RangeCheckNode* rc = n->as_RangeCheck();
3250 Node* iff = new IfNode(rc->in(0), rc->in(1), rc->_prob, rc->_fcnt);
3251 n->subsume_by(iff, this);
3252 frc._tests.push(iff);
3253 break;
3254 }
3255 case Op_ValueType: {
3256 ValueTypeNode* vt = n->as_ValueType();
3257 vt->make_scalar_in_safepoints(this);
3258 if (vt->outcnt() == 0) {
3259 vt->disconnect_inputs(NULL, this);
3260 }
3261 break;
3262 }
3263 default:
3264 assert( !n->is_Call(), "" );
3265 assert( !n->is_Mem(), "" );
3266 assert( nop != Op_ProfileBoolean, "should be eliminated during IGVN");
3267 break;
3268 }
3269
3270 // Collect CFG split points
3271 if (n->is_MultiBranch() && !n->is_RangeCheck()) {
3272 frc._tests.push(n);
3273 }
3274 }
3275
3276 //------------------------------final_graph_reshaping_walk---------------------
3277 // Replacing Opaque nodes with their input in final_graph_reshaping_impl(),
3278 // requires that the walk visits a node's inputs before visiting the node.
3279 void Compile::final_graph_reshaping_walk( Node_Stack &nstack, Node *root, Final_Reshape_Counts &frc ) {
3280 ResourceArea *area = Thread::current()->resource_area();
3281 Unique_Node_List sfpt(area);
3282
|