New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 4203 link

Starred by 576 users

Comments by non-members will not trigger notification emails to users who starred this issue.

Validate asm.js code and apply the typing information to convert to wasm

Project Member Reported by bradnelson@chromium.org, Jun 21 2015

Issue description

We should implement asm.js validation so that we can use the full type information available in asm.js modules.

SPEC
http://asmjs.org/spec/latest/

SUMMARY
asm.js programs provide machine level typing information for code compiled from C/C++. While a substantial portion of this typing information can be discovered by V8's generic typing code, some of the information (inter-function) is non-trivial to extract in a general way. Explicit validation will allow us to get it all.

COMPATIBILITY RISK
Mozilla implements this feature. Microsoft has announced support as well. The specification is not final, however, so there is some danger that multiple variants will need to be supported in the wild. The specification conflates parse and AST time information, which may make it difficult to map to V8 precisely.

 
Showing comments 54 - 153 of 153 Older
Project Member

Comment 54 by bugdroid1@chromium.org, Aug 17 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/d0e52555f07a6f01a25114355007bc9095e00f6a

commit d0e52555f07a6f01a25114355007bc9095e00f6a
Author: bradnelson <bradnelson@chromium.org>
Date: Wed Aug 17 17:22:09 2016

[wasm] Support validation of asm.js modules with != 3 args.

Our previous per-arch instantiation thunks for asm.js
didn't support modules that had or were called with anything other
than 3 arguments. Adding support for this.

Addding a runtime test method to check if asm validation succeeded.

Adding a test of validation with different argument count combinations.

R=mstarzinger@chromium.org
TEST=mjsunit/asm/asm-validator.js
BUG= https://bugs.chromium.org/p/v8/issues/detail?id=4203

Review-Url: https://codereview.chromium.org/2229723002
Cr-Commit-Position: refs/heads/master@{#38688}

[modify] https://crrev.com/d0e52555f07a6f01a25114355007bc9095e00f6a/src/builtins/arm/builtins-arm.cc
[modify] https://crrev.com/d0e52555f07a6f01a25114355007bc9095e00f6a/src/builtins/arm64/builtins-arm64.cc
[modify] https://crrev.com/d0e52555f07a6f01a25114355007bc9095e00f6a/src/builtins/ia32/builtins-ia32.cc
[modify] https://crrev.com/d0e52555f07a6f01a25114355007bc9095e00f6a/src/builtins/mips/builtins-mips.cc
[modify] https://crrev.com/d0e52555f07a6f01a25114355007bc9095e00f6a/src/builtins/mips64/builtins-mips64.cc
[modify] https://crrev.com/d0e52555f07a6f01a25114355007bc9095e00f6a/src/builtins/ppc/builtins-ppc.cc
[modify] https://crrev.com/d0e52555f07a6f01a25114355007bc9095e00f6a/src/builtins/s390/builtins-s390.cc
[modify] https://crrev.com/d0e52555f07a6f01a25114355007bc9095e00f6a/src/builtins/x64/builtins-x64.cc
[modify] https://crrev.com/d0e52555f07a6f01a25114355007bc9095e00f6a/src/builtins/x87/builtins-x87.cc
[modify] https://crrev.com/d0e52555f07a6f01a25114355007bc9095e00f6a/src/compiler.cc
[modify] https://crrev.com/d0e52555f07a6f01a25114355007bc9095e00f6a/src/objects-inl.h
[modify] https://crrev.com/d0e52555f07a6f01a25114355007bc9095e00f6a/src/objects.h
[modify] https://crrev.com/d0e52555f07a6f01a25114355007bc9095e00f6a/src/runtime/runtime-compiler.cc
[modify] https://crrev.com/d0e52555f07a6f01a25114355007bc9095e00f6a/src/runtime/runtime-test.cc
[modify] https://crrev.com/d0e52555f07a6f01a25114355007bc9095e00f6a/src/runtime/runtime.h
[add] https://crrev.com/d0e52555f07a6f01a25114355007bc9095e00f6a/test/mjsunit/asm/asm-validation.js

Project Member

Comment 55 by bugdroid1@chromium.org, Aug 18 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/f9763eb275e25654995b265f020f25d5d7634551

commit f9763eb275e25654995b265f020f25d5d7634551
Author: mstarzinger <mstarzinger@chromium.org>
Date: Thu Aug 18 07:44:15 2016

[wasm] Fix asm.js module instantiation on retry.

This fixes the case where a module is instantiated twice via the same
closure when in the meantime another closure has destroyed and removed
the WASM data attached to the SharedFunctionInfo.

R=bradnelson@chromium.org
TEST=mjsunit/asm/asm-validation
BUG= v8:4203 

Review-Url: https://codereview.chromium.org/2253613004
Cr-Commit-Position: refs/heads/master@{#38696}

[modify] https://crrev.com/f9763eb275e25654995b265f020f25d5d7634551/src/runtime/runtime-compiler.cc
[modify] https://crrev.com/f9763eb275e25654995b265f020f25d5d7634551/test/mjsunit/asm/asm-validation.js

Project Member

Comment 56 by bugdroid1@chromium.org, Aug 19 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/561bfcb70d5ed2757ba9477d8fabc95b1c5d20f0

commit 561bfcb70d5ed2757ba9477d8fabc95b1c5d20f0
Author: bradnelson <bradnelson@chromium.org>
Date: Fri Aug 19 18:25:39 2016

[wasm] asm.js - Check stdlib.NaN is valid, prepare for the rest.

Record which asm.js stdlib members are used and add a check that NaN is actually correctly set. Other stdlib members to be added in a later change.

Also add a stdlib argument to Wasm.instantiateModuleFromAsm, in preparation for that function to be replaced by normal asm.js instantiation.

BUG= https://bugs.chromium.org/p/v8/issues/detail?id=4203
LOG=N
R=jpp@chromium.org,titzer@chromium.org

Review-Url: https://codereview.chromium.org/2251433002
Cr-Commit-Position: refs/heads/master@{#38760}

[modify] https://crrev.com/561bfcb70d5ed2757ba9477d8fabc95b1c5d20f0/src/asmjs/asm-js.cc
[modify] https://crrev.com/561bfcb70d5ed2757ba9477d8fabc95b1c5d20f0/src/asmjs/asm-js.h
[modify] https://crrev.com/561bfcb70d5ed2757ba9477d8fabc95b1c5d20f0/src/asmjs/asm-typer.cc
[modify] https://crrev.com/561bfcb70d5ed2757ba9477d8fabc95b1c5d20f0/src/asmjs/asm-typer.h
[modify] https://crrev.com/561bfcb70d5ed2757ba9477d8fabc95b1c5d20f0/src/runtime/runtime-compiler.cc
[modify] https://crrev.com/561bfcb70d5ed2757ba9477d8fabc95b1c5d20f0/src/wasm/wasm-js.cc
[modify] https://crrev.com/561bfcb70d5ed2757ba9477d8fabc95b1c5d20f0/test/mjsunit/regress/regress-599719.js
[modify] https://crrev.com/561bfcb70d5ed2757ba9477d8fabc95b1c5d20f0/test/mjsunit/regress/regress-608630.js
[modify] https://crrev.com/561bfcb70d5ed2757ba9477d8fabc95b1c5d20f0/test/mjsunit/wasm/asm-wasm-deopt.js
[modify] https://crrev.com/561bfcb70d5ed2757ba9477d8fabc95b1c5d20f0/test/mjsunit/wasm/asm-wasm-heap.js
[modify] https://crrev.com/561bfcb70d5ed2757ba9477d8fabc95b1c5d20f0/test/mjsunit/wasm/asm-wasm-stdlib.js
[modify] https://crrev.com/561bfcb70d5ed2757ba9477d8fabc95b1c5d20f0/test/mjsunit/wasm/asm-wasm.js
[modify] https://crrev.com/561bfcb70d5ed2757ba9477d8fabc95b1c5d20f0/test/mjsunit/wasm/embenchen/box2d.js
[modify] https://crrev.com/561bfcb70d5ed2757ba9477d8fabc95b1c5d20f0/test/mjsunit/wasm/embenchen/copy.js
[modify] https://crrev.com/561bfcb70d5ed2757ba9477d8fabc95b1c5d20f0/test/mjsunit/wasm/embenchen/corrections.js
[modify] https://crrev.com/561bfcb70d5ed2757ba9477d8fabc95b1c5d20f0/test/mjsunit/wasm/embenchen/fannkuch.js
[modify] https://crrev.com/561bfcb70d5ed2757ba9477d8fabc95b1c5d20f0/test/mjsunit/wasm/embenchen/fasta.js
[modify] https://crrev.com/561bfcb70d5ed2757ba9477d8fabc95b1c5d20f0/test/mjsunit/wasm/embenchen/lua_binarytrees.js
[modify] https://crrev.com/561bfcb70d5ed2757ba9477d8fabc95b1c5d20f0/test/mjsunit/wasm/embenchen/memops.js
[modify] https://crrev.com/561bfcb70d5ed2757ba9477d8fabc95b1c5d20f0/test/mjsunit/wasm/embenchen/primes.js
[modify] https://crrev.com/561bfcb70d5ed2757ba9477d8fabc95b1c5d20f0/test/mjsunit/wasm/embenchen/zlib.js

Project Member

Comment 57 by bugdroid1@chromium.org, Aug 22 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/2d46ef23b192d7492c2c56799473aee3d948bba6

commit 2d46ef23b192d7492c2c56799473aee3d948bba6
Author: bradnelson <bradnelson@chromium.org>
Date: Mon Aug 22 17:17:37 2016

[wasm] asm.js - Check stdlib functions are valid.

Check remaining asm.js stdlib functions for validitity at instatiation.

Fail when a member is referenced, even if not used.

BUG= https://bugs.chromium.org/p/v8/issues/detail?id=4203
LOG=N
R=jpp@chromium.org,titzer@chromium.org

Review-Url: https://codereview.chromium.org/2267633002
Cr-Commit-Position: refs/heads/master@{#38796}

[modify] https://crrev.com/2d46ef23b192d7492c2c56799473aee3d948bba6/src/asmjs/asm-js.cc
[modify] https://crrev.com/2d46ef23b192d7492c2c56799473aee3d948bba6/src/asmjs/asm-typer.cc
[modify] https://crrev.com/2d46ef23b192d7492c2c56799473aee3d948bba6/test/mjsunit/wasm/asm-wasm-stdlib.js

Project Member

Comment 58 by bugdroid1@chromium.org, Aug 23 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/e5f5ac7d2bbab16d0f83edb6d030dfcd1a28e71f

commit e5f5ac7d2bbab16d0f83edb6d030dfcd1a28e71f
Author: bradnelson <bradnelson@chromium.org>
Date: Tue Aug 23 04:06:52 2016

[wasm] asm.js - Remove Wasm.instantiateModuleFromAsm, use asm.js directly.

Make use of %IsAsmWasmCode in place of Wasm.instantiateModuleFromAsm,
in order to reduce the surface area of the Wasm object,
and to focus on testing asm.js coming in via the parser.

Ignore extra CONST_LEGACY assignment introduced by the parser
when modules have the form:
(function Foo(a, b, c) {..});
This requires both a validator and AsmWasmBuilder change.

Move stdlib use collection to import time,
to reject modules that import a function, even if not used.

BUG= https://bugs.chromium.org/p/v8/issues/detail?id=4203
LOG=N
R=jpp@chromium.org,titzer@chromium.org

Review-Url: https://codereview.chromium.org/2264913002
Cr-Commit-Position: refs/heads/master@{#38806}

[modify] https://crrev.com/e5f5ac7d2bbab16d0f83edb6d030dfcd1a28e71f/src/asmjs/asm-js.cc
[modify] https://crrev.com/e5f5ac7d2bbab16d0f83edb6d030dfcd1a28e71f/src/asmjs/asm-typer.cc
[modify] https://crrev.com/e5f5ac7d2bbab16d0f83edb6d030dfcd1a28e71f/src/asmjs/asm-wasm-builder.cc
[modify] https://crrev.com/e5f5ac7d2bbab16d0f83edb6d030dfcd1a28e71f/src/runtime/runtime-compiler.cc
[modify] https://crrev.com/e5f5ac7d2bbab16d0f83edb6d030dfcd1a28e71f/src/runtime/runtime-test.cc
[modify] https://crrev.com/e5f5ac7d2bbab16d0f83edb6d030dfcd1a28e71f/src/runtime/runtime.h
[modify] https://crrev.com/e5f5ac7d2bbab16d0f83edb6d030dfcd1a28e71f/src/wasm/wasm-js.cc
[modify] https://crrev.com/e5f5ac7d2bbab16d0f83edb6d030dfcd1a28e71f/test/mjsunit/asm/asm-validation.js
[modify] https://crrev.com/e5f5ac7d2bbab16d0f83edb6d030dfcd1a28e71f/test/mjsunit/regress/regress-575364.js
[modify] https://crrev.com/e5f5ac7d2bbab16d0f83edb6d030dfcd1a28e71f/test/mjsunit/regress/regress-592352.js
[modify] https://crrev.com/e5f5ac7d2bbab16d0f83edb6d030dfcd1a28e71f/test/mjsunit/regress/regress-599717.js
[modify] https://crrev.com/e5f5ac7d2bbab16d0f83edb6d030dfcd1a28e71f/test/mjsunit/regress/regress-599719.js
[modify] https://crrev.com/e5f5ac7d2bbab16d0f83edb6d030dfcd1a28e71f/test/mjsunit/regress/regress-599825.js
[delete] https://crrev.com/e1b47909fb4f24512d2c8255b87df4252e50773c/test/mjsunit/regress/regress-605488.js
[modify] https://crrev.com/e5f5ac7d2bbab16d0f83edb6d030dfcd1a28e71f/test/mjsunit/regress/regress-608630.js
[modify] https://crrev.com/e5f5ac7d2bbab16d0f83edb6d030dfcd1a28e71f/test/mjsunit/regress/regress-613928.js
[modify] https://crrev.com/e5f5ac7d2bbab16d0f83edb6d030dfcd1a28e71f/test/mjsunit/regress/regress-617525.js
[modify] https://crrev.com/e5f5ac7d2bbab16d0f83edb6d030dfcd1a28e71f/test/mjsunit/regress/regress-617526.js
[modify] https://crrev.com/e5f5ac7d2bbab16d0f83edb6d030dfcd1a28e71f/test/mjsunit/regress/regress-617529.js
[modify] https://crrev.com/e5f5ac7d2bbab16d0f83edb6d030dfcd1a28e71f/test/mjsunit/regress/regress-618608.js
[modify] https://crrev.com/e5f5ac7d2bbab16d0f83edb6d030dfcd1a28e71f/test/mjsunit/regress/regress-wasm-crbug-599413.js
[modify] https://crrev.com/e5f5ac7d2bbab16d0f83edb6d030dfcd1a28e71f/test/mjsunit/regress/regress-wasm-crbug-618602.js
[delete] https://crrev.com/e1b47909fb4f24512d2c8255b87df4252e50773c/test/mjsunit/regress/regress-wasm-crbug-620649.js
[modify] https://crrev.com/e5f5ac7d2bbab16d0f83edb6d030dfcd1a28e71f/test/mjsunit/wasm/asm-wasm-copy.js
[modify] https://crrev.com/e5f5ac7d2bbab16d0f83edb6d030dfcd1a28e71f/test/mjsunit/wasm/asm-wasm-deopt.js
[modify] https://crrev.com/e5f5ac7d2bbab16d0f83edb6d030dfcd1a28e71f/test/mjsunit/wasm/asm-wasm-f32.js
[modify] https://crrev.com/e5f5ac7d2bbab16d0f83edb6d030dfcd1a28e71f/test/mjsunit/wasm/asm-wasm-f64.js
[modify] https://crrev.com/e5f5ac7d2bbab16d0f83edb6d030dfcd1a28e71f/test/mjsunit/wasm/asm-wasm-heap.js
[modify] https://crrev.com/e5f5ac7d2bbab16d0f83edb6d030dfcd1a28e71f/test/mjsunit/wasm/asm-wasm-i32.js
[modify] https://crrev.com/e5f5ac7d2bbab16d0f83edb6d030dfcd1a28e71f/test/mjsunit/wasm/asm-wasm-literals.js
[modify] https://crrev.com/e5f5ac7d2bbab16d0f83edb6d030dfcd1a28e71f/test/mjsunit/wasm/asm-wasm-stdlib.js
[modify] https://crrev.com/e5f5ac7d2bbab16d0f83edb6d030dfcd1a28e71f/test/mjsunit/wasm/asm-wasm-switch.js
[modify] https://crrev.com/e5f5ac7d2bbab16d0f83edb6d030dfcd1a28e71f/test/mjsunit/wasm/asm-wasm-u32.js
[modify] https://crrev.com/e5f5ac7d2bbab16d0f83edb6d030dfcd1a28e71f/test/mjsunit/wasm/asm-wasm.js
[modify] https://crrev.com/e5f5ac7d2bbab16d0f83edb6d030dfcd1a28e71f/test/mjsunit/wasm/embenchen/box2d.js
[modify] https://crrev.com/e5f5ac7d2bbab16d0f83edb6d030dfcd1a28e71f/test/mjsunit/wasm/embenchen/copy.js
[modify] https://crrev.com/e5f5ac7d2bbab16d0f83edb6d030dfcd1a28e71f/test/mjsunit/wasm/embenchen/corrections.js
[modify] https://crrev.com/e5f5ac7d2bbab16d0f83edb6d030dfcd1a28e71f/test/mjsunit/wasm/embenchen/fannkuch.js
[modify] https://crrev.com/e5f5ac7d2bbab16d0f83edb6d030dfcd1a28e71f/test/mjsunit/wasm/embenchen/fasta.js
[modify] https://crrev.com/e5f5ac7d2bbab16d0f83edb6d030dfcd1a28e71f/test/mjsunit/wasm/embenchen/lua_binarytrees.js
[modify] https://crrev.com/e5f5ac7d2bbab16d0f83edb6d030dfcd1a28e71f/test/mjsunit/wasm/embenchen/memops.js
[modify] https://crrev.com/e5f5ac7d2bbab16d0f83edb6d030dfcd1a28e71f/test/mjsunit/wasm/embenchen/primes.js
[modify] https://crrev.com/e5f5ac7d2bbab16d0f83edb6d030dfcd1a28e71f/test/mjsunit/wasm/embenchen/zlib.js
[modify] https://crrev.com/e5f5ac7d2bbab16d0f83edb6d030dfcd1a28e71f/test/mjsunit/wasm/wasm-object-api.js

Project Member

Comment 59 by bugdroid1@chromium.org, Sep 19 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/a4737793cb86e37eb101aa175282ffb2bda39194

commit a4737793cb86e37eb101aa175282ffb2bda39194
Author: bradnelson <bradnelson@chromium.org>
Date: Mon Sep 19 20:39:41 2016

[wasm] Support asm.js modules with a single function.

Handle the case of asm.js modules that return a single function
instead of a collection of them.

R=mtrofin@chromium.org
TEST=mjsunit/asm/asm-wasm
BUG= v8:4203 
BUG= v8:5356 

Review-Url: https://codereview.chromium.org/2348383003
Cr-Commit-Position: refs/heads/master@{#39515}

[modify] https://crrev.com/a4737793cb86e37eb101aa175282ffb2bda39194/src/asmjs/asm-js.cc
[modify] https://crrev.com/a4737793cb86e37eb101aa175282ffb2bda39194/src/asmjs/asm-wasm-builder.cc
[modify] https://crrev.com/a4737793cb86e37eb101aa175282ffb2bda39194/src/asmjs/asm-wasm-builder.h
[modify] https://crrev.com/a4737793cb86e37eb101aa175282ffb2bda39194/test/mjsunit/wasm/asm-wasm.js

Blockedon: 5406
Project Member

Comment 61 by bugdroid1@chromium.org, Sep 19 2016

Project Member

Comment 62 by bugdroid1@chromium.org, Sep 28 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/53b228239e5074d6e1ff0b477168f0d03e3a8e40

commit 53b228239e5074d6e1ff0b477168f0d03e3a8e40
Author: bradnelson <bradnelson@chromium.org>
Date: Tue Sep 27 23:19:59 2016

[wasm] asm.js: Work around parser converting !0 and !1 to boolean.

!0 -> true and !1 -> false etc in the parser.
This clashes with some of the typing logic in asm.js,
and can show up in some real programs in the wild (at least in past asm.js
versions).

BUG= https://bugs.chromium.org/p/v8/issues/detail?id=4203
R=aseemgarg@chromium.org,jpp@chromium.org

Review-Url: https://codereview.chromium.org/2372823004
Cr-Commit-Position: refs/heads/master@{#39798}

[modify] https://crrev.com/53b228239e5074d6e1ff0b477168f0d03e3a8e40/src/asmjs/asm-typer.cc
[modify] https://crrev.com/53b228239e5074d6e1ff0b477168f0d03e3a8e40/src/asmjs/asm-wasm-builder.cc
[modify] https://crrev.com/53b228239e5074d6e1ff0b477168f0d03e3a8e40/test/mjsunit/wasm/asm-wasm.js

Project Member

Comment 63 by bugdroid1@chromium.org, Sep 28 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/21e46b05a26024173a36599d2784a657cedc5b2b

commit 21e46b05a26024173a36599d2784a657cedc5b2b
Author: bradnelson <bradnelson@chromium.org>
Date: Wed Sep 28 16:36:37 2016

[wasm] [asm.js] Fix various asm.js issues.

Several of the asm.js tests were disabled and wrong (mismatched number of args
on the stdlib functions).

Fixing issue around negation and float + doubles.

Renaming function for IsNegate to IsInvert (to reflect what it actually does).

Added tests for negate and invert.

BUG= https://bugs.chromium.org/p/v8/issues/detail?id=4203
R=aseemgarg@chromium.org,jpp@chromium.org

Review-Url: https://codereview.chromium.org/2377903002
Cr-Commit-Position: refs/heads/master@{#39836}

[modify] https://crrev.com/21e46b05a26024173a36599d2784a657cedc5b2b/src/asmjs/asm-typer.cc
[modify] https://crrev.com/21e46b05a26024173a36599d2784a657cedc5b2b/src/asmjs/asm-wasm-builder.cc
[modify] https://crrev.com/21e46b05a26024173a36599d2784a657cedc5b2b/test/mjsunit/wasm/asm-wasm-f32.js
[modify] https://crrev.com/21e46b05a26024173a36599d2784a657cedc5b2b/test/mjsunit/wasm/asm-wasm-f64.js
[modify] https://crrev.com/21e46b05a26024173a36599d2784a657cedc5b2b/test/mjsunit/wasm/asm-wasm-i32.js
[modify] https://crrev.com/21e46b05a26024173a36599d2784a657cedc5b2b/test/mjsunit/wasm/asm-wasm-u32.js

Project Member

Comment 64 by bugdroid1@chromium.org, Sep 28 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/21e46b05a26024173a36599d2784a657cedc5b2b

commit 21e46b05a26024173a36599d2784a657cedc5b2b
Author: bradnelson <bradnelson@chromium.org>
Date: Wed Sep 28 16:36:37 2016

[wasm] [asm.js] Fix various asm.js issues.

Several of the asm.js tests were disabled and wrong (mismatched number of args
on the stdlib functions).

Fixing issue around negation and float + doubles.

Renaming function for IsNegate to IsInvert (to reflect what it actually does).

Added tests for negate and invert.

BUG= https://bugs.chromium.org/p/v8/issues/detail?id=4203
R=aseemgarg@chromium.org,jpp@chromium.org

Review-Url: https://codereview.chromium.org/2377903002
Cr-Commit-Position: refs/heads/master@{#39836}

[modify] https://crrev.com/21e46b05a26024173a36599d2784a657cedc5b2b/src/asmjs/asm-typer.cc
[modify] https://crrev.com/21e46b05a26024173a36599d2784a657cedc5b2b/src/asmjs/asm-wasm-builder.cc
[modify] https://crrev.com/21e46b05a26024173a36599d2784a657cedc5b2b/test/mjsunit/wasm/asm-wasm-f32.js
[modify] https://crrev.com/21e46b05a26024173a36599d2784a657cedc5b2b/test/mjsunit/wasm/asm-wasm-f64.js
[modify] https://crrev.com/21e46b05a26024173a36599d2784a657cedc5b2b/test/mjsunit/wasm/asm-wasm-i32.js
[modify] https://crrev.com/21e46b05a26024173a36599d2784a657cedc5b2b/test/mjsunit/wasm/asm-wasm-u32.js

Project Member

Comment 65 by bugdroid1@chromium.org, Oct 3 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/cfed56c2c539fc2a103423169212999b1e7143c5

commit cfed56c2c539fc2a103423169212999b1e7143c5
Author: bradnelson <bradnelson@chromium.org>
Date: Mon Oct 03 21:04:29 2016

[wasm] [asm.js] Track direct function indices and fixup.

Recent changes to the wasm format prevent you from knowing
the function index of a direct call until you know how many
imports you have (the index spaces have been merged).

Asm.js validation can't know this until all callsites have been
visited if you want to avoid materializing the entire AST / parsing twice.
Instead, keep a list of fixups to perform for all direct callsites,
then update these with the imports count added when emitting the module.

BUG= v8:4203 
R=aseemgarg@chromium.org,titzer@chromium.org

Review-Url: https://codereview.chromium.org/2384623003
Cr-Commit-Position: refs/heads/master@{#39937}

[modify] https://crrev.com/cfed56c2c539fc2a103423169212999b1e7143c5/src/asmjs/asm-wasm-builder.cc
[modify] https://crrev.com/cfed56c2c539fc2a103423169212999b1e7143c5/src/wasm/wasm-module-builder.cc
[modify] https://crrev.com/cfed56c2c539fc2a103423169212999b1e7143c5/src/wasm/wasm-module-builder.h

Project Member

Comment 66 by bugdroid1@chromium.org, Oct 5 2016

Project Member

Comment 67 by bugdroid1@chromium.org, Oct 5 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/e901ccdd183b5f029fec9de8067408560ae4a5ff

commit e901ccdd183b5f029fec9de8067408560ae4a5ff
Author: bradnelson <bradnelson@chromium.org>
Date: Wed Oct 05 19:46:06 2016

[wasm] [asm.js] Fix asm.js issues around floating point globals.

Allow fround to take values without dots for globals (the spec allows this
subtly).

Drop over-restrictive assert preventing floating point globals from working.

BUG= v8:4203 
R=jpp@chromium.org,aseemgarg@chromium.org

Review-Url: https://codereview.chromium.org/2397823003
Cr-Commit-Position: refs/heads/master@{#40013}

[modify] https://crrev.com/e901ccdd183b5f029fec9de8067408560ae4a5ff/src/asmjs/asm-typer.cc
[modify] https://crrev.com/e901ccdd183b5f029fec9de8067408560ae4a5ff/src/asmjs/asm-typer.h
[modify] https://crrev.com/e901ccdd183b5f029fec9de8067408560ae4a5ff/src/asmjs/asm-wasm-builder.cc
[modify] https://crrev.com/e901ccdd183b5f029fec9de8067408560ae4a5ff/test/cctest/asmjs/test-asm-typer.cc
[modify] https://crrev.com/e901ccdd183b5f029fec9de8067408560ae4a5ff/test/mjsunit/wasm/asm-wasm.js

Project Member

Comment 68 by bugdroid1@chromium.org, Oct 10 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c79f5a6f7563346a02c0ef03ae1a449a00da6dec

commit c79f5a6f7563346a02c0ef03ae1a449a00da6dec
Author: bradnelson <bradnelson@chromium.org>
Date: Mon Oct 10 18:31:14 2016

[asm.js] [wasm] Move asm->wasm + WebAssembly switches to features.

Moving asm->wasm and webassembly to a feature will make them
ready to control from a Finch trial with kill-switch.

NOTE: This will mean --enable-wasm will be replaced with:
--enable-features=WebAssembly
and --enable-asm-wasm will be replaced with:
--enable-features=AsmJsToWebAssembly

BUG= https://bugs.chromium.org/p/v8/issues/detail?id=4203
R=asvitkine@chromium.org,jam@chromium.org,titzer@chromium.org,mtrofin@chromium.org

Review-Url: https://codereview.chromium.org/2400823002
Cr-Commit-Position: refs/heads/master@{#424193}

[modify] https://crrev.com/c79f5a6f7563346a02c0ef03ae1a449a00da6dec/chrome/browser/about_flags.cc
[modify] https://crrev.com/c79f5a6f7563346a02c0ef03ae1a449a00da6dec/content/browser/renderer_host/render_process_host_impl.cc
[modify] https://crrev.com/c79f5a6f7563346a02c0ef03ae1a449a00da6dec/content/child/runtime_features.cc
[modify] https://crrev.com/c79f5a6f7563346a02c0ef03ae1a449a00da6dec/content/public/common/content_features.cc
[modify] https://crrev.com/c79f5a6f7563346a02c0ef03ae1a449a00da6dec/content/public/common/content_features.h
[modify] https://crrev.com/c79f5a6f7563346a02c0ef03ae1a449a00da6dec/content/public/common/content_switches.cc
[modify] https://crrev.com/c79f5a6f7563346a02c0ef03ae1a449a00da6dec/content/public/common/content_switches.h
[modify] https://crrev.com/c79f5a6f7563346a02c0ef03ae1a449a00da6dec/content/renderer/render_process_impl.cc
[modify] https://crrev.com/c79f5a6f7563346a02c0ef03ae1a449a00da6dec/third_party/WebKit/LayoutTests/VirtualTestSuites
[modify] https://crrev.com/c79f5a6f7563346a02c0ef03ae1a449a00da6dec/third_party/WebKit/LayoutTests/virtual/enable_wasm/README.txt
[modify] https://crrev.com/c79f5a6f7563346a02c0ef03ae1a449a00da6dec/third_party/WebKit/LayoutTests/virtual/enable_wasm/http/tests/wasm/README.txt
[modify] https://crrev.com/c79f5a6f7563346a02c0ef03ae1a449a00da6dec/tools/metrics/histograms/histograms.xml

Cc: clemensh@chromium.org
Project Member

Comment 70 by bugdroid1@chromium.org, Oct 11 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/dde9c073bfd1dd1a1c09819387dcbdc8cab9f4f9

commit dde9c073bfd1dd1a1c09819387dcbdc8cab9f4f9
Author: clemensh <clemensh@chromium.org>
Date: Tue Oct 11 09:03:22 2016

[wasm] Implement decoding of i32v values

I use it in a follow-up commit to delta-encode asm.js source positions.

This commit also removes the redundant consume_bytes function.

R=ahaas@chromium.org, titzer@chromium.org
BUG= v8:4203 

Review-Url: https://codereview.chromium.org/2406163002
Cr-Commit-Position: refs/heads/master@{#40157}

[modify] https://crrev.com/dde9c073bfd1dd1a1c09819387dcbdc8cab9f4f9/src/wasm/decoder.h
[modify] https://crrev.com/dde9c073bfd1dd1a1c09819387dcbdc8cab9f4f9/src/wasm/wasm-module-builder.h
[modify] https://crrev.com/dde9c073bfd1dd1a1c09819387dcbdc8cab9f4f9/test/unittests/wasm/decoder-unittest.cc

Project Member

Comment 71 by bugdroid1@chromium.org, Oct 11 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/4f9976aa6838ca67754d570d0896e2a073355547

commit 4f9976aa6838ca67754d570d0896e2a073355547
Author: clemensh <clemensh@chromium.org>
Date: Tue Oct 11 10:35:49 2016

[wasm] Decouple function name and exported name in WasmFunctionBuilder

This is needed for the asm.js -> WASM pipeline. A single exported
function is exported as __single_function__, but we still want to see
the correct function name on the stack, so the underlying wasm function
has to carry the original name.

R=ahaas@chromium.org, titzer@chromium.org
BUG= v8:4203 

Review-Url: https://codereview.chromium.org/2406133003
Cr-Commit-Position: refs/heads/master@{#40159}

[modify] https://crrev.com/4f9976aa6838ca67754d570d0896e2a073355547/src/asmjs/asm-wasm-builder.cc
[modify] https://crrev.com/4f9976aa6838ca67754d570d0896e2a073355547/src/wasm/wasm-module-builder.cc
[modify] https://crrev.com/4f9976aa6838ca67754d570d0896e2a073355547/src/wasm/wasm-module-builder.h
[modify] https://crrev.com/4f9976aa6838ca67754d570d0896e2a073355547/test/cctest/wasm/test-run-wasm-module.cc
[modify] https://crrev.com/4f9976aa6838ca67754d570d0896e2a073355547/test/fuzzer/wasm-code.cc

Project Member

Comment 72 by bugdroid1@chromium.org, Oct 12 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/5d9fa102a792a9882be0ff463eaee7d89d259c4e

commit 5d9fa102a792a9882be0ff463eaee7d89d259c4e
Author: clemensh <clemensh@chromium.org>
Date: Wed Oct 12 09:17:12 2016

[wasm] Provide better stack traces for asm.js code

For the asm.js to WASM pipeline, the current stack traces only show
low-level WASM information.
This CL maps this back to asm.js source positions.
It does so by attaching the asm.js source Script to the compiled WASM
module, and emitting a delta-encoded table which maps from WASM byte
offsets to positions within that Script. As asm.js code does not throw
exceptions, we only store a mapping for call instructions.

The new AsmJsWasmStackFrame implementation inherits from
WasmStackFrame, but contains the logic to provide the source script and
the position inside of it.
What is still missing is the JSFunction object returned by
CallSite.getFunction(). We currently return null.

R=jgruber@chromium.org, titzer@chromium.org
BUG= v8:4203 

Review-Url: https://codereview.chromium.org/2404253002
Cr-Commit-Position: refs/heads/master@{#40205}

[modify] https://crrev.com/5d9fa102a792a9882be0ff463eaee7d89d259c4e/src/api.cc
[modify] https://crrev.com/5d9fa102a792a9882be0ff463eaee7d89d259c4e/src/asmjs/asm-js.cc
[modify] https://crrev.com/5d9fa102a792a9882be0ff463eaee7d89d259c4e/src/asmjs/asm-wasm-builder.cc
[modify] https://crrev.com/5d9fa102a792a9882be0ff463eaee7d89d259c4e/src/asmjs/asm-wasm-builder.h
[modify] https://crrev.com/5d9fa102a792a9882be0ff463eaee7d89d259c4e/src/isolate.cc
[modify] https://crrev.com/5d9fa102a792a9882be0ff463eaee7d89d259c4e/src/messages.cc
[modify] https://crrev.com/5d9fa102a792a9882be0ff463eaee7d89d259c4e/src/messages.h
[modify] https://crrev.com/5d9fa102a792a9882be0ff463eaee7d89d259c4e/src/objects-inl.h
[modify] https://crrev.com/5d9fa102a792a9882be0ff463eaee7d89d259c4e/src/objects.h
[modify] https://crrev.com/5d9fa102a792a9882be0ff463eaee7d89d259c4e/src/wasm/module-decoder.cc
[modify] https://crrev.com/5d9fa102a792a9882be0ff463eaee7d89d259c4e/src/wasm/module-decoder.h
[modify] https://crrev.com/5d9fa102a792a9882be0ff463eaee7d89d259c4e/src/wasm/wasm-debug.cc
[modify] https://crrev.com/5d9fa102a792a9882be0ff463eaee7d89d259c4e/src/wasm/wasm-debug.h
[modify] https://crrev.com/5d9fa102a792a9882be0ff463eaee7d89d259c4e/src/wasm/wasm-js.cc
[modify] https://crrev.com/5d9fa102a792a9882be0ff463eaee7d89d259c4e/src/wasm/wasm-module-builder.cc
[modify] https://crrev.com/5d9fa102a792a9882be0ff463eaee7d89d259c4e/src/wasm/wasm-module-builder.h
[modify] https://crrev.com/5d9fa102a792a9882be0ff463eaee7d89d259c4e/src/wasm/wasm-module.cc
[modify] https://crrev.com/5d9fa102a792a9882be0ff463eaee7d89d259c4e/src/wasm/wasm-module.h
[modify] https://crrev.com/5d9fa102a792a9882be0ff463eaee7d89d259c4e/test/common/wasm/wasm-module-runner.cc
[modify] https://crrev.com/5d9fa102a792a9882be0ff463eaee7d89d259c4e/test/mjsunit/mjsunit.js
[add] https://crrev.com/5d9fa102a792a9882be0ff463eaee7d89d259c4e/test/mjsunit/wasm/asm-wasm-stack.js
[modify] https://crrev.com/5d9fa102a792a9882be0ff463eaee7d89d259c4e/test/unittests/wasm/module-decoder-unittest.cc

Project Member

Comment 73 by bugdroid1@chromium.org, Oct 13 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/e902b69d881059cce739a88d3e5f9ce95b5e0625

commit e902b69d881059cce739a88d3e5f9ce95b5e0625
Author: clemensh <clemensh@chromium.org>
Date: Thu Oct 13 13:54:46 2016

[wasm] Stack inspection support for asm.js frames

This CL fixes the debugger interface to provide correct (high-level)
information for asm.js frames.
It moves the computation of the source position from the FrameInspector
to the individual StackFrame implementations, such that we can easily
specualize it for certain frame types, and can potentially reuse this
in other locations.

Also, we are finalizing the setup of the wasm module earlier, before
executing the start function. This is required for correct stack traces
during the execution of the start function.

R=titzer@chromium.org, yangguo@chromium.org
BUG= v8:4203 

Review-Url: https://codereview.chromium.org/2413693003
Cr-Commit-Position: refs/heads/master@{#40268}

[modify] https://crrev.com/e902b69d881059cce739a88d3e5f9ce95b5e0625/src/debug/debug-frames.cc
[modify] https://crrev.com/e902b69d881059cce739a88d3e5f9ce95b5e0625/src/debug/mirrors.js
[modify] https://crrev.com/e902b69d881059cce739a88d3e5f9ce95b5e0625/src/frames.cc
[modify] https://crrev.com/e902b69d881059cce739a88d3e5f9ce95b5e0625/src/frames.h
[modify] https://crrev.com/e902b69d881059cce739a88d3e5f9ce95b5e0625/src/wasm/wasm-module.cc
[add] https://crrev.com/e902b69d881059cce739a88d3e5f9ce95b5e0625/test/mjsunit/wasm/asm-debug.js

Project Member

Comment 74 by bugdroid1@chromium.org, Oct 17 2016

Project Member

Comment 75 by bugdroid1@chromium.org, Oct 17 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/f5d333c2975ca6f36413f1cd62cdd08ff5810404

commit f5d333c2975ca6f36413f1cd62cdd08ff5810404
Author: machenbach <machenbach@chromium.org>
Date: Mon Oct 17 12:37:58 2016

Revert of [debug] Consistently use script from FrameMirror (patchset #3 id:40001 of https://codereview.chromium.org/2415073003/ )

Reason for revert:
https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/10706

https://github.com/v8/v8/wiki/Blink-layout-tests

Original issue's description:
> [debug] Consistently use script from FrameMirror
>
> ... instead of getting it from the FunctionMirror. For WASM frames
> (including asm.js -> WASM), the function is either unresolved or does
> not contain the script.
>
> The added test case failed before this CL.
>
> R=kozyatinskiy@chromium.org, yangguo@chromium.org, titzer@chromium.org
> BUG= v8:4203 
>
> Committed: https://crrev.com/ce32e2ffd835062d764f3c0ee6a32543417cb615
> Cr-Commit-Position: refs/heads/master@{#40348}

TBR=kozyatinskiy@chromium.org,yangguo@chromium.org,titzer@chromium.org,clemensh@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= v8:4203 

Review-Url: https://codereview.chromium.org/2427633002
Cr-Commit-Position: refs/heads/master@{#40362}

[modify] https://crrev.com/f5d333c2975ca6f36413f1cd62cdd08ff5810404/src/debug/mirrors.js
[modify] https://crrev.com/f5d333c2975ca6f36413f1cd62cdd08ff5810404/src/inspector/debugger-script.js
[modify] https://crrev.com/f5d333c2975ca6f36413f1cd62cdd08ff5810404/src/inspector/debugger_script_externs.js
[delete] https://crrev.com/e7fa9b0129586f9b7c7b2874eff24014ecf1a62a/test/inspector/debugger/asm-js-stack-expected.txt
[delete] https://crrev.com/e7fa9b0129586f9b7c7b2874eff24014ecf1a62a/test/inspector/debugger/asm-js-stack.js

Blockedon: 5528
Project Member

Comment 77 by bugdroid1@chromium.org, Oct 18 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/ea51b8a764a80f047979e577c9d5945f0c83f362

commit ea51b8a764a80f047979e577c9d5945f0c83f362
Author: clemensh <clemensh@chromium.org>
Date: Tue Oct 18 08:19:00 2016

[debug] [reland] Consistently use script from FrameMirror

... instead of getting it from the FunctionMirror. For WASM frames
(including asm.js -> WASM), the function is either unresolved or does
not contain the script.

The added test case failed before this CL.

R=kozyatinskiy@chromium.org, yangguo@chromium.org, titzer@chromium.org
BUG= v8:4203 , chromium:656622

Committed: https://crrev.com/ce32e2ffd835062d764f3c0ee6a32543417cb615
Review-Url: https://codereview.chromium.org/2415073003
Cr-Original-Commit-Position: refs/heads/master@{#40348}
Cr-Commit-Position: refs/heads/master@{#40387}

[modify] https://crrev.com/ea51b8a764a80f047979e577c9d5945f0c83f362/src/debug/mirrors.js
[modify] https://crrev.com/ea51b8a764a80f047979e577c9d5945f0c83f362/src/inspector/debugger-script.js
[modify] https://crrev.com/ea51b8a764a80f047979e577c9d5945f0c83f362/src/inspector/debugger_script_externs.js
[add] https://crrev.com/ea51b8a764a80f047979e577c9d5945f0c83f362/test/inspector/debugger/asm-js-stack-expected.txt
[add] https://crrev.com/ea51b8a764a80f047979e577c9d5945f0c83f362/test/inspector/debugger/asm-js-stack.js

Cc: dslomov@chromium.org jkummerow@chromium.org kbr@chromium.org stefanoc@chromium.org yangguo@chromium.org
 Issue 2599  has been merged into this issue.
Blockedon: 5539
Blockedon: 5540
Blockedon: 5541
Blockedon: 5542
Blockedon: 5543
Blockedon: 5544
Blockedon: 5545
Project Member

Comment 86 by bugdroid1@chromium.org, Oct 24 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/ef7e896d2a9caad3ae7da4f53bd1c2c2d7921021

commit ef7e896d2a9caad3ae7da4f53bd1c2c2d7921021
Author: clemensh <clemensh@chromium.org>
Date: Mon Oct 24 14:44:39 2016

[wasm] Set externally passed memory non neuterable

If at instantiation we get an existing ArrayBuffer, set it non
neuterable, because we embed the backing memory address in wasm code.

With this fix, all tests pass if validate-asm is set to default=true.

R=titzer@chromium.org
BUG= v8:4203 

Review-Url: https://codereview.chromium.org/2441353003
Cr-Commit-Position: refs/heads/master@{#40536}

[modify] https://crrev.com/ef7e896d2a9caad3ae7da4f53bd1c2c2d7921021/src/wasm/wasm-module.cc

Blockedon: 5568
Labels: Hotlist-asm
Blockedon: chromium:663714
Blockedon: chromium:663717
Project Member

Comment 91 by bugdroid1@chromium.org, Nov 30 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/14e05c104684226ecc2ecaef9794d55803f52023

commit 14e05c104684226ecc2ecaef9794d55803f52023
Author: bradnelson <bradnelson@chromium.org>
Date: Wed Nov 30 00:25:21 2016

[wasm] asm.js - Parse and convert asm.js to wasm a function at a time.

Make the AsmWasmBuilder drive the process of typing and potentially parsing
function bodies. This will allow us to keep only a single asm.js function's
AST in memory as we convert to WebAssembly.
This is needed to keep our memory footprint low.

Add some additional output to a few tests that's helpful to see which stage they fail at.

BUG= https://bugs.chromium.org/p/v8/issues/detail?id=4203
LOG=N
R=marja@chromium.org,adamk@chromium.org,aseemgarg@chromium.org,titzer@chromium.org

Review-Url: https://codereview.chromium.org/2398023002
Cr-Commit-Position: refs/heads/master@{#41372}

[modify] https://crrev.com/14e05c104684226ecc2ecaef9794d55803f52023/src/asmjs/asm-js.cc
[modify] https://crrev.com/14e05c104684226ecc2ecaef9794d55803f52023/src/asmjs/asm-typer.cc
[modify] https://crrev.com/14e05c104684226ecc2ecaef9794d55803f52023/src/asmjs/asm-typer.h
[modify] https://crrev.com/14e05c104684226ecc2ecaef9794d55803f52023/src/asmjs/asm-wasm-builder.cc
[modify] https://crrev.com/14e05c104684226ecc2ecaef9794d55803f52023/src/asmjs/asm-wasm-builder.h
[modify] https://crrev.com/14e05c104684226ecc2ecaef9794d55803f52023/src/ast/scopes.cc
[modify] https://crrev.com/14e05c104684226ecc2ecaef9794d55803f52023/src/ast/scopes.h
[modify] https://crrev.com/14e05c104684226ecc2ecaef9794d55803f52023/src/compiler.cc
[modify] https://crrev.com/14e05c104684226ecc2ecaef9794d55803f52023/src/factory.cc
[modify] https://crrev.com/14e05c104684226ecc2ecaef9794d55803f52023/src/factory.h
[modify] https://crrev.com/14e05c104684226ecc2ecaef9794d55803f52023/src/parsing/parse-info.cc
[modify] https://crrev.com/14e05c104684226ecc2ecaef9794d55803f52023/src/parsing/parse-info.h
[modify] https://crrev.com/14e05c104684226ecc2ecaef9794d55803f52023/src/parsing/parser.cc
[modify] https://crrev.com/14e05c104684226ecc2ecaef9794d55803f52023/src/wasm/wasm-module-builder.cc
[modify] https://crrev.com/14e05c104684226ecc2ecaef9794d55803f52023/src/wasm/wasm-module-builder.h
[modify] https://crrev.com/14e05c104684226ecc2ecaef9794d55803f52023/test/cctest/asmjs/test-asm-typer.cc
[modify] https://crrev.com/14e05c104684226ecc2ecaef9794d55803f52023/test/mjsunit/wasm/asm-wasm.js

Project Member

Comment 92 by bugdroid1@chromium.org, Dec 6 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/fb7ee44ca1b9acbd68b2cda7bfc5929abba2bbb9

commit fb7ee44ca1b9acbd68b2cda7bfc5929abba2bbb9
Author: bradnelson <bradnelson@chromium.org>
Date: Tue Dec 06 10:42:59 2016

[wasm][asm.js] Fix errata 5.4, allow fround on int literal.s

asm.js errata on section 5.4 allows fround of numeric literals
without '.'.

BUG= v8:4203 
R=titzer@chromium.org

Review-Url: https://codereview.chromium.org/2552243002
Cr-Commit-Position: refs/heads/master@{#41510}

[modify] https://crrev.com/fb7ee44ca1b9acbd68b2cda7bfc5929abba2bbb9/src/asmjs/asm-typer.cc
[modify] https://crrev.com/fb7ee44ca1b9acbd68b2cda7bfc5929abba2bbb9/test/mjsunit/wasm/asm-wasm.js

Project Member

Comment 93 by bugdroid1@chromium.org, Dec 6 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/3e8a67e5406be46e971908d69af93bf92b6ff980

commit 3e8a67e5406be46e971908d69af93bf92b6ff980
Author: bradnelson <bradnelson@chromium.org>
Date: Tue Dec 06 11:36:45 2016

[wasm][asm.js] Turning on asm.js->wasm when ignition_staging is on.

BUG= v8:4203 
R=danno@chromium.org,titzer@chromium.org,rmcilroy@chromium.org

Review-Url: https://codereview.chromium.org/2553963003
Cr-Commit-Position: refs/heads/master@{#41515}

[modify] https://crrev.com/3e8a67e5406be46e971908d69af93bf92b6ff980/src/flag-definitions.h

Project Member

Comment 94 by bugdroid1@chromium.org, Dec 6 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/52fd3c1ec5b443de7333f1b53ed25cbc754bd412

commit 52fd3c1ec5b443de7333f1b53ed25cbc754bd412
Author: bradnelson <bradnelson@chromium.org>
Date: Tue Dec 06 14:07:33 2016

[wasm] [asm.js] Avoid expensive GetLineNumber up front in asm-typer.

In switching to incremental parsing, we switched to pre-computing
line numbers for forward declarations. This is expensive,
because GetLineNumber reparses lines.

Also, switch typing maps to unordered_map (as they appear hot).

BUG= v8:4203 
R=titzer@chromium.org

Review-Url: https://codereview.chromium.org/2553033002
Cr-Commit-Position: refs/heads/master@{#41525}

[modify] https://crrev.com/52fd3c1ec5b443de7333f1b53ed25cbc754bd412/src/asmjs/asm-typer.cc
[modify] https://crrev.com/52fd3c1ec5b443de7333f1b53ed25cbc754bd412/src/asmjs/asm-typer.h

Project Member

Comment 95 by bugdroid1@chromium.org, Dec 7 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/ae1c5746f26d19573666790e8a98e1a80ef62562

commit ae1c5746f26d19573666790e8a98e1a80ef62562
Author: clemensh <clemensh@chromium.org>
Date: Wed Dec 07 13:54:02 2016

[wasm] Fix ToNumber conversion

There were two bugs, one partly hiding the other one:
1) We generate the ToNumber conversion for each WASM_TO_JS wrapper,
   even if the expected return type is void.
2) The return node in the WASM_TO_JS wrapper did not use the effect of
   the ToNumber conversion.

This CL fixes both, and adds test cases to check that we do throw an
error trying to convert (e.g.) Symbol to a number, but only if the
return type is not void.
Additional test check that a user-provided valueOf method is actually
called the correct number of times.

R=titzer@chromium.org, bradnelson@chromium.org
BUG= v8:4203 

Review-Url: https://codereview.chromium.org/2552123004
Cr-Commit-Position: refs/heads/master@{#41552}

[modify] https://crrev.com/ae1c5746f26d19573666790e8a98e1a80ef62562/src/compiler/wasm-compiler.cc
[modify] https://crrev.com/ae1c5746f26d19573666790e8a98e1a80ef62562/src/compiler/wasm-compiler.h
[modify] https://crrev.com/ae1c5746f26d19573666790e8a98e1a80ef62562/test/mjsunit/wasm/ffi-error.js
[modify] https://crrev.com/ae1c5746f26d19573666790e8a98e1a80ef62562/test/mjsunit/wasm/ffi.js

Blockedon: 5724
Project Member

Comment 97 by bugdroid1@chromium.org, Dec 8 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/4cfe91cf58e831bd8efb211184bd9c6e182e88f2

commit 4cfe91cf58e831bd8efb211184bd9c6e182e88f2
Author: bradnelson <bradnelson@chromium.org>
Date: Thu Dec 08 09:36:23 2016

[wasm][asm.js] Use x&(x-1) trick to speed up life.

Using x&(x-1) to check for power of two masks usable at runtime
speeds up the life benchmark.

Borrowing this from SimplifiedLowering for the AsmJsRemS internal
wasm opcode.

Leaving this out for general wasm as we should be doing this optimization
in LLVM.

BUG= v8:4203 
TEST=None
R=bmeurer@chromium.org

Review-Url: https://codereview.chromium.org/2556963005
Cr-Commit-Position: refs/heads/master@{#41581}

[modify] https://crrev.com/4cfe91cf58e831bd8efb211184bd9c6e182e88f2/src/compiler/wasm-compiler.cc

Project Member

Comment 98 by bugdroid1@chromium.org, Dec 8 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/94cd46b55e24fa2bb7b06b3da4d5ba7f029bc262

commit 94cd46b55e24fa2bb7b06b3da4d5ba7f029bc262
Author: clemensh <clemensh@chromium.org>
Date: Thu Dec 08 16:47:34 2016

[wasm] Fix location for error in asm.js ToNumber conversion

In the asm.js code translated to wasm, we call imported functions via a
WASM_TO_JS stub, which first calls the function and then calls ToNumber
on the return value. Exceptions can happen in both calls.
We were only ever reporting the location of the function call, whereas
asm.js code executed via turbofan reported the location of the type
coercion operator ("+" on "+foo()" or "|" on "foo()|0").

This CL implements the same behaviour for asm.js code translated to
wasm. The following is changed:
- the AsmWasmBuilder records the parent node when descending on a binary
  operator (also "+foo()" is represented by a binary operation).
- it stores not one location per call in the source position side
  table, but two (one for the call, one for the parent which does the
  type coercion).
- the wasm compiler annotates the source positions "0" and "1" to the
  two calls in the WASM_TO_JS wrapper (only if the module origin is
  asm.js).
- during stack trace generation (in the StackTraceIterator), when we
  move from the WASM_TO_JS frame to the WASM frame, we remember at which
  call inside the WASM_TO_JS wrapper we are, and encode this information
  in the generated caller state, used for the WASM frame.
- the same information is also stored in the FrameArray which is used
  to reconstruct the stack trace later.

R=titzer@chromium.org, bradnelson@chromium.org
CC=jgruber@chromium.org
BUG= v8:4203 , v8:5724 

Review-Url: https://codereview.chromium.org/2555243002
Cr-Commit-Position: refs/heads/master@{#41599}

[modify] https://crrev.com/94cd46b55e24fa2bb7b06b3da4d5ba7f029bc262/src/asmjs/asm-wasm-builder.cc
[modify] https://crrev.com/94cd46b55e24fa2bb7b06b3da4d5ba7f029bc262/src/compiler/pipeline.cc
[modify] https://crrev.com/94cd46b55e24fa2bb7b06b3da4d5ba7f029bc262/src/compiler/pipeline.h
[modify] https://crrev.com/94cd46b55e24fa2bb7b06b3da4d5ba7f029bc262/src/compiler/wasm-compiler.cc
[modify] https://crrev.com/94cd46b55e24fa2bb7b06b3da4d5ba7f029bc262/src/compiler/wasm-compiler.h
[modify] https://crrev.com/94cd46b55e24fa2bb7b06b3da4d5ba7f029bc262/src/frames.cc
[modify] https://crrev.com/94cd46b55e24fa2bb7b06b3da4d5ba7f029bc262/src/frames.h
[modify] https://crrev.com/94cd46b55e24fa2bb7b06b3da4d5ba7f029bc262/src/isolate.cc
[modify] https://crrev.com/94cd46b55e24fa2bb7b06b3da4d5ba7f029bc262/src/messages.cc
[modify] https://crrev.com/94cd46b55e24fa2bb7b06b3da4d5ba7f029bc262/src/messages.h
[modify] https://crrev.com/94cd46b55e24fa2bb7b06b3da4d5ba7f029bc262/src/objects.h
[modify] https://crrev.com/94cd46b55e24fa2bb7b06b3da4d5ba7f029bc262/src/wasm/module-decoder.cc
[modify] https://crrev.com/94cd46b55e24fa2bb7b06b3da4d5ba7f029bc262/src/wasm/module-decoder.h
[modify] https://crrev.com/94cd46b55e24fa2bb7b06b3da4d5ba7f029bc262/src/wasm/wasm-module-builder.cc
[modify] https://crrev.com/94cd46b55e24fa2bb7b06b3da4d5ba7f029bc262/src/wasm/wasm-module-builder.h
[modify] https://crrev.com/94cd46b55e24fa2bb7b06b3da4d5ba7f029bc262/src/wasm/wasm-module.cc
[modify] https://crrev.com/94cd46b55e24fa2bb7b06b3da4d5ba7f029bc262/src/wasm/wasm-objects.cc
[modify] https://crrev.com/94cd46b55e24fa2bb7b06b3da4d5ba7f029bc262/src/wasm/wasm-objects.h
[modify] https://crrev.com/94cd46b55e24fa2bb7b06b3da4d5ba7f029bc262/test/cctest/wasm/wasm-run-utils.h
[add] https://crrev.com/94cd46b55e24fa2bb7b06b3da4d5ba7f029bc262/test/mjsunit/wasm/asm-wasm-exception-in-tonumber.js

Project Member

Comment 99 by bugdroid1@chromium.org, Dec 8 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/d3d125417db0c278a2d27e4a965ad4e82c66e2af

commit d3d125417db0c278a2d27e4a965ad4e82c66e2af
Author: clemensh <clemensh@chromium.org>
Date: Thu Dec 08 17:35:57 2016

Revert of [wasm] Fix location for error in asm.js ToNumber conversion (patchset #5 id:80001 of https://codereview.chromium.org/2555243002/ )

Reason for revert:
gc-stress failures

Original issue's description:
> [wasm] Fix location for error in asm.js ToNumber conversion
>
> In the asm.js code translated to wasm, we call imported functions via a
> WASM_TO_JS stub, which first calls the function and then calls ToNumber
> on the return value. Exceptions can happen in both calls.
> We were only ever reporting the location of the function call, whereas
> asm.js code executed via turbofan reported the location of the type
> coercion operator ("+" on "+foo()" or "|" on "foo()|0").
>
> This CL implements the same behaviour for asm.js code translated to
> wasm. The following is changed:
> - the AsmWasmBuilder records the parent node when descending on a binary
>   operator (also "+foo()" is represented by a binary operation).
> - it stores not one location per call in the source position side
>   table, but two (one for the call, one for the parent which does the
>   type coercion).
> - the wasm compiler annotates the source positions "0" and "1" to the
>   two calls in the WASM_TO_JS wrapper (only if the module origin is
>   asm.js).
> - during stack trace generation (in the StackTraceIterator), when we
>   move from the WASM_TO_JS frame to the WASM frame, we remember at which
>   call inside the WASM_TO_JS wrapper we are, and encode this information
>   in the generated caller state, used for the WASM frame.
> - the same information is also stored in the FrameArray which is used
>   to reconstruct the stack trace later.
>
> R=titzer@chromium.org, bradnelson@chromium.org
> CC=jgruber@chromium.org
> BUG= v8:4203 , v8:5724 
>
> Committed: https://crrev.com/94cd46b55e24fa2bb7b06b3da4d5ba7f029bc262
> Cr-Commit-Position: refs/heads/master@{#41599}

TBR=bradnelson@chromium.org,mstarzinger@chromium.org,titzer@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= v8:4203 , v8:5724 

Review-Url: https://codereview.chromium.org/2563613003
Cr-Commit-Position: refs/heads/master@{#41601}

[modify] https://crrev.com/d3d125417db0c278a2d27e4a965ad4e82c66e2af/src/asmjs/asm-wasm-builder.cc
[modify] https://crrev.com/d3d125417db0c278a2d27e4a965ad4e82c66e2af/src/compiler/pipeline.cc
[modify] https://crrev.com/d3d125417db0c278a2d27e4a965ad4e82c66e2af/src/compiler/pipeline.h
[modify] https://crrev.com/d3d125417db0c278a2d27e4a965ad4e82c66e2af/src/compiler/wasm-compiler.cc
[modify] https://crrev.com/d3d125417db0c278a2d27e4a965ad4e82c66e2af/src/compiler/wasm-compiler.h
[modify] https://crrev.com/d3d125417db0c278a2d27e4a965ad4e82c66e2af/src/frames.cc
[modify] https://crrev.com/d3d125417db0c278a2d27e4a965ad4e82c66e2af/src/frames.h
[modify] https://crrev.com/d3d125417db0c278a2d27e4a965ad4e82c66e2af/src/isolate.cc
[modify] https://crrev.com/d3d125417db0c278a2d27e4a965ad4e82c66e2af/src/messages.cc
[modify] https://crrev.com/d3d125417db0c278a2d27e4a965ad4e82c66e2af/src/messages.h
[modify] https://crrev.com/d3d125417db0c278a2d27e4a965ad4e82c66e2af/src/objects.h
[modify] https://crrev.com/d3d125417db0c278a2d27e4a965ad4e82c66e2af/src/wasm/module-decoder.cc
[modify] https://crrev.com/d3d125417db0c278a2d27e4a965ad4e82c66e2af/src/wasm/module-decoder.h
[modify] https://crrev.com/d3d125417db0c278a2d27e4a965ad4e82c66e2af/src/wasm/wasm-module-builder.cc
[modify] https://crrev.com/d3d125417db0c278a2d27e4a965ad4e82c66e2af/src/wasm/wasm-module-builder.h
[modify] https://crrev.com/d3d125417db0c278a2d27e4a965ad4e82c66e2af/src/wasm/wasm-module.cc
[modify] https://crrev.com/d3d125417db0c278a2d27e4a965ad4e82c66e2af/src/wasm/wasm-objects.cc
[modify] https://crrev.com/d3d125417db0c278a2d27e4a965ad4e82c66e2af/src/wasm/wasm-objects.h
[modify] https://crrev.com/d3d125417db0c278a2d27e4a965ad4e82c66e2af/test/cctest/wasm/wasm-run-utils.h
[delete] https://crrev.com/6595e7405769dc9d49e9568d61485efc6d468baf/test/mjsunit/wasm/asm-wasm-exception-in-tonumber.js

Project Member

Comment 100 by bugdroid1@chromium.org, Dec 9 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/890d28f3615769c3aa82b1bdf7df12c55774f909

commit 890d28f3615769c3aa82b1bdf7df12c55774f909
Author: clemensh <clemensh@chromium.org>
Date: Fri Dec 09 10:29:53 2016

[wasm] Fix location for error in asm.js ToNumber conversion

In the asm.js code translated to wasm, we call imported functions via a
WASM_TO_JS stub, which first calls the function and then calls ToNumber
on the return value. Exceptions can happen in both calls.
We were only ever reporting the location of the function call, whereas
asm.js code executed via turbofan reported the location of the type
coercion operator ("+" on "+foo()" or "|" on "foo()|0").

This CL implements the same behaviour for asm.js code translated to
wasm. The following is changed:
- the AsmWasmBuilder records the parent node when descending on a binary
  operator (also "+foo()" is represented by a binary operation).
- it stores not one location per call in the source position side
  table, but two (one for the call, one for the parent which does the
  type coercion).
- the wasm compiler annotates the source positions "0" and "1" to the
  two calls in the WASM_TO_JS wrapper (only if the module origin is
  asm.js).
- the StackFrame::State struct now also holds the callee_pc_address,
  which is set in ComputeCallerState. The WASM frame uses this
  information to determine whether the callee frame is WASM_TO_JS, and
  whether that frame is at the ToNumber conversion call.
- the same information is also stored in the FrameArray which is used
  to reconstruct the stack trace later.

R=titzer@chromium.org, bradnelson@chromium.org
CC=jgruber@chromium.org
BUG= v8:4203 , v8:5724 

Committed: https://crrev.com/94cd46b55e24fa2bb7b06b3da4d5ba7f029bc262
Review-Url: https://codereview.chromium.org/2555243002
Cr-Original-Commit-Position: refs/heads/master@{#41599}
Cr-Commit-Position: refs/heads/master@{#41613}

[modify] https://crrev.com/890d28f3615769c3aa82b1bdf7df12c55774f909/src/asmjs/asm-wasm-builder.cc
[modify] https://crrev.com/890d28f3615769c3aa82b1bdf7df12c55774f909/src/compiler/pipeline.cc
[modify] https://crrev.com/890d28f3615769c3aa82b1bdf7df12c55774f909/src/compiler/pipeline.h
[modify] https://crrev.com/890d28f3615769c3aa82b1bdf7df12c55774f909/src/compiler/wasm-compiler.cc
[modify] https://crrev.com/890d28f3615769c3aa82b1bdf7df12c55774f909/src/compiler/wasm-compiler.h
[modify] https://crrev.com/890d28f3615769c3aa82b1bdf7df12c55774f909/src/frames.cc
[modify] https://crrev.com/890d28f3615769c3aa82b1bdf7df12c55774f909/src/frames.h
[modify] https://crrev.com/890d28f3615769c3aa82b1bdf7df12c55774f909/src/isolate.cc
[modify] https://crrev.com/890d28f3615769c3aa82b1bdf7df12c55774f909/src/isolate.h
[modify] https://crrev.com/890d28f3615769c3aa82b1bdf7df12c55774f909/src/messages.cc
[modify] https://crrev.com/890d28f3615769c3aa82b1bdf7df12c55774f909/src/messages.h
[modify] https://crrev.com/890d28f3615769c3aa82b1bdf7df12c55774f909/src/objects.h
[modify] https://crrev.com/890d28f3615769c3aa82b1bdf7df12c55774f909/src/wasm/module-decoder.cc
[modify] https://crrev.com/890d28f3615769c3aa82b1bdf7df12c55774f909/src/wasm/module-decoder.h
[modify] https://crrev.com/890d28f3615769c3aa82b1bdf7df12c55774f909/src/wasm/wasm-module-builder.cc
[modify] https://crrev.com/890d28f3615769c3aa82b1bdf7df12c55774f909/src/wasm/wasm-module-builder.h
[modify] https://crrev.com/890d28f3615769c3aa82b1bdf7df12c55774f909/src/wasm/wasm-module.cc
[modify] https://crrev.com/890d28f3615769c3aa82b1bdf7df12c55774f909/src/wasm/wasm-objects.cc
[modify] https://crrev.com/890d28f3615769c3aa82b1bdf7df12c55774f909/src/wasm/wasm-objects.h
[modify] https://crrev.com/890d28f3615769c3aa82b1bdf7df12c55774f909/test/cctest/wasm/wasm-run-utils.h
[add] https://crrev.com/890d28f3615769c3aa82b1bdf7df12c55774f909/test/mjsunit/wasm/asm-wasm-exception-in-tonumber.js

Project Member

Comment 101 by bugdroid1@chromium.org, Dec 12 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/c4057d464511a217851148df862126eea664df33

commit c4057d464511a217851148df862126eea664df33
Author: clemensh <clemensh@chromium.org>
Date: Mon Dec 12 13:31:16 2016

[wasm] Provide correct eval origin for asm.js code

This CL moves all methods related to scripts and eval origin (HasScript,
GetScript, IsEval, GetEvalOrigin) from JSStackFrame to StackFrameBase,
because it also applies to WasmFrames.
This makes the AppendFileLocation method append the same information to
WasmStackFrames and AsmJsWasmStackFrames than to JSStackFrames.

R=titzer@chromium.org, mstarzinger@chromium.org
BUG= v8:4203 

Review-Url: https://codereview.chromium.org/2557923005
Cr-Commit-Position: refs/heads/master@{#41642}

[modify] https://crrev.com/c4057d464511a217851148df862126eea664df33/src/messages.cc
[modify] https://crrev.com/c4057d464511a217851148df862126eea664df33/src/messages.h
[modify] https://crrev.com/c4057d464511a217851148df862126eea664df33/test/mjsunit/wasm/asm-wasm-exception-in-tonumber.js

Project Member

Comment 102 by bugdroid1@chromium.org, Dec 12 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/aabbbec67c3c7363ef08c657f2d688ad2e8f7de8

commit aabbbec67c3c7363ef08c657f2d688ad2e8f7de8
Author: bradnelson <bradnelson@chromium.org>
Date: Mon Dec 12 14:47:56 2016

[wasm] [asmjs] Route asm.js warnings to the dev console.

Generalize Messages to include an error level.
Add a parameter to AddMessageHandler to select which error levels to receive, using a mask (default being just errors, i.e. the current behavior).

BUG= v8:4203 
R=dgozman@chromium.org,machenbach@chromium.org,danno@chromium.org,bmeurer@chromium.org,jochen@chromium.org

Review-Url: https://codereview.chromium.org/2526703002
Cr-Commit-Position: refs/heads/master@{#41648}

[modify] https://crrev.com/aabbbec67c3c7363ef08c657f2d688ad2e8f7de8/include/v8.h
[modify] https://crrev.com/aabbbec67c3c7363ef08c657f2d688ad2e8f7de8/src/api.cc
[modify] https://crrev.com/aabbbec67c3c7363ef08c657f2d688ad2e8f7de8/src/asmjs/asm-js.cc
[modify] https://crrev.com/aabbbec67c3c7363ef08c657f2d688ad2e8f7de8/src/asmjs/asm-typer.cc
[modify] https://crrev.com/aabbbec67c3c7363ef08c657f2d688ad2e8f7de8/src/asmjs/asm-typer.h
[modify] https://crrev.com/aabbbec67c3c7363ef08c657f2d688ad2e8f7de8/src/d8.cc
[modify] https://crrev.com/aabbbec67c3c7363ef08c657f2d688ad2e8f7de8/src/factory.cc
[modify] https://crrev.com/aabbbec67c3c7363ef08c657f2d688ad2e8f7de8/src/messages.cc
[modify] https://crrev.com/aabbbec67c3c7363ef08c657f2d688ad2e8f7de8/src/messages.h
[modify] https://crrev.com/aabbbec67c3c7363ef08c657f2d688ad2e8f7de8/src/objects-inl.h
[modify] https://crrev.com/aabbbec67c3c7363ef08c657f2d688ad2e8f7de8/src/objects.h
[modify] https://crrev.com/aabbbec67c3c7363ef08c657f2d688ad2e8f7de8/test/cctest/asmjs/test-asm-typer.cc
[modify] https://crrev.com/aabbbec67c3c7363ef08c657f2d688ad2e8f7de8/test/cctest/test-api.cc

Project Member

Comment 103 by bugdroid1@chromium.org, Dec 14 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/21255208e279f9bfab3b1c72d778877490efcec5

commit 21255208e279f9bfab3b1c72d778877490efcec5
Author: bradnelson <bradnelson@chromium.org>
Date: Wed Dec 14 14:09:23 2016

[wasm][asm.js] Adding timing info message about asm.js

Adding timing info going to the console about asm.js

Rename ConvertAsmToWasm -> CompileAsmViaWasm, to be more precise.
Add enum for wasm data elements.

BUG= v8:4203 
R=titzer@chromium.org,yangguo@chromium.org

Review-Url: https://codereview.chromium.org/2577453003
Cr-Commit-Position: refs/heads/master@{#41695}

[modify] https://crrev.com/21255208e279f9bfab3b1c72d778877490efcec5/src/asmjs/asm-js.cc
[modify] https://crrev.com/21255208e279f9bfab3b1c72d778877490efcec5/src/asmjs/asm-js.h
[modify] https://crrev.com/21255208e279f9bfab3b1c72d778877490efcec5/src/compiler.cc
[modify] https://crrev.com/21255208e279f9bfab3b1c72d778877490efcec5/src/messages.h

Project Member

Comment 104 by bugdroid1@chromium.org, Dec 14 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/07d5887d7471da0cf7bacb87d9742927f83f0c6d

commit 07d5887d7471da0cf7bacb87d9742927f83f0c6d
Author: bradnelson <bradnelson@chromium.org>
Date: Wed Dec 14 14:21:27 2016

[wasm][asm.js] Routing asm.js warnings to the dev console.

Route asm.js warnings from V8 to the developer console.

Depends on: https://codereview.chromium.org/2526703002/

BUG= v8:4203 ,  chromium:660016 
R=dgozman@chromium.org,jochen@chromium.org
CC=danno@chromium.org,bmeurer@chromium.org

Review-Url: https://codereview.chromium.org/2530503002
Cr-Commit-Position: refs/heads/master@{#438511}

[modify] https://crrev.com/07d5887d7471da0cf7bacb87d9742927f83f0c6d/third_party/WebKit/LayoutTests/VirtualTestSuites
[add] https://crrev.com/07d5887d7471da0cf7bacb87d9742927f83f0c6d/third_party/WebKit/LayoutTests/virtual/enable_asmjs/http/tests/asmjs/README.txt
[add] https://crrev.com/07d5887d7471da0cf7bacb87d9742927f83f0c6d/third_party/WebKit/LayoutTests/virtual/enable_asmjs/http/tests/asmjs/asm-warnings-expected.txt
[add] https://crrev.com/07d5887d7471da0cf7bacb87d9742927f83f0c6d/third_party/WebKit/LayoutTests/virtual/enable_asmjs/http/tests/asmjs/asm-warnings.html
[add] https://crrev.com/07d5887d7471da0cf7bacb87d9742927f83f0c6d/third_party/WebKit/LayoutTests/virtual/enable_asmjs/http/tests/asmjs/worker.js
[modify] https://crrev.com/07d5887d7471da0cf7bacb87d9742927f83f0c6d/third_party/WebKit/Source/bindings/core/v8/V8Initializer.cpp

Project Member

Comment 105 by bugdroid1@chromium.org, Dec 14 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/5124589642ba12228dcd66a8cb8c84c986a13f35

commit 5124589642ba12228dcd66a8cb8c84c986a13f35
Author: bradnelson <bradnelson@chromium.org>
Date: Wed Dec 14 18:12:04 2016

[wasm][asm.js] Print a deterministic success result by default.

Printing an asm.js success message and timings is useful,
but also non-deterministic. Making the message stable unless a flag is passed.
This will avoid making it a hassle in the future to create LayoutTests
that use asm.js and verify console output.

BUG= v8:4203 
R=titzer@chromium.org

Review-Url: https://codereview.chromium.org/2574273002
Cr-Commit-Position: refs/heads/master@{#41700}

[modify] https://crrev.com/5124589642ba12228dcd66a8cb8c84c986a13f35/src/asmjs/asm-js.cc
[modify] https://crrev.com/5124589642ba12228dcd66a8cb8c84c986a13f35/src/flag-definitions.h

Blockedon: 5757
Blockedon: chromium:676654
Project Member

Comment 108 by bugdroid1@chromium.org, Jan 10 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/946cc371ed4b34d1a9f5cc615b14c41b652562ad

commit 946cc371ed4b34d1a9f5cc615b14c41b652562ad
Author: bradnelson <bradnelson@chromium.org>
Date: Tue Jan 10 19:12:49 2017

[wasm][asm.js] Enable --validate-asm by default.

This directs all asm.js traffic via the Wasm backend.

R=titzer@chromium.org,aseemgarg@chromium.org
BUG= v8:4203 

Review-Url: https://codereview.chromium.org/2624813002
Cr-Commit-Position: refs/heads/master@{#42194}

[modify] https://crrev.com/946cc371ed4b34d1a9f5cc615b14c41b652562ad/src/flag-definitions.h

Project Member

Comment 109 by bugdroid1@chromium.org, Jan 10 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/0e03bea7eacdd933b5b80556ca70c7bf7261b4db

commit 0e03bea7eacdd933b5b80556ca70c7bf7261b4db
Author: machenbach <machenbach@chromium.org>
Date: Tue Jan 10 21:09:08 2017

Revert of [wasm][asm.js] Enable --validate-asm by default. (patchset #1 id:1 of https://codereview.chromium.org/2624813002/ )

Reason for revert:
Breaks layout tests:
https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/12554

See also:
https://github.com/v8/v8/wiki/Blink%20layout%20tests

Original issue's description:
> [wasm][asm.js] Enable --validate-asm by default.
>
> This directs all asm.js traffic via the Wasm backend.
>
> R=titzer@chromium.org,aseemgarg@chromium.org
> BUG= v8:4203 
>
> Review-Url: https://codereview.chromium.org/2624813002
> Cr-Commit-Position: refs/heads/master@{#42194}
> Committed: https://chromium.googlesource.com/v8/v8/+/946cc371ed4b34d1a9f5cc615b14c41b652562ad

TBR=aseemgarg@chromium.org,titzer@chromium.org,bradnelson@google.com,bradnelson@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= v8:4203 

Review-Url: https://codereview.chromium.org/2622023002
Cr-Commit-Position: refs/heads/master@{#42200}

[modify] https://crrev.com/0e03bea7eacdd933b5b80556ca70c7bf7261b4db/src/flag-definitions.h

Project Member

Comment 110 by bugdroid1@chromium.org, Jan 10 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/b5071c87f46b21f3e23092b4a9e2d2885089e38a

commit b5071c87f46b21f3e23092b4a9e2d2885089e38a
Author: bradnelson <bradnelson@chromium.org>
Date: Tue Jan 10 23:35:21 2017

[wasm][asm.js] Add flag to optionally suppress asm.js messages.

Asm.js warnings / info is non-canonical.
It may be useful to suppress it in golden file tests
(for instance LayoutTests).

BUG= v8:4203 
R=mtrofin@chromium.org

Review-Url: https://codereview.chromium.org/2625833003
Cr-Commit-Position: refs/heads/master@{#42204}

[modify] https://crrev.com/b5071c87f46b21f3e23092b4a9e2d2885089e38a/src/asmjs/asm-js.cc
[modify] https://crrev.com/b5071c87f46b21f3e23092b4a9e2d2885089e38a/src/flag-definitions.h

Blockedon: chromium:680110
Project Member

Comment 112 by bugdroid1@chromium.org, Jan 11 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/9e60e7ac365d45f3211314f1ecff395f418de770

commit 9e60e7ac365d45f3211314f1ecff395f418de770
Author: bradnelson <bradnelson@chromium.org>
Date: Wed Jan 11 17:33:59 2017

[wasm][asm.js] Disable success messages for asm.js

These interfere with layout tests.

BUG= v8:4203 
R=titzer@chromium.org,jochen@chromium.org

Review-Url: https://codereview.chromium.org/2628703003
Cr-Commit-Position: refs/heads/master@{#42241}

[modify] https://crrev.com/9e60e7ac365d45f3211314f1ecff395f418de770/src/asmjs/asm-js.cc

Project Member

Comment 113 by bugdroid1@chromium.org, Jan 11 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/3169fb94c98953f002908974a606b51a35178046

commit 3169fb94c98953f002908974a606b51a35178046
Author: bradnelson <bradnelson@chromium.org>
Date: Wed Jan 11 18:42:03 2017

[wasm][asm.js] Enable --validate-asm by default.

This directs all asm.js traffic via the Wasm backend.

R=titzer@chromium.org,aseemgarg@chromium.org
BUG= v8:4203 

Review-Url: https://codereview.chromium.org/2624813002
Cr-Original-Commit-Position: refs/heads/master@{#42194}
Committed: https://chromium.googlesource.com/v8/v8/+/946cc371ed4b34d1a9f5cc615b14c41b652562ad
Review-Url: https://codereview.chromium.org/2624813002
Cr-Commit-Position: refs/heads/master@{#42244}

[modify] https://crrev.com/3169fb94c98953f002908974a606b51a35178046/src/flag-definitions.h

Project Member

Comment 114 by bugdroid1@chromium.org, Jan 11 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/57b7617e61e86c83be5819ef826093cafa868f73

commit 57b7617e61e86c83be5819ef826093cafa868f73
Author: bradnelson <bradnelson@chromium.org>
Date: Wed Jan 11 23:14:48 2017

[wasm][asm.js] Fix bad asm.js in layout tests.

This causes validation failures breaking the test expectations
when the new asm.js -> wasm pipeline is turned on.

BUG= v8:4203 
R=danno@chromium.org,machenbach@chromium.org,binji@chromium.org

Review-Url: https://codereview.chromium.org/2624863003
Cr-Commit-Position: refs/heads/master@{#443047}

[modify] https://crrev.com/57b7617e61e86c83be5819ef826093cafa868f73/third_party/WebKit/LayoutTests/fast/workers/worker-shared-asm-buffer.html

Project Member

Comment 115 by bugdroid1@chromium.org, Jan 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/785cedf1ee6671399c2b2b7f6c6a8119f55195b4

commit 785cedf1ee6671399c2b2b7f6c6a8119f55195b4
Author: bradnelson <bradnelson@chromium.org>
Date: Thu Jan 12 01:07:57 2017

[wasm][asm.js] Do same work even when not printing asm info.

Skipping this work seems to perturb a gc-stress issue.
More investigation is likely needed.

BUG= v8:4203 
R=danno@chromium.org

Review-Url: https://codereview.chromium.org/2629043002
Cr-Commit-Position: refs/heads/master@{#42248}

[modify] https://crrev.com/785cedf1ee6671399c2b2b7f6c6a8119f55195b4/src/asmjs/asm-js.cc

Project Member

Comment 116 by bugdroid1@chromium.org, Jan 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/636df54873c966eceed4264cabc2360b76221e26

commit 636df54873c966eceed4264cabc2360b76221e26
Author: bradnelson <bradnelson@google.com>
Date: Thu Jan 12 01:56:47 2017

Revert of [wasm][asm.js] Do same work even when not printing asm info. (patchset #1 id:1 of https://codereview.chromium.org/2629043002/ )

Reason for revert:
Triggers flaky tests.

Original issue's description:
> [wasm][asm.js] Do same work even when not printing asm info.
>
> Skipping this work seems to perturb a gc-stress issue.
> More investigation is likely needed.
>
> BUG= v8:4203 
> R=danno@chromium.org
>
> Review-Url: https://codereview.chromium.org/2629043002
> Cr-Commit-Position: refs/heads/master@{#42248}
> Committed: https://chromium.googlesource.com/v8/v8/+/785cedf1ee6671399c2b2b7f6c6a8119f55195b4

TBR=danno@chromium.org,bradnelson@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= v8:4203 

Review-Url: https://codereview.chromium.org/2627223002
Cr-Commit-Position: refs/heads/master@{#42250}

[modify] https://crrev.com/636df54873c966eceed4264cabc2360b76221e26/src/asmjs/asm-js.cc

Project Member

Comment 117 by bugdroid1@chromium.org, Jan 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/bd7fed19713f020e908a5e273e324439fed485fe

commit bd7fed19713f020e908a5e273e324439fed485fe
Author: bradnelson <bradnelson@chromium.org>
Date: Thu Jan 12 01:57:57 2017

Reland of [wasm][asm.js] Do same work even when not printing asm info. (patchset #1 id:1 of https://codereview.chromium.org/2627223002/ )

Reason for revert:
Triggers flaky tests.

Original issue's description:
> Revert of [wasm][asm.js] Do same work even when not printing asm info. (patchset #1 id:1 of https://codereview.chromium.org/2629043002/ )
>
> Reason for revert:
> Triggers flaky tests.
>
> Original issue's description:
> > [wasm][asm.js] Do same work even when not printing asm info.
> >
> > Skipping this work seems to perturb a gc-stress issue.
> > More investigation is likely needed.
> >
> > BUG= v8:4203 
> > R=danno@chromium.org
> >
> > Review-Url: https://codereview.chromium.org/2629043002
> > Cr-Commit-Position: refs/heads/master@{#42248}
> > Committed: https://chromium.googlesource.com/v8/v8/+/785cedf1ee6671399c2b2b7f6c6a8119f55195b4
>
> TBR=danno@chromium.org,bradnelson@chromium.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG= v8:4203 
>
> Review-Url: https://codereview.chromium.org/2627223002
> Cr-Commit-Position: refs/heads/master@{#42250}
> Committed: https://chromium.googlesource.com/v8/v8/+/636df54873c966eceed4264cabc2360b76221e26

TBR=danno@chromium.org,bradnelson@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= v8:4203 

Review-Url: https://codereview.chromium.org/2626953003
Cr-Commit-Position: refs/heads/master@{#42251}

[modify] https://crrev.com/bd7fed19713f020e908a5e273e324439fed485fe/src/asmjs/asm-js.cc

Project Member

Comment 118 by bugdroid1@chromium.org, Jan 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/f5f22cfc581a6bc52275053c0ce4d5e7cc2ad9f1

commit f5f22cfc581a6bc52275053c0ce4d5e7cc2ad9f1
Author: bradnelson <bradnelson@chromium.org>
Date: Thu Jan 12 01:59:06 2017

Revert of [wasm][asm.js] Do same work even when not printing asm info. (patchset #1 id:1 of https://codereview.chromium.org/2629043002/ )

Reason for revert:
Triggers flaky tests.

Original issue's description:
> [wasm][asm.js] Do same work even when not printing asm info.
>
> Skipping this work seems to perturb a gc-stress issue.
> More investigation is likely needed.
>
> BUG= v8:4203 
> R=danno@chromium.org
>
> Review-Url: https://codereview.chromium.org/2629043002
> Cr-Commit-Position: refs/heads/master@{#42248}
> Committed: https://chromium.googlesource.com/v8/v8/+/785cedf1ee6671399c2b2b7f6c6a8119f55195b4

TBR=danno@chromium.org,bradnelson@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= v8:4203 

Review-Url: https://codereview.chromium.org/2623383002
Cr-Commit-Position: refs/heads/master@{#42252}

[modify] https://crrev.com/f5f22cfc581a6bc52275053c0ce4d5e7cc2ad9f1/src/asmjs/asm-js.cc

Project Member

Comment 119 by bugdroid1@chromium.org, Jan 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/d11da92f43f1f96981cb823ea2d2c9aa23a64176

commit d11da92f43f1f96981cb823ea2d2c9aa23a64176
Author: bradnelson <bradnelson@chromium.org>
Date: Thu Jan 12 02:00:39 2017

Revert of [wasm][asm.js] Enable --validate-asm by default. (patchset #2 id:20001 of https://codereview.chromium.org/2624813002/ )

Reason for revert:
Triggers flaky tests.

Original issue's description:
> [wasm][asm.js] Enable --validate-asm by default.
>
> This directs all asm.js traffic via the Wasm backend.
>
> R=titzer@chromium.org,aseemgarg@chromium.org
> BUG= v8:4203 
>
> Review-Url: https://codereview.chromium.org/2624813002
> Cr-Original-Commit-Position: refs/heads/master@{#42194}
> Committed: https://chromium.googlesource.com/v8/v8/+/946cc371ed4b34d1a9f5cc615b14c41b652562ad
> Review-Url: https://codereview.chromium.org/2624813002
> Cr-Commit-Position: refs/heads/master@{#42244}
> Committed: https://chromium.googlesource.com/v8/v8/+/3169fb94c98953f002908974a606b51a35178046

TBR=aseemgarg@chromium.org,titzer@chromium.org,bradnelson@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= v8:4203 

Review-Url: https://codereview.chromium.org/2627893003
Cr-Commit-Position: refs/heads/master@{#42253}

[modify] https://crrev.com/d11da92f43f1f96981cb823ea2d2c9aa23a64176/src/flag-definitions.h

Project Member

Comment 120 by bugdroid1@chromium.org, Jan 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/26b9a9ef035eeff71ed72fe6a55644305d7d7479

commit 26b9a9ef035eeff71ed72fe6a55644305d7d7479
Author: bradnelson <bradnelson@google.com>
Date: Thu Jan 12 02:22:57 2017

Revert of [wasm][asm.js] Disable success messages for asm.js (patchset #2 id:20001 of https://codereview.chromium.org/2628703003/ )

Reason for revert:
Trigger flaky test.

Original issue's description:
> [wasm][asm.js] Disable success messages for asm.js
>
> These interfere with layout tests.
>
> BUG= v8:4203 
> R=titzer@chromium.org,jochen@chromium.org
>
> Review-Url: https://codereview.chromium.org/2628703003
> Cr-Commit-Position: refs/heads/master@{#42241}
> Committed: https://chromium.googlesource.com/v8/v8/+/9e60e7ac365d45f3211314f1ecff395f418de770

TBR=jochen@chromium.org,titzer@chromium.org,bradnelson@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= v8:4203 

Review-Url: https://codereview.chromium.org/2629033003
Cr-Commit-Position: refs/heads/master@{#42254}

[modify] https://crrev.com/26b9a9ef035eeff71ed72fe6a55644305d7d7479/src/asmjs/asm-js.cc

Project Member

Comment 121 by bugdroid1@chromium.org, Jan 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7417bea53a78a97ae815479e5d73cf0840d90c88

commit 7417bea53a78a97ae815479e5d73cf0840d90c88
Author: bradnelson <bradnelson@chromium.org>
Date: Thu Jan 12 18:01:02 2017

[wasm][asm.js] Turn on asm.js -> WebAssembly by default.

BUG= v8:4203 
R=danno@chromium.org,titzer@chromium.org,jochen@chromium.org

Review-Url: https://codereview.chromium.org/2625823006
Cr-Commit-Position: refs/heads/master@{#443289}

[modify] https://crrev.com/7417bea53a78a97ae815479e5d73cf0840d90c88/content/public/common/content_features.cc

Project Member

Comment 122 by bugdroid1@chromium.org, Jan 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/06def717acdab6e6127ca99f90a6300139d03c36

commit 06def717acdab6e6127ca99f90a6300139d03c36
Author: xlai <xlai@chromium.org>
Date: Thu Jan 12 19:50:17 2017

Revert of [wasm][asm.js] Turn on asm.js -> WebAssembly by default. (patchset #2 id:20001 of https://codereview.chromium.org/2625823006/ )

Reason for revert:
Suspecting this CL is causing these tests to fail:
fast/workers/worker-shared-asm-buffer.html
virtual/sharedarraybuffer/fast/workers/worker-shared-asm-buffer.html

From the layout test results, it seems that turning on asm.js will append some console results to the test outcome.
Example build:
https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Linux%20Trusty/builds/22022

Original issue's description:
> [wasm][asm.js] Turn on asm.js -> WebAssembly by default.
>
> BUG= v8:4203 
> R=danno@chromium.org,titzer@chromium.org,jochen@chromium.org
>
> Review-Url: https://codereview.chromium.org/2625823006
> Cr-Commit-Position: refs/heads/master@{#443289}
> Committed: https://chromium.googlesource.com/chromium/src/+/7417bea53a78a97ae815479e5d73cf0840d90c88

TBR=jochen@chromium.org,bradnelson@google.com,danno@chromium.org,titzer@chromium.org,bradnelson@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= v8:4203 

Review-Url: https://codereview.chromium.org/2631543002
Cr-Commit-Position: refs/heads/master@{#443330}

[modify] https://crrev.com/06def717acdab6e6127ca99f90a6300139d03c36/content/public/common/content_features.cc

Project Member

Comment 123 by bugdroid1@chromium.org, Jan 13 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/f6929084821d4f021b2c2768c9856472ffa42623

commit f6929084821d4f021b2c2768c9856472ffa42623
Author: bradnelson <bradnelson@chromium.org>
Date: Fri Jan 13 02:26:07 2017

[wasm][asm.js] Enable --validate-asm by default.

This directs all asm.js traffic via the Wasm backend.
Make asm.js console output less noisy.

R=titzer@chromium.org,aseemgarg@chromium.org
BUG= v8:4203 

Review-Url: https://codereview.chromium.org/2624813002
Cr-Original-Original-Commit-Position: refs/heads/master@{#42194}
Committed: https://chromium.googlesource.com/v8/v8/+/946cc371ed4b34d1a9f5cc615b14c41b652562ad
Review-Url: https://codereview.chromium.org/2624813002
Cr-Original-Commit-Position: refs/heads/master@{#42244}
Committed: https://chromium.googlesource.com/v8/v8/+/3169fb94c98953f002908974a606b51a35178046
Review-Url: https://codereview.chromium.org/2624813002
Cr-Commit-Position: refs/heads/master@{#42300}

[modify] https://crrev.com/f6929084821d4f021b2c2768c9856472ffa42623/src/asmjs/asm-js.cc
[modify] https://crrev.com/f6929084821d4f021b2c2768c9856472ffa42623/src/flag-definitions.h

Project Member

Comment 124 by bugdroid1@chromium.org, Jan 13 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/7d86a478d22c8ea7dbf16789229e9e1c0b8687ec

commit 7d86a478d22c8ea7dbf16789229e9e1c0b8687ec
Author: bradnelson <bradnelson@chromium.org>
Date: Fri Jan 13 03:38:45 2017

[wasm][asm.js] Don't squish error location because module end not reached.

We recently started emitting an error because a module's validation
doesn't reach the end (due to lack of exports).
This contained a mistake that prevents many most other types
of errors from actually getting out.

Ensuring export errors (or not reaching then end) doesn't clobber
other errors.

TODO(bradnelson): Figure out a way to structure tests so this gets
caught.

BUG= v8:4203 
R=gdeepti@chromium.org

Review-Url: https://codereview.chromium.org/2632593002
Cr-Commit-Position: refs/heads/master@{#42301}

[modify] https://crrev.com/7d86a478d22c8ea7dbf16789229e9e1c0b8687ec/src/asmjs/asm-wasm-builder.cc

Project Member

Comment 125 by bugdroid1@chromium.org, Jan 13 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/87311b5cbaf4473b82d5d8556e5004247adc4d5c

commit 87311b5cbaf4473b82d5d8556e5004247adc4d5c
Author: bradnelson <bradnelson@chromium.org>
Date: Fri Jan 13 04:51:55 2017

[wasm][asm.js] Make asm.js -> wasm message allocations predictable.

We allocate console timing messages for now,
as previously skipping this tickled unrelated flake.
Use a fixed message to make them consistent in predictable mode.

BUG= v8:4203 
TBR=titzer@chromium.org

Review-Url: https://codereview.chromium.org/2628173003
Cr-Commit-Position: refs/heads/master@{#42303}

[modify] https://crrev.com/87311b5cbaf4473b82d5d8556e5004247adc4d5c/src/asmjs/asm-js.cc

Blockedon: chromium:681088
Blockedon: chromium:681090
Blockedon: chromium:681241
Blockedon: chromium:681236
Blockedon: chromium:667678
Project Member

Comment 131 by bugdroid1@chromium.org, Jan 18 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/51a4b9f914fad6f0f0ea0dc2e43e648e132f6653

commit 51a4b9f914fad6f0f0ea0dc2e43e648e132f6653
Author: bradnelson <bradnelson@chromium.org>
Date: Wed Jan 18 21:21:05 2017

[wasm][asm.js] Disable asm->wasm for the M57 branch.

BUG= v8:4203 
R=hablich@chromium.org

Review-Url: https://codereview.chromium.org/2641983002
Cr-Commit-Position: refs/heads/master@{#42479}

[modify] https://crrev.com/51a4b9f914fad6f0f0ea0dc2e43e648e132f6653/src/flag-definitions.h

Project Member

Comment 132 by bugdroid1@chromium.org, Jan 19 2017

Labels: merge-merged-5.7
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/e8ce5c5a31f7b3492a9af1b56c192c398f94a7db

commit e8ce5c5a31f7b3492a9af1b56c192c398f94a7db
Author: Michael Hablich <hablich@chromium.org>
Date: Thu Jan 19 14:07:50 2017

Merged: [wasm][asm.js] Disable asm->wasm for the M57 branch.

Revision: 51a4b9f914fad6f0f0ea0dc2e43e648e132f6653

BUG= v8:4203 
LOG=N
NOTRY=true
NOPRESUBMIT=true
NOTREECHECKS=true
TBR=bradnelson@chromium.org

Review-Url: https://codereview.chromium.org/2642893003 .
Cr-Commit-Position: refs/branch-heads/5.7@{#4}
Cr-Branched-From: 975e9a320b6eaf9f12280c35df98e013beb8f041-refs/heads/5.7.492@{#1}
Cr-Branched-From: 8d76f0e3465a84bbf0bceab114900fbe75844e1f-refs/heads/master@{#42426}

[modify] https://crrev.com/e8ce5c5a31f7b3492a9af1b56c192c398f94a7db/src/flag-definitions.h

Blockedon: 5912
Project Member

Comment 134 by bugdroid1@chromium.org, Feb 2 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f2fb300bb003df54f9e6b8699fbb2d02077bc60c

commit f2fb300bb003df54f9e6b8699fbb2d02077bc60c
Author: bradnelson <bradnelson@chromium.org>
Date: Thu Feb 02 02:24:42 2017

Adding chrome side entries for Asm.js / WebAssembly metrics.

BUG=687759
BUG= v8:4203 
BUG=575167
TEST=None
R=ahaas@chromium.org,isherman@chromium.org
LOG=N

Review-Url: https://codereview.chromium.org/1890773002
Cr-Commit-Position: refs/heads/master@{#447689}

[modify] https://crrev.com/f2fb300bb003df54f9e6b8699fbb2d02077bc60c/tools/metrics/histograms/histograms.xml

Project Member

Comment 135 by bugdroid1@chromium.org, Feb 14 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/be1a5f7551268a0f5cb9119e04af9834125132d0

commit be1a5f7551268a0f5cb9119e04af9834125132d0
Author: clemensh <clemensh@chromium.org>
Date: Tue Feb 14 09:26:52 2017

[asm] Fix lots of invalid asm.js tests

I identified lots of asm.js tests that are actually not valid according
to the spec, hence they execute in default-javascript-mode.
This CL fixes most of them by adding additional type annotations.

The atomic tests are totally non-spec-compliant by expecting a fourth
argument, and infinite-loops-taken expects a function-type parameter,
so I did not fix those.
I also did not fix the regression tests.

R=titzer@chromium.org, bradnelson@chromium.org
BUG= v8:4203 

Review-Url: https://codereview.chromium.org/2663243002
Cr-Commit-Position: refs/heads/master@{#43179}

[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/do-while-false.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/do-while.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/float32array-negative-offset.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/float32array-outofbounds.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/float32array-store-div.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/float64array-negative-offset.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/float64array-outofbounds.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/float64array-store-div.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/float64mul.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/if-cloning.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/if-folding.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/if-reduction.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/if-tonumber.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/infinite-loops-taken.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/int16array-negative-offset.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/int16array-outofbounds.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/int32-div.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/int32-mod.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/int32-mul.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/int32-tmod.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/int32-udiv.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/int32-umod.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/int32array-constant-key.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/int32array-negative-offset.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/int32array-outofbounds.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/int32array-unaligned.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/int32div.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/int32mod-constant.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/int32mod.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/int32modb.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/int8array-negative-offset.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/load-elimination.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/math-abs.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/math-ceil.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/math-clz32.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/math-floor.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/redundancy1.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/redundancy2.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/switch.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/uint32-less-than-shift.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/uint32div.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/uint32mod-constant.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/uint32mod.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/uint8array-outofbounds.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/word32and.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/word32ror.js
[modify] https://crrev.com/be1a5f7551268a0f5cb9119e04af9834125132d0/test/mjsunit/asm/zero-extend.js

Blockedon: 5991
Project Member

Comment 137 by bugdroid1@chromium.org, Feb 23 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/2375dfe06cd6c952d71790de7bb30ead1bd55f95

commit 2375dfe06cd6c952d71790de7bb30ead1bd55f95
Author: bradnelson <bradnelson@chromium.org>
Date: Thu Feb 23 23:50:34 2017

[wasm][asm.js] asm->wasm validator off for ignition staging pending revamped parser.

BUG= v8:4203 
R=rmcilroy@chromium.org

Review-Url: https://codereview.chromium.org/2715743004
Cr-Commit-Position: refs/heads/master@{#43399}

[modify] https://crrev.com/2375dfe06cd6c952d71790de7bb30ead1bd55f95/src/flag-definitions.h

Blockedon: 6090
Project Member

Comment 139 by bugdroid1@chromium.org, Mar 14 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/8c1af20baf74cfa286833fb4b4b67b31ad34662b

commit 8c1af20baf74cfa286833fb4b4b67b31ad34662b
Author: bradnelson <bradnelson@chromium.org>
Date: Tue Mar 14 20:17:04 2017

[wasm][asm.js] Fix asm.js in tests to be more strictly valid.

These tests fail with the new asm.js parser, because they are invalid under
a more strict reading of the spec.

NOTE: These also fail to validate when run in Firefox.

BUG= v8:4203 
BUG= v8:6090 
R=aseemgarg@chromium.org,eholk@chromium.org

Review-Url: https://codereview.chromium.org/2745393002
Cr-Commit-Position: refs/heads/master@{#43803}

[modify] https://crrev.com/8c1af20baf74cfa286833fb4b4b67b31ad34662b/test/mjsunit/wasm/asm-wasm-literals.js
[modify] https://crrev.com/8c1af20baf74cfa286833fb4b4b67b31ad34662b/test/mjsunit/wasm/asm-wasm.js

Project Member

Comment 140 by bugdroid1@chromium.org, Mar 16 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/4c3217e13292a3aab056b5800678754c8dac8bfe

commit 4c3217e13292a3aab056b5800678754c8dac8bfe
Author: bradnelson <bradnelson@chromium.org>
Date: Thu Mar 16 18:10:45 2017

[wasm][asm.js] Adding custom asm.js lexer.

Adding a custom lexer for asm.js parsing.
It takes advantage of a number of asm.js properties to simply things:
* Assumes 'use asm' is the only string.
* Does not handle unicode for now (tools don't emit it).
* Combines global + local string table with lexer.

R=marja@chromium.org,vogelheim@chromium.org,kschimpf@chromium.org

BUG= v8:4203 
BUG= v8:6090 

Review-Url: https://codereview.chromium.org/2751693002
Cr-Commit-Position: refs/heads/master@{#43874}

[modify] https://crrev.com/4c3217e13292a3aab056b5800678754c8dac8bfe/BUILD.gn
[add] https://crrev.com/4c3217e13292a3aab056b5800678754c8dac8bfe/src/asmjs/asm-names.h
[add] https://crrev.com/4c3217e13292a3aab056b5800678754c8dac8bfe/src/asmjs/asm-scanner.cc
[add] https://crrev.com/4c3217e13292a3aab056b5800678754c8dac8bfe/src/asmjs/asm-scanner.h
[modify] https://crrev.com/4c3217e13292a3aab056b5800678754c8dac8bfe/src/flag-definitions.h
[modify] https://crrev.com/4c3217e13292a3aab056b5800678754c8dac8bfe/src/parsing/scanner-character-streams.h
[modify] https://crrev.com/4c3217e13292a3aab056b5800678754c8dac8bfe/src/parsing/scanner.cc
[modify] https://crrev.com/4c3217e13292a3aab056b5800678754c8dac8bfe/src/parsing/scanner.h
[modify] https://crrev.com/4c3217e13292a3aab056b5800678754c8dac8bfe/src/v8.gyp
[modify] https://crrev.com/4c3217e13292a3aab056b5800678754c8dac8bfe/test/unittests/BUILD.gn
[add] https://crrev.com/4c3217e13292a3aab056b5800678754c8dac8bfe/test/unittests/asmjs/asm-scanner-unittest.cc
[modify] https://crrev.com/4c3217e13292a3aab056b5800678754c8dac8bfe/test/unittests/unittests.gyp

Blockedon: 6127
Project Member

Comment 142 by bugdroid1@chromium.org, Mar 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/a2807f2a2a7fa44e9c46783b05c23a3025e2a766

commit a2807f2a2a7fa44e9c46783b05c23a3025e2a766
Author: Clemens Hammacher <clemensh@chromium.org>
Date: Wed Mar 22 17:02:16 2017

[wasm] [asm.js] Store function start position also for init function

The stack check at the beginning of each function maps to the wasm byte
offset 0. For asm.js functions, this byte offset is mapped further to an
asm.js source position. For most functions, we explicitly add an entry
to this side table for offset 0. This was missing for the start
function.

R=ahaas@chromium.org
BUG= v8:4203 , chromium:703568 

Change-Id: I05bc4a8cfa666864bb7a0b23f75186abe0be9bee
Reviewed-on: https://chromium-review.googlesource.com/458437
Commit-Queue: Brad Nelson <bradnelson@chromium.org>
Reviewed-by: Brad Nelson <bradnelson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44037}
[modify] https://crrev.com/a2807f2a2a7fa44e9c46783b05c23a3025e2a766/src/asmjs/asm-wasm-builder.cc
[add] https://crrev.com/a2807f2a2a7fa44e9c46783b05c23a3025e2a766/test/mjsunit/regress/wasm/regression-703568.js

Labels: Priority-2
Project Member

Comment 144 by bugdroid1@chromium.org, Mar 24 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/083a8d7209e4ee3e43bb03ae3bb2633177d4a77c

commit 083a8d7209e4ee3e43bb03ae3bb2633177d4a77c
Author: bradnelson <bradnelson@chromium.org>
Date: Fri Mar 24 05:53:50 2017

[wasm][asm.js] Asm.js -> wasm custom parser.

Add the --fast-validate-asm option, which directs asm.js code
to a new parser + validator + wasm code generator,
which is then compiled using WebAssembly.

This parser takes advantage of asm.js structure to linearly parse
asm.js code, keeping a scope stack + a few additional tables to track
varibles.

BUG= v8:6090 
BUG= v8:4203 

R=mstarzinger@chromium.org,marja@chromium.org,vogelheim@chromium.org,kschimpf@chromium.org

Review-Url: https://codereview.chromium.org/2757693003
Cr-Commit-Position: refs/heads/master@{#44084}

[modify] https://crrev.com/083a8d7209e4ee3e43bb03ae3bb2633177d4a77c/BUILD.gn
[modify] https://crrev.com/083a8d7209e4ee3e43bb03ae3bb2633177d4a77c/src/asmjs/asm-js.cc
[add] https://crrev.com/083a8d7209e4ee3e43bb03ae3bb2633177d4a77c/src/asmjs/asm-parser.cc
[add] https://crrev.com/083a8d7209e4ee3e43bb03ae3bb2633177d4a77c/src/asmjs/asm-parser.h
[modify] https://crrev.com/083a8d7209e4ee3e43bb03ae3bb2633177d4a77c/src/flag-definitions.h
[modify] https://crrev.com/083a8d7209e4ee3e43bb03ae3bb2633177d4a77c/src/v8.gyp
[modify] https://crrev.com/083a8d7209e4ee3e43bb03ae3bb2633177d4a77c/src/wasm/wasm-module-builder.cc
[modify] https://crrev.com/083a8d7209e4ee3e43bb03ae3bb2633177d4a77c/src/wasm/wasm-module-builder.h
[modify] https://crrev.com/083a8d7209e4ee3e43bb03ae3bb2633177d4a77c/src/wasm/wasm-module.cc
[modify] https://crrev.com/083a8d7209e4ee3e43bb03ae3bb2633177d4a77c/test/mjsunit/wasm/asm-wasm.js

Project Member

Comment 145 by bugdroid1@chromium.org, Mar 28 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/be0dbdd679b60c31d480d7635e579787a6a218df

commit be0dbdd679b60c31d480d7635e579787a6a218df
Author: bradnelson <bradnelson@chromium.org>
Date: Tue Mar 28 15:53:19 2017

[wasm][asm.js] Fix and enable several asm.js tests with the new parser.

Fix a few items broken during review of scanner + parser:
* Make the scanner retain stale newline state on a rewind (as otherwise it must be able to correctly rewind that too, though it doesn't need it). (Probably should revisit).
* Change StashCode in the builder skip to the zero case, as it crashes for some reason (added TODO).

Also fix:
* Drop test based on constant expression evaluation in main parser
* Support constant defined based on existing constant.
* Type constants as signed.
* Added a check that all used functions are defined eventually.
* Zone allocate strings for simplicity (TODOs to refactor better).

BUG= v8:6090 
BUG= v8:4203 
R=mstarzinger@chromium.org,marja@chromium.org,vogelheim@chromium.org

Review-Url: https://codereview.chromium.org/2771183002
Cr-Commit-Position: refs/heads/master@{#44200}

[modify] https://crrev.com/be0dbdd679b60c31d480d7635e579787a6a218df/src/asmjs/asm-parser.cc
[modify] https://crrev.com/be0dbdd679b60c31d480d7635e579787a6a218df/src/asmjs/asm-parser.h
[modify] https://crrev.com/be0dbdd679b60c31d480d7635e579787a6a218df/src/asmjs/asm-scanner.cc
[modify] https://crrev.com/be0dbdd679b60c31d480d7635e579787a6a218df/src/wasm/wasm-module-builder.cc
[modify] https://crrev.com/be0dbdd679b60c31d480d7635e579787a6a218df/test/mjsunit/asm/asm-validation.js
[modify] https://crrev.com/be0dbdd679b60c31d480d7635e579787a6a218df/test/mjsunit/mjsunit.status

Project Member

Comment 146 by bugdroid1@chromium.org, Mar 28 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/f8973f1caab084beb4ba35c4f4822dff61aae45f

commit f8973f1caab084beb4ba35c4f4822dff61aae45f
Author: bradnelson <bradnelson@chromium.org>
Date: Tue Mar 28 17:04:10 2017

Revert of [wasm][asm.js] Fix and enable several asm.js tests with the new parser. (patchset #10 id:180001 of https://codereview.chromium.org/2771183002/ )

Reason for revert:
Fails on gc-stress.

Original issue's description:
> [wasm][asm.js] Fix and enable several asm.js tests with the new parser.
>
> Fix a few items broken during review of scanner + parser:
> * Make the scanner retain stale newline state on a rewind (as otherwise it must be able to correctly rewind that too, though it doesn't need it). (Probably should revisit).
> * Change StashCode in the builder skip to the zero case, as it crashes for some reason (added TODO).
>
> Also fix:
> * Drop test based on constant expression evaluation in main parser
> * Support constant defined based on existing constant.
> * Type constants as signed.
> * Added a check that all used functions are defined eventually.
> * Zone allocate strings for simplicity (TODOs to refactor better).
>
> BUG= v8:6090 
> BUG= v8:4203 
> R=mstarzinger@chromium.org,marja@chromium.org,vogelheim@chromium.org
>
> Review-Url: https://codereview.chromium.org/2771183002
> Cr-Commit-Position: refs/heads/master@{#44200}
> Committed: https://chromium.googlesource.com/v8/v8/+/be0dbdd679b60c31d480d7635e579787a6a218df

TBR=clemensh@chromium.org,bradnelson@google.com,marja@chromium.org,mstarzinger@chromium.org,vogelheim@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= v8:6090 

Review-Url: https://codereview.chromium.org/2782613002
Cr-Commit-Position: refs/heads/master@{#44201}

[modify] https://crrev.com/f8973f1caab084beb4ba35c4f4822dff61aae45f/src/asmjs/asm-parser.cc
[modify] https://crrev.com/f8973f1caab084beb4ba35c4f4822dff61aae45f/src/asmjs/asm-parser.h
[modify] https://crrev.com/f8973f1caab084beb4ba35c4f4822dff61aae45f/src/asmjs/asm-scanner.cc
[modify] https://crrev.com/f8973f1caab084beb4ba35c4f4822dff61aae45f/src/wasm/wasm-module-builder.cc
[modify] https://crrev.com/f8973f1caab084beb4ba35c4f4822dff61aae45f/test/mjsunit/asm/asm-validation.js
[modify] https://crrev.com/f8973f1caab084beb4ba35c4f4822dff61aae45f/test/mjsunit/mjsunit.status

Project Member

Comment 147 by bugdroid1@chromium.org, Mar 28 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/a84da1c3b7fcb44ade1d49d97b8c51ba2d89a8f7

commit a84da1c3b7fcb44ade1d49d97b8c51ba2d89a8f7
Author: bradnelson <bradnelson@chromium.org>
Date: Tue Mar 28 17:43:09 2017

[wasm][asm.js] Fix and enable several asm.js tests with the new parser.

Fix a few items broken during review of scanner + parser:
* Make the scanner retain stale newline state on a rewind (as otherwise it must be able to correctly rewind that too, though it doesn't need it). (Probably should revisit).
* Change StashCode in the builder skip to the zero case, as it crashes for some reason (added TODO).

Also fix:
* Drop test based on constant expression evaluation in main parser
* Support constant defined based on existing constant.
* Type constants as signed.
* Added a check that all used functions are defined eventually.
* Zone allocate strings for simplicity (TODOs to refactor better).

BUG= v8:6090 
BUG= v8:4203 
R=mstarzinger@chromium.org,marja@chromium.org,vogelheim@chromium.org

Review-Url: https://codereview.chromium.org/2771183002
Cr-Original-Commit-Position: refs/heads/master@{#44200}
Committed: https://chromium.googlesource.com/v8/v8/+/be0dbdd679b60c31d480d7635e579787a6a218df
Review-Url: https://codereview.chromium.org/2771183002
Cr-Commit-Position: refs/heads/master@{#44203}

[modify] https://crrev.com/a84da1c3b7fcb44ade1d49d97b8c51ba2d89a8f7/src/asmjs/asm-parser.cc
[modify] https://crrev.com/a84da1c3b7fcb44ade1d49d97b8c51ba2d89a8f7/src/asmjs/asm-parser.h
[modify] https://crrev.com/a84da1c3b7fcb44ade1d49d97b8c51ba2d89a8f7/src/asmjs/asm-scanner.cc
[modify] https://crrev.com/a84da1c3b7fcb44ade1d49d97b8c51ba2d89a8f7/src/wasm/wasm-module-builder.cc
[modify] https://crrev.com/a84da1c3b7fcb44ade1d49d97b8c51ba2d89a8f7/src/wasm/wasm-module.cc
[modify] https://crrev.com/a84da1c3b7fcb44ade1d49d97b8c51ba2d89a8f7/test/mjsunit/asm/asm-validation.js
[modify] https://crrev.com/a84da1c3b7fcb44ade1d49d97b8c51ba2d89a8f7/test/mjsunit/mjsunit.status

Blocking: 6409
Blocking: chromium:601652
Project Member

Comment 150 by bugdroid1@chromium.org, Jul 25 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/57031e82db6864b0c0caa67502b222a255ef9a96

commit 57031e82db6864b0c0caa67502b222a255ef9a96
Author: Michael Starzinger <mstarzinger@chromium.org>
Date: Tue Jul 25 16:08:26 2017

[asm.js] Enable --validate-asm by default.

R=rmcilroy@chromium.org
BUG= v8:4203 

Change-Id: I6741eaff237daa32fd4e88a125ebd51fe80d2adb
Reviewed-on: https://chromium-review.googlesource.com/583655
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#46879}
[modify] https://crrev.com/57031e82db6864b0c0caa67502b222a255ef9a96/src/flag-definitions.h

Project Member

Comment 151 by bugdroid1@chromium.org, Aug 17 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2b2ec4ad531ae43a75973857fb969d18d81a22c3

commit 2b2ec4ad531ae43a75973857fb969d18d81a22c3
Author: Brad Nelson <bradnelson@chromium.org>
Date: Thu Aug 17 21:56:07 2017

Enable asm.js -> WebAssembly by default.

Honor disable flag from the chrome side.

BUG= v8:4203 
BUG= chromium:590395 
R=jam@chromium.org

Change-Id: I798cc67255d07bbd8404254ec0b6332e77ec0452
Reviewed-on: https://chromium-review.googlesource.com/619293
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Brad Nelson <bradnelson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#495336}
[modify] https://crrev.com/2b2ec4ad531ae43a75973857fb969d18d81a22c3/content/public/common/content_features.cc
[modify] https://crrev.com/2b2ec4ad531ae43a75973857fb969d18d81a22c3/content/renderer/render_process_impl.cc

Project Member

Comment 152 by bugdroid1@chromium.org, Aug 18 2017

Labels: merge-merged-3163
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/af4d42685a7b406d167276ce54a19daedb3d152b

commit af4d42685a7b406d167276ce54a19daedb3d152b
Author: Brad Nelson <bradnelson@chromium.org>
Date: Fri Aug 18 17:57:00 2017

Enable asm.js -> WebAssembly by default.

Honor disable flag from the chrome side.

BUG= v8:4203 
BUG= chromium:590395 
R=jam@chromium.org
TBR=bradnelson@chromium.org

(cherry picked from commit 2b2ec4ad531ae43a75973857fb969d18d81a22c3)

Change-Id: I798cc67255d07bbd8404254ec0b6332e77ec0452
Reviewed-on: https://chromium-review.googlesource.com/619293
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Brad Nelson <bradnelson@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#495336}
Reviewed-on: https://chromium-review.googlesource.com/621398
Reviewed-by: Brad Nelson <bradnelson@chromium.org>
Cr-Commit-Position: refs/branch-heads/3163@{#677}
Cr-Branched-From: ff259bab28b35d242e10186cd63af7ed404fae0d-refs/heads/master@{#488528}
[modify] https://crrev.com/af4d42685a7b406d167276ce54a19daedb3d152b/content/public/common/content_features.cc
[modify] https://crrev.com/af4d42685a7b406d167276ce54a19daedb3d152b/content/renderer/render_process_impl.cc

Status: Fixed (was: Assigned)
Closing this, as the validator is now in 61.
Separate issues cover any pending items.

Showing comments 54 - 153 of 153 Older

Sign in to add a comment