Lines Matching defs:flow

110   void merge( OopFlow *flow, int max_reg );
112 // Copy a 'flow' over an existing flow
113 void clone( OopFlow *flow, int max_size);
118 // Build an oopmap from the current flow info
181 // Merge the given flow into the 'this' flow
182 void OopFlow::merge( OopFlow *flow, int max_reg ) {
183 assert( _b == NULL, "merging into a happy flow" );
184 assert( flow->_b, "this flow is still alive" );
185 assert( flow != this, "no self flow" );
191 if( _callees[i] != flow->_callees[i] )
194 if( _defs[i] != flow->_defs[i] )
201 void OopFlow::clone( OopFlow *flow, int max_size ) {
202 _b = flow->_b;
203 memcpy( _callees, flow->_callees, sizeof(short)*max_size);
204 memcpy( _defs , flow->_defs , sizeof(Node*)*max_size);
212 OopFlow *flow = new (A) OopFlow(callees+1, defs+1, C);
213 assert( &flow->_callees[OptoReg::Bad] == callees, "Ok to index at OptoReg::Bad" );
214 assert( &flow->_defs [OptoReg::Bad] == defs , "Ok to index at OptoReg::Bad" );
215 return flow;
227 // Build an oopmap from the current flow info
630 OopFlow *flow = NULL; // Flag for finding optimized flow
652 flow = p_flow;
658 if( flow ) {
664 flow = free_list;
665 assert( flow->_b == NULL, "oopFlow is not free" );
666 free_list = flow->_next;
667 flow->_next = NULL;
670 flow->clone(flows[pred->_pre_order], max_reg);
673 // Mark flow for block. Blocks can only be flowed over once,
676 assert( flow->_b == pred, "have some prior flow" );
677 flow->_b = NULL;
679 // Now push flow forward
680 flows[b->_pre_order] = flow;// Mark flow for this block
681 flow->_b = b;
682 flow->compute_reach( _regalloc, max_reg, safehash );