https://chromiumcodereview.appspot.com/23241027/diff/7001/src/hydrogen-instructions.cc
File src/hydrogen-instructions.cc (right):

https://chromiumcodereview.appspot.com/23241027/diff/7001/src/hydrogen-instructions.cc#newcode3940
src/hydrogen-instructions.cc:3940: if (FieldTypeField::decode(value_) ==
CONSTANT) return;
Mmmm, this is starting to make me feel uncomfortable.

Here is the problem. With a CONSTANT load, it no longer depends on _any_
GVN flags. But you can also have a CONSTANT store, which doesn't change
_any_ GVN flags (but does depend on NewSpacePromotion--which is somewhat
weird). The problem is that once those flags are gone, all bets are off.
The load could get lifted above the store, and then it will get the
uninitialized value, not the stored value.

We are likely to get lucky just because GVN and LICM always lift
instructions in their original order. That is not always going to be the
case.

We should express the load/store dependency here with an explicit
edge--i.e. the load depends directly on the store.

In the future we will have load/store elimination, but even then, we
need to make this dependency explicit.

https://chromiumcodereview.appspot.com/23241027/

--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to