Lines Matching defs:worklist

399 // Select a nice fellow from the worklist to schedule next. If there is only
408 Node *Block::select(PhaseCFG *cfg, Node_List &worklist, GrowableArray<int> &ready_cnt, VectorSet &next_call, uint sched_slot) {
411 uint cnt = worklist.size();
413 Node *n = worklist[0];
414 worklist.map(0,worklist.pop());
421 int idx = -1; // Index in worklist
423 for( uint i=0; i<cnt; i++ ) { // Inspect entire worklist
424 // Order in worklist is used to break ties.
428 Node *n = worklist[i]; // Get Node on worklist
436 worklist.map(i,worklist.pop());
512 idx = i; // Also keep index in worklist
514 } // End of for all ready nodes in worklist
517 Node *n = worklist[(uint)idx]; // Get the winner
519 worklist.map((uint)idx, worklist.pop()); // Compress worklist
574 uint Block::sched_call( Matcher &matcher, Block_Array &bbs, uint node_cnt, Node_List &worklist, GrowableArray<int> &ready_cnt, MachCallNode *mcall, VectorSet &next_call ) {
603 worklist.push(m);
757 // Make a worklist
758 Node_List worklist;
759 for(uint i4=i3; i4<node_cnt; i4++ ) { // Put ready guys on worklist
765 // ties in scheduling by worklist order.
770 worklist.insert(0, m);
772 worklist.push(m); // Then on to worklist!
778 worklist.push(d);
797 // Pull from worklist and schedule
798 while( worklist.size() ) { // Worklist is not ready
803 for( uint i=0; i<worklist.size(); i++ ) { // Inspect entire worklist
804 Node *n = worklist[i]; // Get Node on worklist
811 // Select and pop a ready guy from worklist
812 Node* n = select(cfg, worklist, ready_cnt, next_call, phi_cnt);
822 for( uint i=0; i<worklist.size(); i++ ) { // Inspect entire worklist
823 Node *n = worklist[i]; // Get Node on worklist
833 phi_cnt = sched_call(matcher, cfg->_bbs, phi_cnt, worklist, ready_cnt, mcall, next_call);
861 worklist.push(m);