339 void construct_my_pack_map(); |
339 void construct_my_pack_map(); |
340 // Remove packs that are not implemented or not profitable. |
340 // Remove packs that are not implemented or not profitable. |
341 void filter_packs(); |
341 void filter_packs(); |
342 // Adjust the memory graph for the packed operations |
342 // Adjust the memory graph for the packed operations |
343 void schedule(); |
343 void schedule(); |
344 // Within a pack, move stores down to the last executed store, |
344 // Remove "current" from its current position in the memory graph and insert |
345 // and move loads up to the first executed load. |
345 // it after the appropriate insert points (lip or uip); |
|
346 void remove_and_insert(MemNode *current, MemNode *prev, MemNode *lip, Node *uip, Unique_Node_List &schd_before); |
|
347 // Within a store pack, schedule stores together by moving out the sandwiched memory ops according |
|
348 // to dependence info; and within a load pack, move loads down to the last executed load. |
346 void co_locate_pack(Node_List* p); |
349 void co_locate_pack(Node_List* p); |
347 // Convert packs into vector node operations |
350 // Convert packs into vector node operations |
348 void output(); |
351 void output(); |
349 // Create a vector operand for the nodes in pack p for operand: in(opd_idx) |
352 // Create a vector operand for the nodes in pack p for operand: in(opd_idx) |
350 VectorNode* vector_opd(Node_List* p, int opd_idx); |
353 VectorNode* vector_opd(Node_List* p, int opd_idx); |