src/share/vm/opto/superword.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 7069452 Sdiff src/share/vm/opto

src/share/vm/opto/superword.hpp

Print this page




 343   int adjacent_profit(Node* s1, Node* s2);
 344   int pack_cost(int ct);
 345   int unpack_cost(int ct);
 346   // Combine packs A and B with A.last == B.first into A.first..,A.last,B.second,..B.last
 347   void combine_packs();
 348   // Construct the map from nodes to packs.
 349   void construct_my_pack_map();
 350   // Remove packs that are not implemented or not profitable.
 351   void filter_packs();
 352   // Adjust the memory graph for the packed operations
 353   void schedule();
 354   // Remove "current" from its current position in the memory graph and insert
 355   // it after the appropriate insert points (lip or uip);
 356   void remove_and_insert(MemNode *current, MemNode *prev, MemNode *lip, Node *uip, Unique_Node_List &schd_before);
 357   // Within a store pack, schedule stores together by moving out the sandwiched memory ops according
 358   // to dependence info; and within a load pack, move loads down to the last executed load.
 359   void co_locate_pack(Node_List* p);
 360   // Convert packs into vector node operations
 361   void output();
 362   // Create a vector operand for the nodes in pack p for operand: in(opd_idx)
 363   VectorNode* vector_opd(Node_List* p, int opd_idx);
 364   // Can code be generated for pack p?
 365   bool implemented(Node_List* p);
 366   // For pack p, are all operands and all uses (with in the block) vector?
 367   bool profitable(Node_List* p);
 368   // If a use of pack p is not a vector use, then replace the use with an extract operation.
 369   void insert_extracts(Node_List* p);
 370   // Is use->in(u_idx) a vector use?
 371   bool is_vector_use(Node* use, int u_idx);
 372   // Construct reverse postorder list of block members
 373   void construct_bb();
 374   // Initialize per node info
 375   void initialize_bb();
 376   // Insert n into block after pos
 377   void bb_insert_after(Node* n, int pos);
 378   // Compute max depth for expressions from beginning of block
 379   void compute_max_depth();
 380   // Compute necessary vector element type for expressions
 381   void compute_vector_element_type();
 382   // Are s1 and s2 in a pack pair and ordered as s1,s2?
 383   bool in_packset(Node* s1, Node* s2);




 343   int adjacent_profit(Node* s1, Node* s2);
 344   int pack_cost(int ct);
 345   int unpack_cost(int ct);
 346   // Combine packs A and B with A.last == B.first into A.first..,A.last,B.second,..B.last
 347   void combine_packs();
 348   // Construct the map from nodes to packs.
 349   void construct_my_pack_map();
 350   // Remove packs that are not implemented or not profitable.
 351   void filter_packs();
 352   // Adjust the memory graph for the packed operations
 353   void schedule();
 354   // Remove "current" from its current position in the memory graph and insert
 355   // it after the appropriate insert points (lip or uip);
 356   void remove_and_insert(MemNode *current, MemNode *prev, MemNode *lip, Node *uip, Unique_Node_List &schd_before);
 357   // Within a store pack, schedule stores together by moving out the sandwiched memory ops according
 358   // to dependence info; and within a load pack, move loads down to the last executed load.
 359   void co_locate_pack(Node_List* p);
 360   // Convert packs into vector node operations
 361   void output();
 362   // Create a vector operand for the nodes in pack p for operand: in(opd_idx)
 363   Node* vector_opd(Node_List* p, int opd_idx);
 364   // Can code be generated for pack p?
 365   bool implemented(Node_List* p);
 366   // For pack p, are all operands and all uses (with in the block) vector?
 367   bool profitable(Node_List* p);
 368   // If a use of pack p is not a vector use, then replace the use with an extract operation.
 369   void insert_extracts(Node_List* p);
 370   // Is use->in(u_idx) a vector use?
 371   bool is_vector_use(Node* use, int u_idx);
 372   // Construct reverse postorder list of block members
 373   void construct_bb();
 374   // Initialize per node info
 375   void initialize_bb();
 376   // Insert n into block after pos
 377   void bb_insert_after(Node* n, int pos);
 378   // Compute max depth for expressions from beginning of block
 379   void compute_max_depth();
 380   // Compute necessary vector element type for expressions
 381   void compute_vector_element_type();
 382   // Are s1 and s2 in a pack pair and ordered as s1,s2?
 383   bool in_packset(Node* s1, Node* s2);


src/share/vm/opto/superword.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File