platform/upstream/v8.git
9 years agoOptimize add/set/delete operations for string keys in Maps and Sets
Adam Klein [Fri, 5 Dec 2014 21:03:50 +0000 (13:03 -0800)]
Optimize add/set/delete operations for string keys in Maps and Sets

This was previously landed in commit 66e2f60, but failed the
collections mjsunit test with --deopt-every-n=1 due to a typo
in the shrinking code. This patch corrects and simplifies the
shrinking logic, and the tests now pass.

R=dslomov@chromium.org

Review URL: https://codereview.chromium.org/777663003

Cr-Commit-Position: refs/heads/master@{#25695}

9 years agoOptimize GetPrototype
arv [Fri, 5 Dec 2014 20:36:39 +0000 (12:36 -0800)]
Optimize GetPrototype

This introduces Hydrogen for %_GetPrototype. The code falls back on
runtime if the object needs access checks or if its prototype is a
hidden prototype.

BUG=None
LOG=Y
R=dslomov@chromium.org

Review URL: https://codereview.chromium.org/756423006

Cr-Commit-Position: refs/heads/master@{#25694}

9 years agoMIPS64: Fix port of Refactor Map::ConstructionCount.
paul.lind [Fri, 5 Dec 2014 19:30:47 +0000 (11:30 -0800)]
MIPS64: Fix port of Refactor Map::ConstructionCount.

Port 35ff259b6344eed116936372f6861181c6afe922.

BUG=

Review URL: https://codereview.chromium.org/756383005

Cr-Commit-Position: refs/heads/master@{#25693}

9 years agoMIPS: Refactor Map::ConstructionCount.
balazs.kilvady [Fri, 5 Dec 2014 17:49:29 +0000 (09:49 -0800)]
MIPS: Refactor Map::ConstructionCount.

Port 35ff259b6344eed116936372f6861181c6afe922

Original commit message:
This combines Map::DoneInobjectSlackTracking and Map::ConstructionCount into one more generic 4-bit counter.

Counter values from 15 down to 8 are used for in-object slack tracking, values from 7 down to 0 are free to be used for a new counter when in-object slack tracking is inactive

BUG=

Review URL: https://codereview.chromium.org/780303003

Cr-Commit-Position: refs/heads/master@{#25692}

9 years agoGN: Enable embedder to decide whether or not the external V8 snapshot is enabled.
baixo [Fri, 5 Dec 2014 17:22:40 +0000 (09:22 -0800)]
GN: Enable embedder to decide whether or not the external V8 snapshot is enabled.

BUG=421063

Review URL: https://codereview.chromium.org/749213004

Cr-Commit-Position: refs/heads/master@{#25691}

9 years agoMake sure that individual shipping features can be disabled.
dslomov [Fri, 5 Dec 2014 15:35:32 +0000 (07:35 -0800)]
Make sure that individual shipping features can be disabled.

R=rossberg@chromium.org

Review URL: https://codereview.chromium.org/779203005

Cr-Commit-Position: refs/heads/master@{#25690}

9 years agoRefactor Map::ConstructionCount.
ulan [Fri, 5 Dec 2014 15:28:09 +0000 (07:28 -0800)]
Refactor Map::ConstructionCount.

This combines Map::DoneInobjectSlackTracking and Map::ConstructionCount into one more generic 4-bit counter.

Counter values from 15 down to 8 are used for in-object slack tracking, values from 7 down to 0 are free to be used for a new counter when in-object slack tracking is inactive.

Review URL: https://codereview.chromium.org/767253002

Cr-Commit-Position: refs/heads/master@{#25689}

9 years agonew api for adding indexed interceptors
dcarney [Fri, 5 Dec 2014 15:21:21 +0000 (07:21 -0800)]
new api for adding indexed interceptors

R=svenpanne@chromium.org

BUG=

Review URL: https://codereview.chromium.org/765883003

Cr-Commit-Position: refs/heads/master@{#25688}

9 years agoFix %GetWeakSetValues to work correctly with GC.
ulan [Fri, 5 Dec 2014 13:26:55 +0000 (05:26 -0800)]
Fix %GetWeakSetValues to work correctly with GC.

This fixes mjsunit/es6/mirror-collections failure in arm64 gc-stress bot.

BUG=

Review URL: https://codereview.chromium.org/783673002

Cr-Commit-Position: refs/heads/master@{#25687}

9 years agoAllow eval in detached contexts
verwaest [Fri, 5 Dec 2014 13:24:58 +0000 (05:24 -0800)]
Allow eval in detached contexts

BUG=

Review URL: https://codereview.chromium.org/781953002

Cr-Commit-Position: refs/heads/master@{#25686}

9 years ago[turbofan] disable neutering on embedded arraybuffers
dcarney [Fri, 5 Dec 2014 13:07:51 +0000 (05:07 -0800)]
[turbofan] disable neutering on embedded arraybuffers

R=titzer@chromium.org,

BUG=

Review URL: https://codereview.chromium.org/781933002

Cr-Commit-Position: refs/heads/master@{#25685}

9 years agoFix the order of context binding/simulate insertion for BlockContexts.
dslomov [Fri, 5 Dec 2014 13:06:45 +0000 (05:06 -0800)]
Fix the order of context binding/simulate insertion for BlockContexts.

R=jarin@chromium.org
BUG=v8:3741
LOG=N

Review URL: https://codereview.chromium.org/762393008

Cr-Commit-Position: refs/heads/master@{#25684}

9 years ago[turbofan] Fix Corrections tankage on x64.
danno [Fri, 5 Dec 2014 13:05:38 +0000 (05:05 -0800)]
[turbofan] Fix Corrections tankage on x64.

R=bmeurer@chromium.org

Review URL: https://codereview.chromium.org/771073003

Cr-Commit-Position: refs/heads/master@{#25683}

9 years agoSwitch two ZoneLists to ZoneVector in register allocator.
mstarzinger [Fri, 5 Dec 2014 13:04:29 +0000 (05:04 -0800)]
Switch two ZoneLists to ZoneVector in register allocator.

R=dcarney@chromium.org

Review URL: https://codereview.chromium.org/778093003

Cr-Commit-Position: refs/heads/master@{#25682}

9 years agoReland "Encode reservation meta data in the snapshot blob."
yangguo [Fri, 5 Dec 2014 13:03:10 +0000 (05:03 -0800)]
Reland "Encode reservation meta data in the snapshot blob."

CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_nosnap_dbg,v8_linux_nosnap_rel

Review URL: https://codereview.chromium.org/781943002

Cr-Commit-Position: refs/heads/master@{#25681}

9 years agoCleanup deoptimizer relocation slot preparation.
mstarzinger [Fri, 5 Dec 2014 13:01:58 +0000 (05:01 -0800)]
Cleanup deoptimizer relocation slot preparation.

R=titzer@chromium.org

Review URL: https://codereview.chromium.org/782703002

Cr-Commit-Position: refs/heads/master@{#25680}

9 years agoWhen generating code for ia32, make sure that there is enough reloc space
jochen [Fri, 5 Dec 2014 11:15:20 +0000 (03:15 -0800)]
When generating code for ia32, make sure that there is enough reloc space

Compare with LCodeGen::FinishCode

BUG=none
R=jarin@chromium.org,mstarzinger@chromium.org
LOG=n

Review URL: https://codereview.chromium.org/777243002

Cr-Commit-Position: refs/heads/master@{#25679}

9 years agoFinally drop outdated misleading runtime.js comment.
mstarzinger [Fri, 5 Dec 2014 11:01:29 +0000 (03:01 -0800)]
Finally drop outdated misleading runtime.js comment.

R=bmeurer@chromium.org

Review URL: https://codereview.chromium.org/765833004

Cr-Commit-Position: refs/heads/master@{#25678}

9 years ago[turbofan] Use "leal" in even more situations
danno [Fri, 5 Dec 2014 10:54:27 +0000 (02:54 -0800)]
[turbofan] Use "leal" in even more situations

Achieve more than parity with modes currently handled on ia32 in preparation for
porting the entire mechanism to ia32, including supporting mul of constants 3,
5 and 9 with "leal" instructions.

TEST=unittests

Review URL: https://codereview.chromium.org/774193003

Cr-Commit-Position: refs/heads/master@{#25677}

9 years ago[x86] Slow case of TruncateDoubleToI shouldn't be inline.
Benedikt Meurer [Fri, 5 Dec 2014 09:29:27 +0000 (10:29 +0100)]
[x86] Slow case of TruncateDoubleToI shouldn't be inline.

R=svenpanne@chromium.org

Review URL: https://codereview.chromium.org/778113002

Cr-Commit-Position: refs/heads/master@{#25676}

9 years agoTeach the test runner whether it's running on a trybot or not
jochen [Fri, 5 Dec 2014 09:09:13 +0000 (01:09 -0800)]
Teach the test runner whether it's running on a trybot or not

BUG=none
R=machenbach@chromium.org
LOG=n

Review URL: https://codereview.chromium.org/781763002

Cr-Commit-Position: refs/heads/master@{#25675}

9 years agoUse merged JSTest config for performance tests.
machenbach [Fri, 5 Dec 2014 08:43:12 +0000 (00:43 -0800)]
Use merged JSTest config for performance tests.

The new config is now used for perf measurements. The old
ones are deleted to avoid redundancy.

This also ports https://codereview.chromium.org/754523004 to the new config file.

BUG=chromium:374740
LOG=n
TBR=ulan@chromium.org
NOTRY=true

Review URL: https://codereview.chromium.org/782673003

Cr-Commit-Position: refs/heads/master@{#25674}

9 years ago[turbofan] Redundant load elimination.
Benedikt Meurer [Fri, 5 Dec 2014 07:59:04 +0000 (08:59 +0100)]
[turbofan] Redundant load elimination.

This is an initial version of redundant load elimination, currently
limited to LoadField operators, and implemented by walking the effect
chain.

TEST=unittests
R=svenpanne@chromium.org

Review URL: https://codereview.chromium.org/782473002

Cr-Commit-Position: refs/heads/master@{#25673}

9 years agoUpdate V8 DEPS.
v8-autoroll [Fri, 5 Dec 2014 04:27:41 +0000 (20:27 -0800)]
Update V8 DEPS.

TBR=machenbach@chromium.org

Review URL: https://codereview.chromium.org/777373002

Cr-Commit-Position: refs/heads/master@{#25672}

9 years agoMIPS: Fixed environment handling for LFlooringDivI.
paul.lind [Thu, 4 Dec 2014 23:50:26 +0000 (15:50 -0800)]
MIPS: Fixed environment handling for LFlooringDivI.

Port c16b8f6cbbe295abf3fab2f6b9f4a4632db4cf6b

TEST=mjsunit/regress/regress-437765
BUG=

Review URL: https://codereview.chromium.org/750213003

Cr-Commit-Position: refs/heads/master@{#25671}

9 years agoRevert of Optimize add/set/delete operations for string keys in Maps and Sets (patchs...
adamk [Thu, 4 Dec 2014 21:37:10 +0000 (13:37 -0800)]
Revert of Optimize add/set/delete operations for string keys in Maps and Sets (patchset #5 id:70001 of https://codereview.chromium.org/773993002/)

Reason for revert:
Caused test failures in mjsunit/es6/collections with --deopt-every-n-times=1

Original issue's description:
> Optimize add/set/delete operations for string keys in Maps and Sets

TBR=dslomov@chromium.org,arv@chromium.org
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/777233003

Cr-Commit-Position: refs/heads/master@{#25670}

9 years agoAdd js-perf-test for ES6 class default constructor
arv [Thu, 4 Dec 2014 20:12:03 +0000 (12:12 -0800)]
Add js-perf-test for ES6 class default constructor

BUG=v8:3330
LOG=N
TBR=dslomov@chromium.org

Review URL: https://codereview.chromium.org/754523004

Cr-Commit-Position: refs/heads/master@{#25669}

9 years agoOptimize add/set/delete operations for string keys in Maps and Sets
adamk [Thu, 4 Dec 2014 20:07:41 +0000 (12:07 -0800)]
Optimize add/set/delete operations for string keys in Maps and Sets

Review URL: https://codereview.chromium.org/773993002

Cr-Commit-Position: refs/heads/master@{#25668}

9 years agoMake template scan related function take a template<bool> parameter
arv [Thu, 4 Dec 2014 19:24:18 +0000 (11:24 -0800)]
Make template scan related function take a template<bool> parameter

This is for performance. Having to do the test in every Advance was too
expensive.

BUG=438991, v8:3230
LOG=N
R=dslomov@chromium.org, marja

Review URL: https://codereview.chromium.org/766193003

Cr-Commit-Position: refs/heads/master@{#25667}

9 years agoCleanup: Remove NativesCollection<.>::*Raw* methods.
vogelheim [Thu, 4 Dec 2014 18:51:15 +0000 (10:51 -0800)]
Cleanup: Remove NativesCollection<.>::*Raw* methods.

These methods for used for compressed libraries, where GetSource* functions
contained the compressed sources and [GS]etRawSource* the uncompressed
sources. This is dead code since the API no longer supports compression.

(If you need/want compressed sources, use the external startup data and
 compress/uncompress on the Embedder's side.)

BUG=

Review URL: https://codereview.chromium.org/772853003

Cr-Commit-Position: refs/heads/master@{#25666}

9 years agoOptimize testing for an index's existence in packed Arrays
adamk [Thu, 4 Dec 2014 18:46:33 +0000 (10:46 -0800)]
Optimize testing for an index's existence in packed Arrays

This patch introduces a new inline runtime function,
%_HasFastPackedElements(), and uses it both in the implementation
of the 'in' operator and in the array builtins to speed
up testing for the existence of an index in an array.

In testing with the microbenchmark on the attached bug,
for example, the runtime goes from 326ms to 66ms.

A reviewer might ask whether the HAS_INDEX macro is worthwhile,
and I tried the same example without it, which pushed the
microbenchmark up to 157ms. So it seems it's worth it to
avoid the function call to IN() if we know we're dealing
with arrays and numbers.

BUG=v8:3701
LOG=n

Review URL: https://codereview.chromium.org/754863002

Cr-Commit-Position: refs/heads/master@{#25665}

9 years agoMIPS; Improve checked load/store operators for constant offset and length.
Dusan Milosavljevic [Thu, 4 Dec 2014 17:27:26 +0000 (18:27 +0100)]
MIPS; Improve checked load/store operators for constant offset and length.

TEST=
BUG=
R=balazs.kilvady@imgtec.com, paul.lind@imgtec.com

Review URL: https://codereview.chromium.org/782493002

Cr-Commit-Position: refs/heads/master@{#25664}

9 years agoExplicitly track whether incremental marking was activated
jochen [Thu, 4 Dec 2014 16:44:20 +0000 (08:44 -0800)]
Explicitly track whether incremental marking was activated

In the gc-tracer, we check whether we're marking to figure out which
part of the mark compact we're in. If we aborted incremental marking for
whatever reason, the check fails and we might later run into trouble

BUG=none
R=hpayer@chromium.org
LOG=n

Review URL: https://codereview.chromium.org/783453003

Cr-Commit-Position: refs/heads/master@{#25663}

9 years agoMIPS: Change CmpWeakValue to a more MIPS like GetWeakValue.
balazs.kilvady [Thu, 4 Dec 2014 16:29:01 +0000 (08:29 -0800)]
MIPS: Change CmpWeakValue to a more MIPS like GetWeakValue.

This approach saves one instruction by eliminating the use of Subu as a
pseudo-comparison.

BUG=

Review URL: https://codereview.chromium.org/779793004

Cr-Commit-Position: refs/heads/master@{#25662}

9 years agoES6 template literals: Fix issue with template after rbrace
arv [Thu, 4 Dec 2014 14:50:09 +0000 (06:50 -0800)]
ES6 template literals: Fix issue with template after rbrace

If we hade }` the right brace was always treated as part of the
template literal. We should only treat the right brace as part of
the literal when we continue to parse the template literal after a
placeholder.

BUG=v8:3734
LOG=Y

Review URL: https://codereview.chromium.org/778813003

Cr-Commit-Position: refs/heads/master@{#25661}

9 years agoCheck whether the marking deque overflowed in ProcessEphemeralMarking
jochen [Thu, 4 Dec 2014 14:09:29 +0000 (06:09 -0800)]
Check whether the marking deque overflowed in ProcessEphemeralMarking

Otherwise, we might exit to early when we call ProcessEphemeralMarking
with an empty, overflown deque

BUG=none
R=hpayer@chromium.org,erik.corry@gmail.com
LOG=n

Review URL: https://codereview.chromium.org/777643002

Cr-Commit-Position: refs/heads/master@{#25660}

9 years agoStage ES6 template literals
arv [Thu, 4 Dec 2014 12:24:30 +0000 (04:24 -0800)]
Stage ES6 template literals

BUG=v8:3230
LOG=Y
R=dslomov@chromium.org, rossberg@chromium.org

Review URL: https://codereview.chromium.org/780603003

Cr-Commit-Position: refs/heads/master@{#25659}

9 years ago[turbofan] Narrow upper bounds during typed lowering.
Benedikt Meurer [Thu, 4 Dec 2014 11:19:28 +0000 (12:19 +0100)]
[turbofan] Narrow upper bounds during typed lowering.

This is a temporary solution, which optionally narrows upper bounds of
nodes when changing the operator of a node.

R=jarin@chromium.org

Review URL: https://codereview.chromium.org/741503006

Cr-Commit-Position: refs/heads/master@{#25658}

9 years agoDo not embed function in DirectLoadGlobalFunctionPrototype.
ulan [Thu, 4 Dec 2014 10:52:33 +0000 (02:52 -0800)]
Do not embed function in DirectLoadGlobalFunctionPrototype.

BUG=v8:3629
LOG=N

Review URL: https://codereview.chromium.org/778673002

Cr-Commit-Position: refs/heads/master@{#25657}

9 years ago[turbofan] Reduce context accesses during typed lowering.
Benedikt Meurer [Thu, 4 Dec 2014 10:50:43 +0000 (11:50 +0100)]
[turbofan] Reduce context accesses during typed lowering.

TEST=unittests
R=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/776243002

Cr-Commit-Position: refs/heads/master@{#25656}

9 years agoMake JSTests ready for Android measurements.
machenbach [Thu, 4 Dec 2014 10:37:36 +0000 (02:37 -0800)]
Make JSTests ready for Android measurements.

This adds a common perf configuration for JSTests including
Classes, Collections, Iterators and Strings. This allows
the android test runner to handle subdirectories correctly
and to share the base.js resource in the parent directory.

The new json config has added resources configs for the
Android runner.

The perf runner's relative paths on the device are fixed as
well. Resources are only pushed on the configuration node
where they are specified. They are pushed to a dir on the
device that follows the same directory structure as on the
host. The binary is executed in the benchmark folder on the
device like on the host to allow relative path file
loading.

BUG=chromium:374740
LOG=n
TEST=python -m unittest run_perf_test
TBR=ulan@chromium.org
NOTRY=true

Review URL: https://codereview.chromium.org/779923002

Cr-Commit-Position: refs/heads/master@{#25655}

9 years agoRevert of Encode reservation meta data in the snapshot blob. (patchset #3 id:40001...
machenbach [Thu, 4 Dec 2014 10:31:13 +0000 (02:31 -0800)]
Revert of Encode reservation meta data in the snapshot blob. (patchset #3 id:40001 of https://codereview.chromium.org/781443002/)

Reason for revert:
[sheriff] Breaks http://build.chromium.org/p/client.v8/builders/V8-Blink%20Linux%2064/builds/1540

Original issue's description:
> Encode reservation meta data in the snapshot blob.
>
> This also makes reserving multiple chunks per object space possible.
>
> R=vogelheim@chromium.org

TBR=vogelheim@chromium.org,baixo@chromium.org,yangguo@chromium.org
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/780833002

Cr-Commit-Position: refs/heads/master@{#25654}

9 years ago[x64] check sahf correctly
weiliang.lin [Thu, 4 Dec 2014 10:13:13 +0000 (02:13 -0800)]
[x64] check sahf correctly

BUG=

Review URL: https://codereview.chromium.org/777173002

Cr-Commit-Position: refs/heads/master@{#25653}

9 years agoEncode reservation meta data in the snapshot blob.
yangguo [Thu, 4 Dec 2014 09:50:27 +0000 (01:50 -0800)]
Encode reservation meta data in the snapshot blob.

This also makes reserving multiple chunks per object space possible.

R=vogelheim@chromium.org

Review URL: https://codereview.chromium.org/781443002

Cr-Commit-Position: refs/heads/master@{#25652}

9 years agoFix path construction in perf runner.
machenbach [Thu, 4 Dec 2014 08:58:01 +0000 (00:58 -0800)]
Fix path construction in perf runner.

BUG=chromium:374740
LOG=n
TEST=python -m unittest run_perf_test
TBR=ulan@chromium.org
NOTRY=true

Review URL: https://codereview.chromium.org/776873005

Cr-Commit-Position: refs/heads/master@{#25651}

9 years agoFix Promise.resolve/Promise.reject unnecessarily scheduling a microtask.
aandrey [Thu, 4 Dec 2014 08:53:23 +0000 (00:53 -0800)]
Fix Promise.resolve/Promise.reject unnecessarily scheduling a microtask.

R=rossberg@chromium.org, yangguo@chromium.org, adamk@chromium.org
LOG=N

Review URL: https://codereview.chromium.org/777703002

Cr-Commit-Position: refs/heads/master@{#25650}

9 years agoX87: Use weak cells to embed maps in store handler.
cdai2 [Thu, 4 Dec 2014 04:32:42 +0000 (12:32 +0800)]
X87: Use weak cells to embed maps in store handler.

port 3fc9c9b665baaa434c672efcbff632a2eae86f56

original commit message:

  Use weak cells to embed maps in store handler.
  BUG=v8:3629
R=weiliang.lin@intel.com

Review URL: https://codereview.chromium.org/779843002

Cr-Commit-Position: refs/heads/master@{#25649}

9 years agoX87: CheckPrototypes uses weak cells to embed maps.
chunyang.dai [Thu, 4 Dec 2014 02:59:52 +0000 (18:59 -0800)]
X87: CheckPrototypes uses weak cells to embed maps.

port 062a032f50291ce181462226ff41b4ef9b11deba

original commit message:

  CheckPrototypes uses weak cells to embed maps.

BUG=

Review URL: https://codereview.chromium.org/761093004

Cr-Commit-Position: refs/heads/master@{#25648}

9 years agoMIPS: Use weak cells to embed maps in store handler.
balazs.kilvady [Wed, 3 Dec 2014 18:32:57 +0000 (10:32 -0800)]
MIPS: Use weak cells to embed maps in store handler.

Port 3fc9c9b665baaa434c672efcbff632a2eae86f56

BUG=v8:3629
LOG=N

Review URL: https://codereview.chromium.org/762483004

Cr-Commit-Position: refs/heads/master@{#25647}

9 years agoReland "[turbofan] Reuse forward fixpoint algorithm in Typer by making it a Reducer."
titzer [Wed, 3 Dec 2014 17:53:31 +0000 (09:53 -0800)]
Reland "[turbofan] Reuse forward fixpoint algorithm in Typer by making it a Reducer."

This reverts commit 918ef9d712ab77bc33ffb8eb985a6fd5672602f6.

R=mstarzinger@chromium.org
BUG=

Review URL: https://codereview.chromium.org/780623002

Cr-Commit-Position: refs/heads/master@{#25646}

9 years agoMIPS: CheckPrototypes uses weak cells to embed maps.
balazs.kilvady [Wed, 3 Dec 2014 17:37:01 +0000 (09:37 -0800)]
MIPS: CheckPrototypes uses weak cells to embed maps.

Port 062a032f50291ce181462226ff41b4ef9b11deba

BUG=v8:3629
LOG=N

Review URL: https://codereview.chromium.org/777673002

Cr-Commit-Position: refs/heads/master@{#25645}

9 years agoOptimize pushing files in android perf test runner.
machenbach [Wed, 3 Dec 2014 15:34:53 +0000 (07:34 -0800)]
Optimize pushing files in android perf test runner.

BUG=chromium:374740
LOG=n
TEST=python -m unittest run_perf_test
NOTRY=true

Review URL: https://codereview.chromium.org/754463005

Cr-Commit-Position: refs/heads/master@{#25644}

9 years agoRevert "[turbofan] Reuse forward fixpoint algorithm in Typer by making it a Reducer."
Ben L. Titzer [Wed, 3 Dec 2014 15:03:16 +0000 (16:03 +0100)]
Revert "[turbofan] Reuse forward fixpoint algorithm in Typer by making it a Reducer."

This reverts commit a48ad24a7c258d95acf3a6ae126036953a9122dd.

BUG=

Review URL: https://codereview.chromium.org/763773004

Cr-Commit-Position: refs/heads/master@{#25643}

9 years agoMove more don't-crankshaft computation to numbering pass
wingo [Wed, 3 Dec 2014 14:52:36 +0000 (06:52 -0800)]
Move more don't-crankshaft computation to numbering pass

The "do I inline?" decision needs many of the same inputs as the "should
I even try to crankshaft?" decision.  This change consolidates these
checks in the numbering pass.  It also removes the is_generator() check,
as that's already handled when visiting the initial Yield expression.

R=svenpanne@chromium.org
BUG=

Review URL: https://codereview.chromium.org/775693003

Cr-Commit-Position: refs/heads/master@{#25642}

9 years agoMIPS64: [turbofan] Add checked load/store operators.
balazs.kilvady [Wed, 3 Dec 2014 14:18:23 +0000 (06:18 -0800)]
MIPS64: [turbofan] Add checked load/store operators.

Port c516d4f09408879602520748333754d3866224fb

BUG=

Review URL: https://codereview.chromium.org/773113005

Cr-Commit-Position: refs/heads/master@{#25641}

9 years agoSimplify template literal raw string creation
arv [Wed, 3 Dec 2014 14:17:16 +0000 (06:17 -0800)]
Simplify template literal raw string creation

BUG=v8:3710
LOG=Y
R=dslomov@chromium.org, marja@chromium.org

Review URL: https://codereview.chromium.org/768203002

Cr-Commit-Position: refs/heads/master@{#25640}

9 years agoUse weak cells to embed maps in store handler.
ulan [Wed, 3 Dec 2014 13:36:50 +0000 (05:36 -0800)]
Use weak cells to embed maps in store handler.

BUG=v8:3629
LOG=N

Review URL: https://codereview.chromium.org/774473004

Cr-Commit-Position: refs/heads/master@{#25639}

9 years agoPrevent redundant node revisit in ControlEquivalence.
mstarzinger [Wed, 3 Dec 2014 13:24:49 +0000 (05:24 -0800)]
Prevent redundant node revisit in ControlEquivalence.

R=jarin@chromium.org

Review URL: https://codereview.chromium.org/773133003

Cr-Commit-Position: refs/heads/master@{#25638}

9 years agoRestart idle round on context disposal.
hpayer [Wed, 3 Dec 2014 13:13:49 +0000 (05:13 -0800)]
Restart idle round on context disposal.

BUG=

Review URL: https://codereview.chromium.org/754363008

Cr-Commit-Position: refs/heads/master@{#25637}

9 years agoMIPS: Improve pushing arguments on stack.
Dusan Milosavljevic [Wed, 3 Dec 2014 13:09:46 +0000 (14:09 +0100)]
MIPS: Improve pushing arguments on stack.

TEST=
BUG=
R=paul.lind@imgtec.com

Review URL: https://codereview.chromium.org/769283002

Cr-Commit-Position: refs/heads/master@{#25636}

9 years agoMIPS: Fix ambiguous double constant loading after adding checked load/store operators.
Dusan Milosavljevic [Wed, 3 Dec 2014 12:50:38 +0000 (13:50 +0100)]
MIPS: Fix ambiguous double constant loading after adding checked load/store operators.

The V8_INFINITY macro expands to constant expression of type float.

TEST=mjsunit/constant-folding-2
BUG=
R=balazs.kilvady@imgtec.com

Review URL: https://codereview.chromium.org/779433003

Cr-Commit-Position: refs/heads/master@{#25635}

9 years agoCheckPrototypes uses weak cells to embed maps.
ulan [Wed, 3 Dec 2014 12:34:26 +0000 (04:34 -0800)]
CheckPrototypes uses weak cells to embed maps.

BUG=v8:3629
LOG=N

Review URL: https://codereview.chromium.org/770373002

Cr-Commit-Position: refs/heads/master@{#25634}

9 years ago[turbofan] Reuse forward fixpoint algorithm in Typer by making it a Reducer.
titzer [Wed, 3 Dec 2014 11:51:55 +0000 (03:51 -0800)]
[turbofan] Reuse forward fixpoint algorithm in Typer by making it a Reducer.

R=jarin@chromium.org
BUG=

Review URL: https://codereview.chromium.org/769303002

Cr-Commit-Position: refs/heads/master@{#25633}

9 years ago[turbofan] Initial work on cleaning up the Node class.
bmeurer [Wed, 3 Dec 2014 10:33:47 +0000 (02:33 -0800)]
[turbofan] Initial work on cleaning up the Node class.

- Remove use_count_, only used for debug builds and tests.
- Use BitField instead of the unreliable C++ bit fields.
- Improve memory layout.

R=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/780503002

Cr-Commit-Position: refs/heads/master@{#25632}

9 years agoPrint finalize incremental marking event in idle notification.
hpayer [Wed, 3 Dec 2014 10:03:14 +0000 (02:03 -0800)]
Print finalize incremental marking event in idle notification.

BUG=

Review URL: https://codereview.chromium.org/775013002

Cr-Commit-Position: refs/heads/master@{#25631}

9 years agoSlow down incremental marking on main thread when idle notification is active.
hpayer [Wed, 3 Dec 2014 09:36:54 +0000 (01:36 -0800)]
Slow down incremental marking on main thread when idle notification is active.

BUG=

Review URL: https://codereview.chromium.org/771703004

Cr-Commit-Position: refs/heads/master@{#25630}

9 years agoSerializer: cache recent back references for shorter encoding.
yangguo [Wed, 3 Dec 2014 09:12:28 +0000 (01:12 -0800)]
Serializer: cache recent back references for shorter encoding.

And some refactorings.

R=mvstanton@chromium.org

Review URL: https://codereview.chromium.org/766893002

Cr-Commit-Position: refs/heads/master@{#25629}

9 years agoMake test-parsing faster: don't run parsing tests with all experimental flag combinat...
marja [Wed, 3 Dec 2014 08:23:37 +0000 (00:23 -0800)]
Make test-parsing faster: don't run parsing tests with all experimental flag combinations.

Instead, make it possible for indifidual tests to pass "always true flags" which
are not part of the varying flag set.

The downside is that if an experimental flag changes parsing of some of the
unrelated code snippets, it's noticed later (only after the flag is turned on by
default). But this is a reasonable trade off for faster tests.

Additional fix: Some tests (ErrorsFutureStrictReservedWords) were using
always_flags incorrectly (running two different tests with different
always_flags basically iterates over every flag combination anyway - most of
them twice).

BUG=v8:3707
LOG=N

Review URL: https://codereview.chromium.org/772823002

Cr-Commit-Position: refs/heads/master@{#25628}

9 years ago[turbofan] Combine additional Word32And with Int32Add and negative power of two.
Benedikt Meurer [Wed, 3 Dec 2014 07:34:47 +0000 (08:34 +0100)]
[turbofan] Combine additional Word32And with Int32Add and negative power of two.

- (y << L + x) & (-1 << L) => (x & (-1 << L)) + y << L
- (x + y << L) & (-1 << L) => (x & (-1 << L)) + y << L

TEST=unittests
R=jarin@chromium.org

Review URL: https://codereview.chromium.org/758603003

Cr-Commit-Position: refs/heads/master@{#25627}

9 years agoMIPS: [turbofan] Add checked load/store operators.
paul.lind [Wed, 3 Dec 2014 00:28:07 +0000 (16:28 -0800)]
MIPS: [turbofan] Add checked load/store operators.

Port c516d4f09408879602520748333754d3866224fb

Partial port to un-break the build. There are a few failing
tests, and the code is suboptimal for smaller offsets.

Fixes and mips64 port will come in another CL.

BUG=

Review URL: https://codereview.chromium.org/762853004

Cr-Commit-Position: refs/heads/master@{#25626}

9 years agoOptimize non-mutation Map and Set operations for String keys
adamk [Tue, 2 Dec 2014 23:06:44 +0000 (15:06 -0800)]
Optimize non-mutation Map and Set operations for String keys

Review URL: https://codereview.chromium.org/757143002

Cr-Commit-Position: refs/heads/master@{#25625}

9 years agoFix NativesCollection<.>::GetScriptName in natives-external.cc
vogelheim [Tue, 2 Dec 2014 18:53:27 +0000 (10:53 -0800)]
Fix NativesCollection<.>::GetScriptName in natives-external.cc

As there's no associated bug, here's the issue:
- Some ES6 functionality in Chrome is presently broken; this fixes it.
- The natives (built-in libraries) can be accessed by their 'name'.
  This is used to active ES6 flags.
- Strangely enough, there's an id and a name, where the name is derived
  from the id as "native %s.js", with %s for the id.
- NativesCollection<.>::GetScriptName uses the name.
- NativesCollection<.>::GetIndex uses the id.
- Example:
  NativesCollection<EXPERIMENTAL>::GetIndex("harmony-string") -> 3
  NativesCollection<EXPERIMENTAL>::GetScriptName(3) -> "native harmony-string.js"
- Nobody knows why; it's quite mysterious.
- When introducing the "external startup data", I didn't fully understand this
  and used the id in both places.
- When the "external startup data" was turned on in Chrome, ES6 features broke
  in Chrome since the libraries could no longer be found.
- This CL fixes this and makes the external startup data behave just like the
  built-in version.

R=dslomov
BUG=

Review URL: https://codereview.chromium.org/774613003

Cr-Commit-Position: refs/heads/master@{#25624}

9 years ago[turbofan] Enable DivIsSafe flag for arm64.
baptiste.afsa [Tue, 2 Dec 2014 18:45:30 +0000 (10:45 -0800)]
[turbofan] Enable DivIsSafe flag for arm64.

R=bmeurer@chromium.org

Review URL: https://codereview.chromium.org/773803003

Cr-Commit-Position: refs/heads/master@{#25623}

9 years agoSwitch CFGBuilder to use NodeMarker.
mstarzinger [Tue, 2 Dec 2014 16:51:48 +0000 (08:51 -0800)]
Switch CFGBuilder to use NodeMarker.

R=titzer@chromium.org

Review URL: https://codereview.chromium.org/753063004

Cr-Commit-Position: refs/heads/master@{#25622}

9 years agoRestrict floating control to minimal control-connected component.
mstarzinger [Tue, 2 Dec 2014 15:56:22 +0000 (07:56 -0800)]
Restrict floating control to minimal control-connected component.

R=jarin@chromium.org
TEST=cctest/test-scheduler/NestedFloatingDiamondWithChain

Review URL: https://codereview.chromium.org/738613005

Cr-Commit-Position: refs/heads/master@{#25621}

9 years agoMake generic algorithm a little less generic.
mstarzinger [Tue, 2 Dec 2014 15:37:52 +0000 (07:37 -0800)]
Make generic algorithm a little less generic.

R=titzer@chromium.org

Review URL: https://codereview.chromium.org/760493003

Cr-Commit-Position: refs/heads/master@{#25620}

9 years ago[ia32] Introduce FMA3 instructions on scalar data elements.
weiliang.lin [Tue, 2 Dec 2014 15:30:03 +0000 (07:30 -0800)]
[ia32] Introduce FMA3 instructions on scalar data elements.

port 83a635e0d70f144300ea83be0d7effc1eb1bf6ef

BUG=

Review URL: https://codereview.chromium.org/773783002

Cr-Commit-Position: refs/heads/master@{#25619}

9 years agoTrace how long it takes to compute the weak closure during mark-compact
jochen [Tue, 2 Dec 2014 15:09:19 +0000 (07:09 -0800)]
Trace how long it takes to compute the weak closure during mark-compact

BUG=none
R=hpayer@chromium.org
LOG=n

Review URL: https://codereview.chromium.org/769253002

Cr-Commit-Position: refs/heads/master@{#25618}

9 years agoStage ES6 classes and object literal extensions.
dslomov [Tue, 2 Dec 2014 14:54:31 +0000 (06:54 -0800)]
Stage ES6 classes and object literal extensions.

R=arv@chromium.org,rossberg@chromium.org
BUG=v8:3330
LOG=Y

Review URL: https://codereview.chromium.org/774653002

Cr-Commit-Position: refs/heads/master@{#25617}

9 years agoClean up node iteration
danno [Tue, 2 Dec 2014 14:38:55 +0000 (06:38 -0800)]
Clean up node iteration

- Create a first-class Edge type.
- Separate node and edge iterators
- Make iterators only responsible for iteration
- Make it possible to modify the use edge iterator while iterating.
- Add the ability to update inputs to Edges directly.

Review URL: https://codereview.chromium.org/765983002

Cr-Commit-Position: refs/heads/master@{#25616}

9 years agoReland parts of 'Use weak cells in map checks in polymorphic ICs'
ulan [Tue, 2 Dec 2014 14:25:17 +0000 (06:25 -0800)]
Reland parts of 'Use weak cells in map checks in polymorphic ICs'

This relands macroassembler instructions and weak cell caching and
does not include parts that caused "Linux ASan LSan" test failures.

BUG=v8:3663
LOG=N

Review URL: https://codereview.chromium.org/764003003

Cr-Commit-Position: refs/heads/master@{#25615}

9 years agoAdd Android platform to performance runner.
machenbach [Tue, 2 Dec 2014 14:23:51 +0000 (06:23 -0800)]
Add Android platform to performance runner.

BUG=chromium:374740
LOG=n
TEST=python -m unittest run_perf_test
NOTRY=true

Review URL: https://codereview.chromium.org/768143002

Cr-Commit-Position: refs/heads/master@{#25614}

9 years agoFixed environment handling for LFlooringDivI on ARM.
svenpanne [Tue, 2 Dec 2014 13:47:10 +0000 (05:47 -0800)]
Fixed environment handling for LFlooringDivI on ARM.

Beautiful code... :-}

BUG=chromium:437765
LOG=y

Review URL: https://codereview.chromium.org/775613002

Cr-Commit-Position: refs/heads/master@{#25613}

9 years agoMake the ParserSync test faster (and re-enable it).
Marja Hölttä [Tue, 2 Dec 2014 13:23:30 +0000 (14:23 +0100)]
Make the ParserSync test faster (and re-enable it).

Most of the run time came from testing with all possible flag combinations. None
of the flags passed affect the test, and there are specialized tests for testing
the features behind the flags; no need to slow down the generic test.

With these changes, run time for debug build goes from 186 s to 0.5 s.

In addition, fixed some missing commas between the test cases.

R=svenpanne@chromium.org
BUG=v8:3707
LOG=N

Review URL: https://codereview.chromium.org/766673003

Cr-Commit-Position: refs/heads/master@{#25612}

9 years ago[turbofan] Use the temporary zone for the VN cache.
Benedikt Meurer [Tue, 2 Dec 2014 12:45:08 +0000 (13:45 +0100)]
[turbofan] Use the temporary zone for the VN cache.

R=dcarney@chromium.org

Review URL: https://codereview.chromium.org/760403003

Cr-Commit-Position: refs/heads/master@{#25611}

9 years ago[turbofan] Cache the Branch operator(s).
Benedikt Meurer [Tue, 2 Dec 2014 12:41:31 +0000 (13:41 +0100)]
[turbofan] Cache the Branch operator(s).

TEST=unittests
R=dcarney@chromium.org

Review URL: https://codereview.chromium.org/771153002

Cr-Commit-Position: refs/heads/master@{#25610}

9 years ago[turbofan] Cache the JSStoreProperty operator(s).
Benedikt Meurer [Tue, 2 Dec 2014 11:40:25 +0000 (12:40 +0100)]
[turbofan] Cache the JSStoreProperty operator(s).

TEST=unittests
R=dcarney@chromium.org

Review URL: https://codereview.chromium.org/769193003

Cr-Commit-Position: refs/heads/master@{#25609}

9 years agoRestore correct logic in GC test.
dslomov [Tue, 2 Dec 2014 11:34:29 +0000 (03:34 -0800)]
Restore correct logic in GC test.

R=hpayer@chromium.org

Review URL: https://codereview.chromium.org/767453004

Cr-Commit-Position: refs/heads/master@{#25608}

9 years agoPerform smaller marking steps incrementally in idle notification.
hpayer [Tue, 2 Dec 2014 11:24:58 +0000 (03:24 -0800)]
Perform smaller marking steps incrementally in idle notification.

BUG=

Review URL: https://codereview.chromium.org/767233003

Cr-Commit-Position: refs/heads/master@{#25607}

9 years agoAfter moving unreachable weak global handles only process harmony collections
jochen [Tue, 2 Dec 2014 11:23:51 +0000 (03:23 -0800)]
After moving unreachable weak global handles only process harmony collections

Groups and implicit references are no longer relevant at this point.

Also add tests that fail if the first or second round of ephemeral
marking is omitted

BUG=none
R=mstarzinger@chromium.org,hpayer@chromium.org
LOG=n

Review URL: https://codereview.chromium.org/761343004

Cr-Commit-Position: refs/heads/master@{#25606}

9 years ago[turbofan] Add missing tests for SimplifiedOperatorBuilder.
Benedikt Meurer [Tue, 2 Dec 2014 11:10:46 +0000 (12:10 +0100)]
[turbofan] Add missing tests for SimplifiedOperatorBuilder.

TEST=unittests
R=dcarney@chromium.org

Review URL: https://codereview.chromium.org/772723003

Cr-Commit-Position: refs/heads/master@{#25605}

9 years ago[turbofan] Enable stage 1.
titzer [Tue, 2 Dec 2014 11:07:17 +0000 (03:07 -0800)]
[turbofan] Enable stage 1.

R=danno@chromium.org,bmeurer@chromium.org
BUG=

Review URL: https://codereview.chromium.org/770203003

Cr-Commit-Position: refs/heads/master@{#25604}

9 years agoES6 unicode extensions, part 1.
marja [Tue, 2 Dec 2014 10:58:11 +0000 (02:58 -0800)]
ES6 unicode extensions, part 1.

Allows \u{xxxxx} in variable names and string literals (not yet in regexps).

Everything's behind the --harmony-unicode flag.

BUG=

Review URL: https://codereview.chromium.org/716423002

Cr-Commit-Position: refs/heads/master@{#25603}

9 years ago[turbofan] Initialize less frequently used types in typer.cc lazily.
titzer [Tue, 2 Dec 2014 10:43:00 +0000 (02:43 -0800)]
[turbofan] Initialize less frequently used types in typer.cc lazily.

R=jarin@chromium.org
BUG=

Review URL: https://codereview.chromium.org/771683002

Cr-Commit-Position: refs/heads/master@{#25602}

9 years agoParser: Removing debug code.
marja [Tue, 2 Dec 2014 10:31:40 +0000 (02:31 -0800)]
Parser: Removing debug code.

The mystery crash never reappeared once the debugging code was in place.

R=jochen@chromium.org
BUG=

Review URL: https://codereview.chromium.org/760863003

Cr-Commit-Position: refs/heads/master@{#25601}

9 years ago[turbofan] Make context specialization into a reducer.
titzer [Tue, 2 Dec 2014 10:02:38 +0000 (02:02 -0800)]
[turbofan] Make context specialization into a reducer.

R=bmeurer@chromium.org
BUG=

Review URL: https://codereview.chromium.org/771713002

Cr-Commit-Position: refs/heads/master@{#25600}

9 years agoFix idle time trace printing.
Hannes Payer [Tue, 2 Dec 2014 09:27:41 +0000 (10:27 +0100)]
Fix idle time trace printing.

BUG=
R=jochen@chromium.org

Review URL: https://codereview.chromium.org/771123002

Cr-Commit-Position: refs/heads/master@{#25599}

9 years agoAdd GetIdentityHash to v8::Name object API
yurys [Tue, 2 Dec 2014 09:13:16 +0000 (01:13 -0800)]
Add GetIdentityHash to v8::Name object API

v8::Object already has GetIdentityHash on it. This change adds its counterpart to v8::Name.

BUG=chromium:437416
LOG=Y

Review URL: https://codereview.chromium.org/753373003

Cr-Commit-Position: refs/heads/master@{#25598}

9 years agoRevert of Use weak cells in map checks in polymorphic ICs. (patchset #8 id:140001...
machenbach [Tue, 2 Dec 2014 08:16:43 +0000 (00:16 -0800)]
Revert of Use weak cells in map checks in polymorphic ICs. (patchset #8 id:140001 of https://codereview.chromium.org/753993003/)

Reason for revert:
[Sheriff] Speculative revert for breaking chromium asan (roll blocker):
http://build.chromium.org/p/client.v8/builders/Linux%20ASan%20LSan%20Tests%20%281%29/builds/1683

Original issue's description:
> Use weak cells in map checks in polymorphic ICs.
>
> BUG=v8:3663
> LOG=N

TBR=mvstanton@chromium.org,akos.palfi@imgtec.com,weiliang.lin@intel.com,ulan@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=v8:3663

Review URL: https://codereview.chromium.org/771033003

Cr-Commit-Position: refs/heads/master@{#25597}

9 years agoRevert of MIPS: Use weak cells in map checks in polymorphic ICs. (patchset #1 id...
machenbach [Tue, 2 Dec 2014 08:15:30 +0000 (00:15 -0800)]
Revert of MIPS: Use weak cells in map checks in polymorphic ICs. (patchset #1 id:1 of https://codereview.chromium.org/767623003/)

Reason for revert:
Need to revert the ported CL:
https://codereview.chromium.org/771033003/

Original issue's description:
> MIPS: Use weak cells in map checks in polymorphic ICs.
>
> Port 45a36948e1bb0f02d395ecbcfe6306553898268b
>
> Fix typo in the mips ports.
>
> BUG=

TBR=ulan@chromium.org,danno@chromium.org,akos.palfi@imgtec.com,balazs.kilvady@imgtec.com,gergely.kis@imgtec.com,dusan.milosavljevic@imgtec.com,paul.lind@imgtec.com
NOTREECHECKS=true
NOTRY=true
BUG=

Review URL: https://codereview.chromium.org/768303002

Cr-Commit-Position: refs/heads/master@{#25596}