- 25 Jul, 2017 1 commit
-
-
Ross McIlroy authored
Moves AsmJs compilation into an AsmJs compilation job. This enables it to be treated like other unoptimized compilations and avoids some special-casing in compiler.cc. BUG=v8:5203 Change-Id: I71ad27e3f72815b4c4074634fff0d168a9c89102 Reviewed-on: https://chromium-review.googlesource.com/581487Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#46863}
-
- 13 Jul, 2017 1 commit
-
-
Clemens Hammacher authored
There is just one version now, called IsPowerOfTwo. It accepts any integral type. There is one slight semantical change: Called with kMinInt, it previously returned true, because the argument was implicitly casted to an unsigned. It's now (correctly) returning false, so I had to add special handlings of kMinInt in machine-operator-reducer before calling IsPowerOfTwo on that value. R=mlippautz@chromium.org,mstarzinger@chromium.org,jgruber@chromium.org,ishell@chromium.org,yangguo@chromium.org Change-Id: Idc112a89034cdc8c03365b778b33b1c29fefb38d Reviewed-on: https://chromium-review.googlesource.com/568140Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#46627}
-
- 10 Jul, 2017 1 commit
-
-
jgruber authored
This adds a convenience method for the common Smi to int conversion pattern. Bug: Change-Id: I7d7b171c36cfec5f6d10c60f1d9c3e06e3aed0fa Reviewed-on: https://chromium-review.googlesource.com/563205 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Andreas Rossberg <rossberg@chromium.org> Cr-Commit-Position: refs/heads/master@{#46516}
-
- 30 Jun, 2017 1 commit
-
-
Josh Wolfe authored
Includes unit tests for the post-processing step flatten_regions_to_parts(). Bug: v8:5244 TBR: bmeurer@chromium.org, rossberg@chromium.org Cq-Include-Trybots: master.tryserver.v8:v8_linux_noi18n_rel_ng Change-Id: I306dd1721cc00c5820b061f14c4b6866f8d938f6 Reviewed-on: https://chromium-review.googlesource.com/529973 Commit-Queue: Josh Wolfe <jwolfe@igalia.com> Reviewed-by:
Daniel Ehrenberg <littledan@chromium.org> Cr-Commit-Position: refs/heads/master@{#46369}
-
- 09 Jun, 2017 1 commit
-
-
Clemens Hammacher authored
base::Optional is a replacement for std::optional, until we switch to C++17 and can use std::optional directly. The implementation is copied from chromium's base::Optional, but put in the {v8::base} namespace instead of just {base}. Also, the specialization of std::hash for base::Optional is omitted, since it's disallowed in the style guide. A first use in the AsmJsParser is introduced, if that one sticks, I will refactor more uses of std::unique_ptr to use base::Optional instead, avoiding the heap allocation. R=mstarzinger@chromium.org BUG=v8:6474 Change-Id: I019599d4bf9ff0105bf592dfb96d6050feba18ae Reviewed-on: https://chromium-review.googlesource.com/528884 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#45810}
-
- 01 Jun, 2017 1 commit
-
-
Michael Starzinger authored
R=clemensh@chromium.org TEST=mjsunit/asm/regress-719866 BUG=chromium:719866 Change-Id: I6cc9f222769aa036275654286c9c6271ef2d1334 Reviewed-on: https://chromium-review.googlesource.com/520945Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#45660}
-
- 31 May, 2017 1 commit
-
-
Michael Starzinger authored
This removes any kind of heap access from the asm.js validator internals and hence makes it independent of a specific Isolate. It is a precursor towards potentially being able to run validation while streaming. R=clemensh@chromium.org Change-Id: Ia3770bf03bb973b56de897b27be60d7e050af2c4 Reviewed-on: https://chromium-review.googlesource.com/518188 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45628}
-
- 30 May, 2017 1 commit
-
-
Clemens Hammacher authored
This CL replaces the last usages of std::vector in the AsmJsParser by ZoneVector. This allows to also measure the memory consumption of these vectors, since it is now contained in the zone memory. ZoneVectors are reused to avoid accumulating lots of unused memory. This also saves 2.6% performance (avg over 1000 runs) on my local workstation. R=mstarzinger@chromium.org Change-Id: I04c96db558d9c362b1494ddd9e975edf2783403c Reviewed-on: https://chromium-review.googlesource.com/516985Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45591}
-
- 23 May, 2017 1 commit
-
-
Michael Starzinger authored
This makes sure that property lookups on the provided imports object are non-observable to JavaScript. It allows instantiation failures to fall back to JavaScript proper without accidentally calling accessors twice. Also accessors might invalidate previous checks done during linking or throw exceptions. R=clemensh@chromium.org TEST=mjsunit/regress/regress-crbug-719384 BUG=chromium:719384 Change-Id: I3db2672d2a496110f705d02b82878e70cd5d701f Reviewed-on: https://chromium-review.googlesource.com/509552Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#45481}
-
- 22 May, 2017 3 commits
-
-
Wiktor Garbacz authored
Change-Id: I20ed35a7fb5104a9cc66bb54fa8966589c43d7f9 Reviewed-on: https://chromium-review.googlesource.com/507287Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Daniel Clifford <danno@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Jochen Eisinger <jochen@chromium.org> Commit-Queue: Wiktor Garbacz <wiktorg@google.com> Cr-Commit-Position: refs/heads/master@{#45458}
-
Michael Starzinger authored
This makes sure that function imports without a single call site within the asm.js module are still preserved in the WebAssembly module, hence preserving intended JavaScript semantics during module instantiation. R=clemensh@chromium.org TEST=mjsunit/regress/regress-crbug-722348 BUG=chromium:722348 Change-Id: I624d0e52b32b864c1e3002187a99a0a63834a4b0 Reviewed-on: https://chromium-review.googlesource.com/509450Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#45452}
-
Jochen Eisinger authored
R=danno@chromium.org CC=sshruthi@chromium.org TBR=verwaest@chromium.org,bmeurer@chromium.org,yangguo@chromium.org,rossberg@chromium.org Change-Id: I32e09193fa6e847ac3336eab62b6d85c46d71164 Reviewed-on: https://chromium-review.googlesource.com/509508 Commit-Queue: Jochen Eisinger <jochen@chromium.org> Reviewed-by:
Daniel Clifford <danno@chromium.org> Cr-Commit-Position: refs/heads/master@{#45447}
-
- 19 May, 2017 2 commits
-
-
Michael Starzinger authored
This fixes crashes during validation when trying to construct modules with excessively large function tables. The {WasmModuleBuilder} now gracefully checks against existing WebAssembly implementation limits. R=clemensh@chromium.org TEST=mjsunit/regress/regress-crbug-715455 BUG=chromium:715455 Change-Id: Ia9738cb0b49a1eb4caf073b75301c0303f295699 Reviewed-on: https://chromium-review.googlesource.com/509530 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45429}
-
Michael Starzinger authored
This adds reporting of linking failures (i.e. module instantiation) similar to the existing reporting for validation failures. Note that the messages in question are deterministic and can be tested. R=clemensh@chromium.org Change-Id: Ibecebefb86f1d878f626702c05fd0cb21189dc2a Reviewed-on: https://chromium-review.googlesource.com/507488 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Jochen Eisinger <jochen@chromium.org> Cr-Commit-Position: refs/heads/master@{#45421}
-
- 18 May, 2017 1 commit
-
-
Michael Starzinger authored
R=clemensh@chromium.org Change-Id: Ic1cc9bd5560a315128242dc58b29a76e359ca11f Reviewed-on: https://chromium-review.googlesource.com/507212Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#45389}
-
- 17 May, 2017 3 commits
-
-
Michael Starzinger authored
This uses a separate temporary zone for running the asm.js parser, which can be discarded immediately after the parser finished validating one module. It reduces the lifetime of all data-structures local to the parser and only uses the compilation zone to hold the resulting module. R=clemensh@chromium.org Change-Id: I5f5a613e0abd24cd85a49ebd97f9ee7cee46b02a Reviewed-on: https://chromium-review.googlesource.com/506733 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45377}
-
Michael Starzinger authored
This makes message reporting use the same message text for the normal as well as --predictable execution. Running in predictable mode should just suppress all asm.js messages wholesale if needed. R=clemensh@chromium.org Change-Id: Ice1e83c4b098fbc4c3b301c685614afe26190016 Reviewed-on: https://chromium-review.googlesource.com/506093Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#45368}
-
Michael Starzinger authored
This encapsulates message reporting into separate functions independent from the logic of asm.js compilation and instantiation. It is mostly refactoring with a small fix to also report successful instantiation of the "single function" case. R=clemensh@chromium.org Change-Id: I89c2d62707e891bf51c19945c4067195f41290a4 Reviewed-on: https://chromium-review.googlesource.com/506195 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45362}
-
- 15 May, 2017 3 commits
-
-
Clemens Hammacher authored
This timer is disabled since the switch to the new validator. This CL brings it back. R=mstarzinger@chromium.org Change-Id: Ie454af72205564d6fec05dd4b7b44c1e3d0c37d6 Reviewed-on: https://chromium-review.googlesource.com/505610Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45300}
-
Michael Starzinger authored
This makes sure that the evaluation result of the first expression in for-statements is properly dropped, to leave the stack in a balanced state after the statement. It also makes sure validation failures in said expression are handled correctly. R=clemensh@chromium.org TEST=mjsunit/regress/regress-crbug-721835 BUG=chromium:721835 Change-Id: I7e6cff4cea0bbf5aad6a3459e27a08ea814dbdbe Reviewed-on: https://chromium-review.googlesource.com/506148 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45299}
-
Michael Starzinger authored
R=clemensh@chromium.org Change-Id: I616a972283cc85ccaf63c46d0cc11ccbb7563a46 Reviewed-on: https://chromium-review.googlesource.com/504527Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#45289}
-
- 12 May, 2017 1 commit
-
-
Michael Starzinger authored
This makes sure that the order of exports as they appear in asm.js modules is maintained globally (not just per function) while being translated to a WASM module. R=clemensh@chromium.org TEST=mjsunit/asm/asm-validation BUG=chromium:720586 Change-Id: I8b26d717ae2f88467d41670bced901f196c7b3fc Reviewed-on: https://chromium-review.googlesource.com/503708 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45277}
-
- 11 May, 2017 1 commit
-
-
Michael Starzinger authored
This makes sure that function variables as well as function table variables are properly typed as immutable, hence assignments to them should cause validation failures. R=clemensh@chromium.org TEST=mjsunit/asm/immutable BUG=chromium:721271 Change-Id: Ia3f65fd0782ca571ffcf99520fdbd8fc5a359d16 Reviewed-on: https://chromium-review.googlesource.com/503209Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#45256}
-
- 10 May, 2017 3 commits
-
-
Michael Starzinger authored
This makes sure that the checking of stdlib values during module instantiation is non-observable. It is needed to prevent observable double evaluation of the involved property loads in case of failures during instantiation and also fixes some issues with exceptions happening during property loads. R=clemensh@chromium.org TEST=mjsunit/asm/asm-stdlib BUG=v8:6297 Change-Id: I1d0c371e51bee8186d14fa794fb3f9b7f67e5944 Reviewed-on: https://chromium-review.googlesource.com/501887Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#45237}
-
Michael Starzinger authored
R=clemensh@chromium.org Change-Id: Id3a44a247bc881ba0f9d41a242cbb6130094771c Reviewed-on: https://chromium-review.googlesource.com/501847 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45233}
-
Michael Starzinger authored
This fixes cases where falling off the end of a non-void function was accepted as a valid asm.js module. This led to translation failures in the WASM code. Only void functions are allowed to fall off the end. R=clemensh@chromium.org TEST=mjsunit/asm/return-types BUG=chromium:719286 Change-Id: I7b1c9ba5381b87a23cf0a2171bee5e5f5e8cd9de Reviewed-on: https://chromium-review.googlesource.com/500312 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45221}
-
- 09 May, 2017 3 commits
-
-
Michael Starzinger authored
R=clemensh@chromium.org BUG=v8:6127 Change-Id: I4f20eae61f47eaa300ba54269c68eefa910b68da Reviewed-on: https://chromium-review.googlesource.com/500068Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#45191}
-
Michael Starzinger authored
R=clemensh@chromium.org Change-Id: Ifa9f0f510bc5b864ebba199603919adb6a35d3a1 Reviewed-on: https://chromium-review.googlesource.com/500267Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#45190}
-
Michael Starzinger authored
This tests and fixes validation failures caused by assignments to variables holding functions references (which are all considered immutable). Such references can come from "stdlib" or "foreign". R=clemensh@chromium.org TEST=mjsunit/asm/global-imports BUG=chromium:719382 Change-Id: Ic02be765e0773a6cc74a54e11a09d42ffb683cb8 Reviewed-on: https://chromium-review.googlesource.com/500188Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#45189}
-
- 05 May, 2017 4 commits
-
-
Michael Starzinger authored
R=clemensh@chromium.org TEST=mjsunit/asm/regress-718745 BUG=chromium:718745 Change-Id: I4d31e90d7a2bbb1d07ce946682a95582f63c7e27 Reviewed-on: https://chromium-review.googlesource.com/497469Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#45134}
-
Michael Starzinger authored
R=clemensh@chromium.org TEST=message/asm-import-wrong-object BUG=chromium:718653 Change-Id: Ib903d7041ffb6a67c1b3c7be3e0f9455229acd90 Reviewed-on: https://chromium-review.googlesource.com/497747Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#45129}
-
Michael Starzinger authored
This makes sure that only the "asm-js.h" header is exposed to outside the directory holding the asm.js validator. It ensures that internals don't leak out of that component, unless they are explicitly exposed through the defined interface. R=clemensh@chromium.org BUG=v8:6127 Change-Id: I7c41782254cfce102af8edf4356205cfca904e60 Reviewed-on: https://chromium-review.googlesource.com/496147Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#45125}
-
Michael Starzinger authored
R=clemensh@chromium.org BUG=v8:6127 Change-Id: I6a098151fef14c0c76c1762d99316a3ae7d12a8e Reviewed-on: https://chromium-review.googlesource.com/496266 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45119}
-
- 04 May, 2017 1 commit
-
-
Michael Starzinger authored
R=clemensh@chromium.org BUG=v8:6127 Change-Id: I104bf807d3da6a9f269e4f729b254bc6a0d2f0df Reviewed-on: https://chromium-review.googlesource.com/496206Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#45098}
-
- 03 May, 2017 1 commit
-
-
Michael Starzinger authored
This fixes cases where the omission of return type annotation of calls to stdlib function was rejected, because a surrounding {fround} call used to be misinterpreted as an annotation instead of a rounding. R=clemensh@chromium.org TEST=mjsunit/asm/call-stdlib BUG=v8:6127 Change-Id: Idec0ef1740ebf8eda969ff05dd1c90252de87a6b Reviewed-on: https://chromium-review.googlesource.com/493349 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45057}
-
- 02 May, 2017 1 commit
-
-
Clemens Hammacher authored
ErrorThrower::Reify() should only be called if an error is actually set. This CL introduces a Reset() method to replace the obsolete (now disallowed) usages. R=mtrofin@chromium.org BUG=chromium:717056 Change-Id: I41b989a9c7b33591ee26ec6d43540a38289ab54f Reviewed-on: https://chromium-review.googlesource.com/493506Reviewed-by:
Mircea Trofin <mtrofin@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45039}
-
- 27 Apr, 2017 3 commits
-
-
Michael Starzinger authored
This makes sure that asm.js modules can only be instantiated with a valid {ArrayBuffer} as the underlying heap buffer for all cases where accepting anything else would be observably different from JavaScript proper. R=clemensh@chromium.org TEST=mjsunit/asm/asm-memory BUG=chromium:715505,chromium:715748 Change-Id: I355686200151c5667bf836824de922d657a8d943 Reviewed-on: https://chromium-review.googlesource.com/488521 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#44938}
-
Jochen Eisinger authored
Instructions after an unconditional jump can be omitted. BUG=chromium:715582 R=bradnelson@chromium.org,verwaest@chromium.org TBR=bradnelson@chromium.org Change-Id: Ie4f4041ed836f328955a0ff396e2dfd6adc01513 Reviewed-on: https://chromium-review.googlesource.com/487983 Commit-Queue: Jochen Eisinger <jochen@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#44923}
-
Michael Starzinger authored
This refactors the {AsmJs} methods used for instantiating an asm.js module to only use one single entry point. It is in preparation to validate the "memory" argument as well. R=clemensh@chromium.org BUG=chromium:715505 Change-Id: I5e26fcf46f98c053080c70b26c0f562afc7f794a Reviewed-on: https://chromium-review.googlesource.com/488226 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#44922}
-
- 26 Apr, 2017 1 commit
-
-
Michael Starzinger authored
R=clemensh@chromium.org TEST=mjsunit/asm/int32-mul BUG=chromium:715482 Change-Id: I525e901fd6ade101999694a53d5147b6e4ccc2e5 Reviewed-on: https://chromium-review.googlesource.com/488024Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#44892}
-