Mercurial > hg > graal-compiler
comparison src/share/vm/opto/node.cpp @ 8116:6931f425c517
8007294: ReduceFieldZeroing doesn't check for dependent load and can lead to incorrect execution
Summary: 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
author | roland |
---|---|
date | Mon, 25 Feb 2013 14:13:04 +0100 |
parents | 8b3da8d14c93 |
children | 6f3fd5150b67 |
comparison
equal
deleted
inserted
replaced
8097:be1fbee20765 | 8116:6931f425c517 |
---|---|
1259 igvn->C->remove_macro_node(dead); | 1259 igvn->C->remove_macro_node(dead); |
1260 } | 1260 } |
1261 if (dead->is_expensive()) { | 1261 if (dead->is_expensive()) { |
1262 igvn->C->remove_expensive_node(dead); | 1262 igvn->C->remove_expensive_node(dead); |
1263 } | 1263 } |
1264 igvn->C->record_dead_node(dead->_idx); | |
1264 // Kill all inputs to the dead guy | 1265 // Kill all inputs to the dead guy |
1265 for (uint i=0; i < dead->req(); i++) { | 1266 for (uint i=0; i < dead->req(); i++) { |
1266 Node *n = dead->in(i); // Get input to dead guy | 1267 Node *n = dead->in(i); // Get input to dead guy |
1267 if (n != NULL && !n->is_top()) { // Input is valid? | 1268 if (n != NULL && !n->is_top()) { // Input is valid? |
1268 dead->set_req(i, top); // Smash input away | 1269 dead->set_req(i, top); // Smash input away |