equal
deleted
inserted
replaced
499 // MachTemps should be scheduled last so they are near their uses |
499 // MachTemps should be scheduled last so they are near their uses |
500 if (n->is_MachTemp()) { |
500 if (n->is_MachTemp()) { |
501 n_choice = 1; |
501 n_choice = 1; |
502 } |
502 } |
503 |
503 |
504 uint n_latency = cfg->_node_latency->at_grow(n->_idx); |
504 uint n_latency = cfg->get_latency_for_node(n); |
505 uint n_score = n->req(); // Many inputs get high score to break ties |
505 uint n_score = n->req(); // Many inputs get high score to break ties |
506 |
506 |
507 // Keep best latency found |
507 // Keep best latency found |
508 cand_cnt++; |
508 cand_cnt++; |
509 if (choice < n_choice || |
509 if (choice < n_choice || |
795 if (cfg->trace_opto_pipelining()) { |
795 if (cfg->trace_opto_pipelining()) { |
796 for (uint j=0; j<_nodes.size(); j++) { |
796 for (uint j=0; j<_nodes.size(); j++) { |
797 Node *n = _nodes[j]; |
797 Node *n = _nodes[j]; |
798 int idx = n->_idx; |
798 int idx = n->_idx; |
799 tty->print("# ready cnt:%3d ", ready_cnt.at(idx)); |
799 tty->print("# ready cnt:%3d ", ready_cnt.at(idx)); |
800 tty->print("latency:%3d ", cfg->_node_latency->at_grow(idx)); |
800 tty->print("latency:%3d ", cfg->get_latency_for_node(n)); |
801 tty->print("%4d: %s\n", idx, n->Name()); |
801 tty->print("%4d: %s\n", idx, n->Name()); |
802 } |
802 } |
803 } |
803 } |
804 #endif |
804 #endif |
805 |
805 |
823 _nodes.map(phi_cnt++,n); // Schedule him next |
823 _nodes.map(phi_cnt++,n); // Schedule him next |
824 |
824 |
825 #ifndef PRODUCT |
825 #ifndef PRODUCT |
826 if (cfg->trace_opto_pipelining()) { |
826 if (cfg->trace_opto_pipelining()) { |
827 tty->print("# select %d: %s", n->_idx, n->Name()); |
827 tty->print("# select %d: %s", n->_idx, n->Name()); |
828 tty->print(", latency:%d", cfg->_node_latency->at_grow(n->_idx)); |
828 tty->print(", latency:%d", cfg->get_latency_for_node(n)); |
829 n->dump(); |
829 n->dump(); |
830 if (Verbose) { |
830 if (Verbose) { |
831 tty->print("# ready list:"); |
831 tty->print("# ready list:"); |
832 for( uint i=0; i<worklist.size(); i++ ) { // Inspect entire worklist |
832 for( uint i=0; i<worklist.size(); i++ ) { // Inspect entire worklist |
833 Node *n = worklist[i]; // Get Node on worklist |
833 Node *n = worklist[i]; // Get Node on worklist |