I verified performance previously. Except for the usual flakes, it actually
slightly improves stanford-crypto-ccm; so probably there was a slight
inconsistency in previous parsing of int/double arrays.


https://codereview.chromium.org/11361281/diff/4001/src/parser.cc
File src/parser.cc (right):

https://codereview.chromium.org/11361281/diff/4001/src/parser.cc#newcode3726
src/parser.cc:3726: bool is_holey = false;
The reason is that I preallocate the full backing store. To do this
properly, I need to also set the length already. Otherwise, the
conversion from smi to double, or double to object, may cause the array
to go into dictionary mode since it looks sparse (when a large part of
the array isn't filled in yet). Of course, when I set the length to
something larger than the values already present, the type has to be
HOLEY. Hence I have to keep track of holeyness by hand.

On 2012/11/27 09:03:57, danno wrote:
Can't you automatically track holiness through SetOwnElement? If you
skip an
element, the array's elements kind should become holey.

https://codereview.chromium.org/11361281/diff/4001/src/parser.cc#newcode3739
src/parser.cc:3739: } else if (!boilerplate_value->IsTheHole()) {
On 2012/11/27 09:03:57, danno wrote:
You already know !boilerplate_value->IsTheHole() is true, since you
checked
above.

Done.

https://codereview.chromium.org/11361281/diff/4001/src/parser.cc#newcode3758
src/parser.cc:3758: kind = is_holey ? GetHoleyElementsKind(kind) :
GetPackedElementsKind(kind);
Unfortunately it is...

On 2012/11/27 09:03:57, danno wrote:
Shouldn't be necessary, see above.

https://codereview.chromium.org/11361281/

--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to