< prev index next >

src/share/vm/opto/compile.cpp

Print this page




3427                 u->Opcode() == Op_SubL ||
3428                 u->Opcode() == Op_AddP) {
3429               wq.push(u);
3430             }
3431           }
3432           // Replace all nodes with identical edges as m with m
3433           k->subsume_by(m, this);
3434         }
3435       }
3436     }
3437     break;
3438   }
3439   case Op_ValueType: {
3440     ValueTypeNode* vt = n->as_ValueType();
3441     vt->make_scalar_in_safepoints(this);
3442     if (vt->outcnt() == 0) {
3443       vt->disconnect_inputs(NULL, this);
3444     }
3445     break;
3446   }





3447   default:
3448     assert( !n->is_Call(), "" );
3449     assert( !n->is_Mem(), "" );
3450     assert( nop != Op_ProfileBoolean, "should be eliminated during IGVN");
3451     break;
3452   }
3453 
3454   // Collect CFG split points
3455   if (n->is_MultiBranch() && !n->is_RangeCheck()) {
3456     frc._tests.push(n);
3457   }
3458 }
3459 
3460 //------------------------------final_graph_reshaping_walk---------------------
3461 // Replacing Opaque nodes with their input in final_graph_reshaping_impl(),
3462 // requires that the walk visits a node's inputs before visiting the node.
3463 void Compile::final_graph_reshaping_walk( Node_Stack &nstack, Node *root, Final_Reshape_Counts &frc ) {
3464   ResourceArea *area = Thread::current()->resource_area();
3465   Unique_Node_List sfpt(area);
3466 




3427                 u->Opcode() == Op_SubL ||
3428                 u->Opcode() == Op_AddP) {
3429               wq.push(u);
3430             }
3431           }
3432           // Replace all nodes with identical edges as m with m
3433           k->subsume_by(m, this);
3434         }
3435       }
3436     }
3437     break;
3438   }
3439   case Op_ValueType: {
3440     ValueTypeNode* vt = n->as_ValueType();
3441     vt->make_scalar_in_safepoints(this);
3442     if (vt->outcnt() == 0) {
3443       vt->disconnect_inputs(NULL, this);
3444     }
3445     break;
3446   }
3447   case Op_ValueTypePtr: {
3448     Node* oop = n->as_ValueTypeBase()->get_oop();
3449     n->subsume_by(oop, this);
3450     break;
3451   }
3452   default:
3453     assert( !n->is_Call(), "" );
3454     assert( !n->is_Mem(), "" );
3455     assert( nop != Op_ProfileBoolean, "should be eliminated during IGVN");
3456     break;
3457   }
3458 
3459   // Collect CFG split points
3460   if (n->is_MultiBranch() && !n->is_RangeCheck()) {
3461     frc._tests.push(n);
3462   }
3463 }
3464 
3465 //------------------------------final_graph_reshaping_walk---------------------
3466 // Replacing Opaque nodes with their input in final_graph_reshaping_impl(),
3467 // requires that the walk visits a node's inputs before visiting the node.
3468 void Compile::final_graph_reshaping_walk( Node_Stack &nstack, Node *root, Final_Reshape_Counts &frc ) {
3469   ResourceArea *area = Thread::current()->resource_area();
3470   Unique_Node_List sfpt(area);
3471 


< prev index next >