src/hotspot/share/opto/memnode.hpp
changeset 58751 0f882d53c204
parent 58516 d376d86b0a01
child 59025 b398685dd029
equal deleted inserted replaced
58750:c8d42aa9359a 58751:0f882d53c204
  1385   bool stores_are_sane(PhaseTransform* phase);
  1385   bool stores_are_sane(PhaseTransform* phase);
  1386 #endif //ASSERT
  1386 #endif //ASSERT
  1387 
  1387 
  1388   // See if this store can be captured; return offset where it initializes.
  1388   // See if this store can be captured; return offset where it initializes.
  1389   // Return 0 if the store cannot be moved (any sort of problem).
  1389   // Return 0 if the store cannot be moved (any sort of problem).
  1390   intptr_t can_capture_store(StoreNode* st, PhaseTransform* phase, bool can_reshape);
  1390   intptr_t can_capture_store(StoreNode* st, PhaseGVN* phase, bool can_reshape);
  1391 
  1391 
  1392   // Capture another store; reformat it to write my internal raw memory.
  1392   // Capture another store; reformat it to write my internal raw memory.
  1393   // Return the captured copy, else NULL if there is some sort of problem.
  1393   // Return the captured copy, else NULL if there is some sort of problem.
  1394   Node* capture_store(StoreNode* st, intptr_t start, PhaseTransform* phase, bool can_reshape);
  1394   Node* capture_store(StoreNode* st, intptr_t start, PhaseGVN* phase, bool can_reshape);
  1395 
  1395 
  1396   // Find captured store which corresponds to the range [start..start+size).
  1396   // Find captured store which corresponds to the range [start..start+size).
  1397   // Return my own memory projection (meaning the initial zero bits)
  1397   // Return my own memory projection (meaning the initial zero bits)
  1398   // if there is no such store.  Return NULL if there is a problem.
  1398   // if there is no such store.  Return NULL if there is a problem.
  1399   Node* find_captured_store(intptr_t start, int size_in_bytes, PhaseTransform* phase);
  1399   Node* find_captured_store(intptr_t start, int size_in_bytes, PhaseTransform* phase);
  1412 
  1412 
  1413   static intptr_t get_store_offset(Node* st, PhaseTransform* phase);
  1413   static intptr_t get_store_offset(Node* st, PhaseTransform* phase);
  1414 
  1414 
  1415   Node* make_raw_address(intptr_t offset, PhaseTransform* phase);
  1415   Node* make_raw_address(intptr_t offset, PhaseTransform* phase);
  1416 
  1416 
  1417   bool detect_init_independence(Node* n, int& count);
  1417   bool detect_init_independence(Node* value, PhaseGVN* phase);
  1418 
  1418 
  1419   void coalesce_subword_stores(intptr_t header_size, Node* size_in_bytes,
  1419   void coalesce_subword_stores(intptr_t header_size, Node* size_in_bytes,
  1420                                PhaseGVN* phase);
  1420                                PhaseGVN* phase);
  1421 
  1421 
  1422   intptr_t find_next_fullword_store(uint i, PhaseGVN* phase);
  1422   intptr_t find_next_fullword_store(uint i, PhaseGVN* phase);