Go to file
vegorov@chromium.org 6703dddac4 Support fast case for-in in Crankshaft.
Only JSObject enumerables with enum cache (fast case properties, no interceptors, no enumerable properties on the prototype) are supported.

HLoadKeyedGeneric with keys produced by for-in enumeration are recognized and rewritten into direct property load by index. For this enum-cache was extended to store property indices in a separate array (see handles.cc).

New hydrogen instructions:

- HForInPrepareMap: checks for-in fast case preconditions and returns map that contains enum-cache;
- HForInCacheArray: extracts enum-cache array from the map;
- HCheckMapValue: map check with HValue map instead of immediate;
- HLoadFieldByIndex: load fast property by it's index, positive indexes denote in-object properties, negative - out of object properties;

Changed hydrogen instructions:

- HLoadKeyedFastElement: added hole check suppression for loads from internal FixedArrays that are knows to have no holes inside.

R=fschneider@chromium.org
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9425045

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10794 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-22 12:47:42 +00:00
benchmarks Add Navier-Stokes benchmark. 2012-02-14 15:07:15 +00:00
build Rename static methods to avoid shadowing virtual methods 2012-02-17 12:59:58 +00:00
include Make built-ins strict mode conforming, and support a --use-strict flag. 2012-02-20 13:48:24 +00:00
preparser Prevent segfault when preparser fails due to lack of argument. 2012-02-22 10:31:32 +00:00
samples Fix presubmit errors caused by updated depot tools 2011-09-08 19:57:14 +00:00
src Support fast case for-in in Crankshaft. 2012-02-22 12:47:42 +00:00
test Support fast case for-in in Crankshaft. 2012-02-22 12:47:42 +00:00
tools In gcmole assume that methods exiting VM can cause GC. 2012-02-17 11:34:50 +00:00
.gitignore Fix .gitignore for test data directories. 2012-02-20 13:17:20 +00:00
AUTHORS Fix compilation with MinGW-w64. 2012-02-22 12:26:36 +00:00
ChangeLog Prepare push to trunk. Now working on version 3.9.9. 2012-02-21 10:01:54 +00:00
LICENSE Update LICENSE file 2012-01-03 16:38:42 +00:00
LICENSE.strongtalk Add LICENSE.v8, LICENSE.strongtalk and LICENSE.valgrind to the v8 2011-02-03 07:10:06 +00:00
LICENSE.v8 Add LICENSE.v8, LICENSE.strongtalk and LICENSE.valgrind to the v8 2011-02-03 07:10:06 +00:00
LICENSE.valgrind Add LICENSE.v8, LICENSE.strongtalk and LICENSE.valgrind to the v8 2011-02-03 07:10:06 +00:00
Makefile Provide a switch to specify -fno-strict-aliasing 2012-01-18 10:17:03 +00:00
SConstruct Fix compilation with MinGW-w64. 2012-02-22 12:26:36 +00:00