mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-23 12:34:32 +02:00
8007294: ReduceFieldZeroing doesn't check for dependent load and can lead to incorrect execution
InitializeNode::can_capture_store() must check that the captured store doesn't overwrite a memory location that is loaded before the store. Reviewed-by: kvn
This commit is contained in:
parent
c444c1faea
commit
fe92862089
5 changed files with 206 additions and 7 deletions
|
@ -1072,11 +1072,11 @@ public:
|
|||
|
||||
// See if this store can be captured; return offset where it initializes.
|
||||
// Return 0 if the store cannot be moved (any sort of problem).
|
||||
intptr_t can_capture_store(StoreNode* st, PhaseTransform* phase);
|
||||
intptr_t can_capture_store(StoreNode* st, PhaseTransform* phase, bool can_reshape);
|
||||
|
||||
// Capture another store; reformat it to write my internal raw memory.
|
||||
// Return the captured copy, else NULL if there is some sort of problem.
|
||||
Node* capture_store(StoreNode* st, intptr_t start, PhaseTransform* phase);
|
||||
Node* capture_store(StoreNode* st, intptr_t start, PhaseTransform* phase, bool can_reshape);
|
||||
|
||||
// Find captured store which corresponds to the range [start..start+size).
|
||||
// Return my own memory projection (meaning the initial zero bits)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue