DescriptionA performance regression in array literal creation was caused by refactoring that eliminated a special fast case for shallow arrays. At the same time the general case got a bit slower. This CL restores most of the performance without coding the special fast case. The virtual dispatching is unnecessary because we know what we want to do at compile time. A flag was added to Runtime::CreateArrayLiteral. The flags delivers information about shallowness but also whether or not allocation mementos should be created. This is useful for crankshafted code.
BUG=v8:3008
LOG=N
R=mstarzinger@chromium.org
Committed: https://code.google.com/p/v8/source/detail?r=18046
Patch Set 1 #Patch Set 2 : Restore depth to materialized literal expression #Patch Set 3 : REBASE #Patch Set 4 : Removed some unnecessary changes. #
Total comments: 2
Patch Set 5 : Reduced 10% to 3% degrade, removed special case. #
Total comments: 6
Patch Set 6 : Replaced magic boolean with an enum #Patch Set 7 : Platform ports #
Messages
Total messages: 6 (0 generated)
|