Reviewers: Kevin Millikin,
Message:
Please take a look. This change prevents invalid reuse of elements after
ElementsKindTransitions. To make that work, it allows hoisting and GVN on
values
that have side effects but don't make "observable" changes (feel free to
suggest
another name). These side effects don't require Simulates.
Downside: GVN must be done repeatedly, since removing values with side
effects
enable further GVN.
Description:
Add and use ElementsKind side effect
Also partition side effects into observable and not observable, with only
observable requiring Simulates and non-observable changes able to
participate in
GVN and code hoisting.
BUG=none
TEST=none
Please review this at http://codereview.chromium.org/8380017/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files:
M src/arm/lithium-arm.cc
M src/hydrogen-instructions.h
M src/hydrogen-instructions.cc
M src/hydrogen.cc
M src/ia32/lithium-ia32.cc
M src/x64/lithium-x64.cc
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev