325 Node *split_Rematerialize(Node *def, Block *b, uint insidx, uint &maxlrg, GrowableArray<uint> splits, |
325 Node *split_Rematerialize(Node *def, Block *b, uint insidx, uint &maxlrg, GrowableArray<uint> splits, |
326 int slidx, uint *lrg2reach, Node **Reachblock, bool walkThru); |
326 int slidx, uint *lrg2reach, Node **Reachblock, bool walkThru); |
327 // True if lidx is used before any real register is def'd in the block |
327 // True if lidx is used before any real register is def'd in the block |
328 bool prompt_use( Block *b, uint lidx ); |
328 bool prompt_use( Block *b, uint lidx ); |
329 Node *get_spillcopy_wide( Node *def, Node *use, uint uidx ); |
329 Node *get_spillcopy_wide( Node *def, Node *use, uint uidx ); |
330 // Insert the spill at chosen location. Skip over any interveneing Proj's or |
330 // Insert the spill at chosen location. Skip over any intervening Proj's or |
331 // Phis. Skip over a CatchNode and projs, inserting in the fall-through block |
331 // Phis. Skip over a CatchNode and projs, inserting in the fall-through block |
332 // instead. Update high-pressure indices. Create a new live range. |
332 // instead. Update high-pressure indices. Create a new live range. |
333 void insert_proj( Block *b, uint i, Node *spill, uint maxlrg ); |
333 void insert_proj( Block *b, uint i, Node *spill, uint maxlrg ); |
334 |
334 |
335 bool is_high_pressure( Block *b, LRG *lrg, uint insidx ); |
335 bool is_high_pressure( Block *b, LRG *lrg, uint insidx ); |
429 |
429 |
430 // Simplify the IFG by removing LRGs of low degree |
430 // Simplify the IFG by removing LRGs of low degree |
431 void Simplify(); |
431 void Simplify(); |
432 |
432 |
433 // Select colors by re-inserting edges into the IFG. |
433 // Select colors by re-inserting edges into the IFG. |
434 // Return TRUE if any spills occured. |
434 // Return TRUE if any spills occurred. |
435 uint Select( ); |
435 uint Select( ); |
436 // Helper function for select which allows biased coloring |
436 // Helper function for select which allows biased coloring |
437 OptoReg::Name choose_color( LRG &lrg, int chunk ); |
437 OptoReg::Name choose_color( LRG &lrg, int chunk ); |
438 // Helper function which implements biasing heuristic |
438 // Helper function which implements biasing heuristic |
439 OptoReg::Name bias_color( LRG &lrg, int chunk ); |
439 OptoReg::Name bias_color( LRG &lrg, int chunk ); |