- 25 Feb, 2017 1 commit
-
-
bbudge authored
- Renames Create ops to Splat. - Adds machine operators to initialize all SIMD machine types. Boolean vector types may need initialization, so provide zero operators. LOG=N BUG=v8:4124,695330 Review-Url: https://codereview.chromium.org/2719483002 Cr-Commit-Position: refs/heads/master@{#43430}
-
- 21 Feb, 2017 1 commit
-
-
bbudge authored
- Adds new machine types SimdBool4/8/16 for the different boolean vector types. - Adds a kSimdMaskRegisters flag for each platform. These are all false for now. - Removes Create, ExtractLane, ReplaceLane, Equal, NotEqual, Swizzle and Shuffle opcodes from the Boolean types. These are unlikely to be well supported natively, and can be synthesized using Select. - Changes the signature of Relational opcodes to return boolean vectors. - Changes the signature of Select opcodes to take boolean vectors. - Updates the ARM implementation of Relational and Select opcodes. LOG=N BUG=v8:4124 Review-Url: https://codereview.chromium.org/2700813002 Cr-Commit-Position: refs/heads/master@{#43348}
-
- 16 Feb, 2017 1 commit
-
-
rossberg authored
We were looking at the unreachable flag or stack_depth of the target frame instead of the current one in a couple of places (most notably BreakTo). This change fixes these bugs and makes us pass the latest spec tests for br_table validation. Also need to ensure that br_table targets have consistent types, which is not implied if the stack is polymorphic. R=titzer@chromium.org BUG= Review-Url: https://codereview.chromium.org/2696813002 Cr-Commit-Position: refs/heads/master@{#43250}
-
- 13 Feb, 2017 1 commit
-
-
Marja Hölttä authored
R=mstarzinger@chromium.org BUG=v8:5294 Change-Id: If2cdb4d38829e69ddd8aecb99c99c3a03050f57c Reviewed-on: https://chromium-review.googlesource.com/441824 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#43158}
-
- 10 Feb, 2017 1 commit
-
-
titzer authored
R=bradnelson@chromium.org,clemensh@chromium.org BUG= Review-Url: https://codereview.chromium.org/2682943007 Cr-Commit-Position: refs/heads/master@{#43077}
-
- 07 Feb, 2017 1 commit
-
-
bbudge authored
- Adds logical and arithmetic shifts for all integer types. - Adds min and max for all integer types. - Adds saturating add and subtract for small integer types. - Removes lane operations from the MachineOperatorCache. LOG=N BUG=v8:4124 Review-Url: https://codereview.chromium.org/2668013003 Cr-Commit-Position: refs/heads/master@{#43005}
-
- 02 Feb, 2017 1 commit
-
-
titzer authored
R=rossberg@chromium.org, bradnelson@chromium.org BUG=chromium:682659 Review-Url: https://codereview.chromium.org/2670673002 Cr-Commit-Position: refs/heads/master@{#42904}
-
- 26 Jan, 2017 1 commit
-
-
bbudge authored
- Adds Int16x8, Int8x16 types. - Adds neg, abs unary ops. - Adds add, sub, mul, and signed / unsigned min / max, comparison ops. LOG=N BUG=v8:4124 Review-Url: https://codereview.chromium.org/2638133002 Cr-Commit-Position: refs/heads/master@{#42674}
-
- 25 Jan, 2017 1 commit
-
-
ahaas authored
R=titzer@chromium.org, clemensh@chromium.org Review-Url: https://codereview.chromium.org/2657443003 Cr-Commit-Position: refs/heads/master@{#42658}
-
- 20 Jan, 2017 2 commits
-
-
titzer authored
R=rossberg@chromium.org BUG=chromium:682659 Review-Url: https://codereview.chromium.org/2646093003 Cr-Commit-Position: refs/heads/master@{#42564}
-
titzer authored
R=clemensh@chromium.org BUG= Review-Url: https://codereview.chromium.org/2644323002 Cr-Commit-Position: refs/heads/master@{#42557}
-
- 19 Jan, 2017 1 commit
-
-
titzer authored
R=rossberg@chromium.org BUG=chromium:682659 Review-Url: https://codereview.chromium.org/2638383004 Cr-Commit-Position: refs/heads/master@{#42502}
-
- 18 Jan, 2017 2 commits
-
-
titzer authored
R=rossberg@chromium.org,clemensh@chromium.org BUG= Review-Url: https://codereview.chromium.org/2640013003 Cr-Commit-Position: refs/heads/master@{#42473}
-
rossberg authored
Makes us pass the spec's memory.wast test. R=titzer@chromium.org BUG= Review-Url: https://codereview.chromium.org/2640453003 Cr-Commit-Position: refs/heads/master@{#42452}
-
- 15 Jan, 2017 1 commit
-
-
titzer authored
R=rossberg@chromium.org BUG=chromium:575167 Review-Url: https://codereview.chromium.org/2630553002 Cr-Original-Original-Commit-Position: refs/heads/master@{#42286} Committed: https://chromium.googlesource.com/v8/v8/+/fcc6e85ec6b01e5367795f98aff104b1ff23f619 Review-Url: https://codereview.chromium.org/2630553002 Cr-Original-Commit-Position: refs/heads/master@{#42315} Committed: https://chromium.googlesource.com/v8/v8/+/74a2f9b7d3c3d9a9284ab8d5a9d08618b8194966 Review-Url: https://codereview.chromium.org/2630553002 Cr-Commit-Position: refs/heads/master@{#42350}
-
- 13 Jan, 2017 2 commits
-
-
titzer authored
Revert of [wasm] Enforce that function bodies end with the \"end\" opcode. (patchset #6 id:100001 of https://codereview.chromium.org/2630553002/ ) Reason for revert: Still breaks Win64 clang build. Original issue's description: > [wasm] Enforce that function bodies end with the \"end\" opcode. > > R=rossberg@chromium.org > BUG=chromium:575167 > > Review-Url: https://codereview.chromium.org/2630553002 > Cr-Original-Commit-Position: refs/heads/master@{#42286} > Committed: https://chromium.googlesource.com/v8/v8/+/fcc6e85ec6b01e5367795f98aff104b1ff23f619 > Review-Url: https://codereview.chromium.org/2630553002 > Cr-Commit-Position: refs/heads/master@{#42315} > Committed: https://chromium.googlesource.com/v8/v8/+/74a2f9b7d3c3d9a9284ab8d5a9d08618b8194966 TBR=mtrofin@chromium.org,rossberg@chromium.org,jbroman@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:575167 Review-Url: https://codereview.chromium.org/2636463002 Cr-Commit-Position: refs/heads/master@{#42317}
-
titzer authored
R=rossberg@chromium.org BUG=chromium:575167 Review-Url: https://codereview.chromium.org/2630553002 Cr-Original-Commit-Position: refs/heads/master@{#42286} Committed: https://chromium.googlesource.com/v8/v8/+/fcc6e85ec6b01e5367795f98aff104b1ff23f619 Review-Url: https://codereview.chromium.org/2630553002 Cr-Commit-Position: refs/heads/master@{#42315}
-
- 12 Jan, 2017 4 commits
-
-
littledan authored
Revert of [wasm] Enforce that function bodies end with the \"end\" opcode. (patchset #1 id:1 of https://codereview.chromium.org/2628203003/ ) Reason for revert: OK, the failure really does seem to be due to this patch: It triggers Clang to crash FAILED: obj/test/unittests/unittests/function-body-decoder-unittest.obj E:\b\build\slave\cache\cipd\goma/gomacc.exe ../../third_party/llvm-build/Release+Asserts/bin/clang-cl.exe /nologo /showIncludes /FC @obj/test/unittests/unittests/function-body-decoder-unittest.obj.rsp /c ../../test/unittests/wasm/function-body-decoder-unittest.cc /Foobj/test/unittests/unittests/function-body-decoder-unittest.obj /Fd"obj/test/unittests/unittests_cc.pdb" Assertion failed: (NumGaps == 0 || Bias < MaxDefRange) && "large ranges should not have gaps", file E:\b\build\slave\win_upload_clang\build\src\third_party\llvm\lib\MC\MCCodeView.cpp, line 531 Wrote crash dump file "C:\Users\CHROME~2\AppData\Local\Temp\goma_temp.5068\clang-cl.exe-563144.dmp" Let's leave it out for now. Original issue's description: > Reland of [wasm] Enforce that function bodies end with the \"end\" opcode. (patchset #1 id:1 of https://codereview.chromium.org/2628883006/ ) > > Reason for revert: > Try a reland; this might not have been the source of tree-closing. > > Original issue's description: > > Revert of [wasm] Enforce that function bodies end with the \"end\" opcode. (patchset #3 id:40001 of https://codereview.chromium.org/2630553002/ ) > > > > Reason for revert: > > Caused tree to close by failing compilation: > > > > https://build.chromium.org/p/client.v8/builders/V8%20Win64%20-%20clang/builds/4451 > > > > Original issue's description: > > > [wasm] Enforce that function bodies end with the \"end\" opcode. > > > > > > R=rossberg@chromium.org > > > BUG=chromium:575167 > > > > > > Review-Url: https://codereview.chromium.org/2630553002 > > > Cr-Commit-Position: refs/heads/master@{#42286} > > > Committed: https://chromium.googlesource.com/v8/v8/+/fcc6e85ec6b01e5367795f98aff104b1ff23f619 > > > > TBR=mtrofin@chromium.org,rossberg@chromium.org,jbroman@chromium.org,titzer@chromium.org > > # Skipping CQ checks because original CL landed less than 1 days ago. > > NOPRESUBMIT=true > > NOTREECHECKS=true > > NOTRY=true > > BUG=chromium:575167 > > > > Review-Url: https://codereview.chromium.org/2628883006 > > Cr-Commit-Position: refs/heads/master@{#42287} > > Committed: https://chromium.googlesource.com/v8/v8/+/1d32a3989bc474745eeb618ebf094634f4efbb36 > > TBR=mtrofin@chromium.org,rossberg@chromium.org,jbroman@chromium.org,titzer@chromium.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=chromium:575167 > > Review-Url: https://codereview.chromium.org/2628203003 > Cr-Commit-Position: refs/heads/master@{#42296} > Committed: https://chromium.googlesource.com/v8/v8/+/e539bd8e0eb6afc8e7c98c38584928d6bc799b5b TBR=mtrofin@chromium.org,rossberg@chromium.org,jbroman@chromium.org,titzer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:575167 Review-Url: https://codereview.chromium.org/2633583002 Cr-Commit-Position: refs/heads/master@{#42298}
-
littledan authored
Reland of [wasm] Enforce that function bodies end with the \"end\" opcode. (patchset #1 id:1 of https://codereview.chromium.org/2628883006/ ) Reason for revert: Try a reland; this might not have been the source of tree-closing. Original issue's description: > Revert of [wasm] Enforce that function bodies end with the \"end\" opcode. (patchset #3 id:40001 of https://codereview.chromium.org/2630553002/ ) > > Reason for revert: > Caused tree to close by failing compilation: > > https://build.chromium.org/p/client.v8/builders/V8%20Win64%20-%20clang/builds/4451 > > Original issue's description: > > [wasm] Enforce that function bodies end with the \"end\" opcode. > > > > R=rossberg@chromium.org > > BUG=chromium:575167 > > > > Review-Url: https://codereview.chromium.org/2630553002 > > Cr-Commit-Position: refs/heads/master@{#42286} > > Committed: https://chromium.googlesource.com/v8/v8/+/fcc6e85ec6b01e5367795f98aff104b1ff23f619 > > TBR=mtrofin@chromium.org,rossberg@chromium.org,jbroman@chromium.org,titzer@chromium.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=chromium:575167 > > Review-Url: https://codereview.chromium.org/2628883006 > Cr-Commit-Position: refs/heads/master@{#42287} > Committed: https://chromium.googlesource.com/v8/v8/+/1d32a3989bc474745eeb618ebf094634f4efbb36 TBR=mtrofin@chromium.org,rossberg@chromium.org,jbroman@chromium.org,titzer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:575167 Review-Url: https://codereview.chromium.org/2628203003 Cr-Commit-Position: refs/heads/master@{#42296}
-
littledan authored
Revert of [wasm] Enforce that function bodies end with the \"end\" opcode. (patchset #3 id:40001 of https://codereview.chromium.org/2630553002/ ) Reason for revert: Caused tree to close by failing compilation: https://build.chromium.org/p/client.v8/builders/V8%20Win64%20-%20clang/builds/4451 Original issue's description: > [wasm] Enforce that function bodies end with the \"end\" opcode. > > R=rossberg@chromium.org > BUG=chromium:575167 > > Review-Url: https://codereview.chromium.org/2630553002 > Cr-Commit-Position: refs/heads/master@{#42286} > Committed: https://chromium.googlesource.com/v8/v8/+/fcc6e85ec6b01e5367795f98aff104b1ff23f619 TBR=mtrofin@chromium.org,rossberg@chromium.org,jbroman@chromium.org,titzer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:575167 Review-Url: https://codereview.chromium.org/2628883006 Cr-Commit-Position: refs/heads/master@{#42287}
-
titzer authored
R=rossberg@chromium.org BUG=chromium:575167 Review-Url: https://codereview.chromium.org/2630553002 Cr-Commit-Position: refs/heads/master@{#42286}
-
- 09 Jan, 2017 2 commits
-
-
titzer authored
R=clemensh@chromium.org BUG= Review-Url: https://codereview.chromium.org/2595733003 Cr-Commit-Position: refs/heads/master@{#42141}
-
clemensh authored
We did not associate any position to the stack check in the wasm function prologue, hence a check failed later when trying to map the non-existent position to the asm.js source position. With this CL, we add a mapping to the source position table, mapping the stack check call to byte offset 0 (which is distinct from any valid instruction position). Also, we add another entry to the asm.js source position sidetable, mapping byte offset 0 to the start source position of the function body. R=titzer@chromium.org, ahaas@chromium.org BUG=chromium:677685 Review-Url: https://codereview.chromium.org/2609363004 Cr-Commit-Position: refs/heads/master@{#42130}
-
- 06 Jan, 2017 2 commits
-
-
mtrofin authored
Separated: - decoding of locals - loop assignment analysis - determination of opcode length as statics that work on a Decoder. Neither need the context of a Module, and were used in scenarios where one wasn't available either. Changed BodyLocalDecls to match the usecases for the type. In all but one (a printer), we want the list (in order of declaration, with repetitions) of types of locals. Removed a now-unnecessary constructor for the WasmFullDecoder. BUG= Review-Url: https://codereview.chromium.org/2610813009 Cr-Commit-Position: refs/heads/master@{#42115}
-
mtrofin authored
Removing "limit_", using just "end_". BUG= Review-Url: https://codereview.chromium.org/2613193002 Cr-Commit-Position: refs/heads/master@{#42105}
-
- 04 Jan, 2017 1 commit
-
-
mtrofin authored
This CL simplifies the relation between the wasm graph builder, the wasm decoder, and the wasm module they work on. BUG= Review-Url: https://codereview.chromium.org/2612643002 Cr-Commit-Position: refs/heads/master@{#42056}
-
- 21 Dec, 2016 3 commits
-
-
titzer authored
This is more renaming work to comply with the naming in the public design repository. E.g. types are called "value types" and we no longer refer to ASTs. R=clemensh@chromium.org BUG= Review-Url: https://codereview.chromium.org/2594993002 Cr-Commit-Position: refs/heads/master@{#41891}
-
titzer authored
Since WASM is no longer an AST :-( R=clemensh@chromium.org BUG= Review-Url: https://codereview.chromium.org/2594973003 Cr-Commit-Position: refs/heads/master@{#41889}
-
clemensh authored
Also, provide a variadic template Return function for easier use, and refactor the underlying Return function to not use the Buffer, since that might still be needed later (for example if trap code is generated during CallIndirect, and the arguments to the call are stored in the buffer). R=titzer@chromium.org Review-Url: https://codereview.chromium.org/2591903003 Cr-Commit-Position: refs/heads/master@{#41888}
-
- 14 Dec, 2016 1 commit
-
-
titzer authored
This CL moves even more limits to wasm-limits.h and enforces limits for types, functions, parameter counts, return counts, local counts, imports, globals, and exports. R=clemensh@chromium.org, ahaas@chromium.org BUG= Review-Url: https://codereview.chromium.org/2574133002 Cr-Commit-Position: refs/heads/master@{#41699}
-
- 06 Dec, 2016 1 commit
-
-
gdeepti authored
R=bbudge@chromium.org, titzer@chromium.org Review-Url: https://codereview.chromium.org/2385393002 Cr-Commit-Position: refs/heads/master@{#41505}
-
- 02 Dec, 2016 1 commit
-
-
aseemgarg authored
BUG=v8:4124 TEST:test-run-wasm-simd-lowering R=bradnelson@chromium.org,titzer@chromium.org,mtrofin@chromium.org Review-Url: https://codereview.chromium.org/2498283002 Cr-Commit-Position: refs/heads/master@{#41443}
-
- 01 Dec, 2016 1 commit
-
-
clemensh authored
The current CHECK/DCHECK implementation fails statically if a signed value is compared against an unsigned value. The common solution is to cast on each caller, which is tedious and error-prone (might hide bugs). This CL implements signed vs. unsigned comparisons by executing up to two comparisons. For example, if i is int32_t and u is uint_32_t, a DCHECK_LE(i, u) would create the check i <= 0 || static_cast<uint32_t>(i) <= u. For checks against constants, at least one of the checks can be removed by compiler optimizations. The tradeoff we have to make is to sometimes silently execute an additional comparison. And we increase code complexity of course, even though the usage is just as easy (or even easier) as before. The compile time impact seems to be minimal: I ran 3 full compilations for Optdebug on my local machine, one time on the current ToT, one time with this CL plus http://crrev.com/2524093002. Before: 143.72 +- 1.21 seconds Now: 144.18 +- 0.67 seconds In order to check that the new comparisons are working, I refactored some DCHECKs in wasm to use the new magic, and added unit test cases. R=ishell@chromium.org, titzer@chromium.org CC=ahaas@chromium.org, bmeurer@chromium.org Committed: https://crrev.com/5925074a9dab5a8577766545b91b62f2c531d3dc Review-Url: https://codereview.chromium.org/2526783002 Cr-Original-Commit-Position: refs/heads/master@{#41275} Cr-Commit-Position: refs/heads/master@{#41411}
-
- 30 Nov, 2016 1 commit
-
-
clemensh authored
These byte pointers (module_start and module_end) were only valid during decoding. During instantiation or execution, they can get invalidated by garbage collection. This CL removes them from the WasmModule struct, and introduces a new ModuleStorage struct as interface to the wasm wire bytes. Since the storage is often needed together with the ModuleEnv, a new ModuleStorageEnv struct holds both a ModuleEnv and a ModuleStorage. The pointers in the ModuleStorage should never escape the live range of this struct, as they might point into a SeqOneByteString or ArrayBuffer. Therefore, the WasmInterpreter needs to create its own copy of the whole module. Runtime functions that previously used the raw pointers in WasmModule (leading to memory errors) now have to use the SeqOneByteString in the WasmCompiledModule. R=titzer@chromium.org BUG=chromium:669518 Review-Url: https://codereview.chromium.org/2540133002 Cr-Commit-Position: refs/heads/master@{#41388}
-
- 24 Nov, 2016 2 commits
-
-
clemensh authored
Revert of [base] Define CHECK comparison for signed vs. unsigned (patchset #5 id:80001 of https://codereview.chromium.org/2526783002/ ) Reason for revert: Need to revert previous CL because of Android compile error, and this one depends in it. Original issue's description: > [base] Define CHECK comparison for signed vs. unsigned > > The current CHECK/DCHECK implementation fails statically if a signed > value is compared against an unsigned value. The common solution is to > cast on each caller, which is tedious and error-prone (might hide bugs). > This CL implements signed vs. unsigned comparisons by executing up to > two comparisons. For example, if i is int32_t and u is uint_32_t, a > DCHECK_LE(i, u) would create the check > i <= 0 || static_cast<uint32_t>(i) <= u. > For checks against constants, at least one of the checks can be removed > by compiler optimizations. > > The tradeoff we have to make is to sometimes silently execute an > additional comparison. And we increase code complexity of course, even > though the usage is just as easy (or even easier) as before. > > The compile time impact seems to be minimal: > I ran 3 full compilations for Optdebug on my local machine, one time on > the current ToT, one time with this CL plus http://crrev.com/2524093002. > Before: 143.72 +- 1.21 seconds > Now: 144.18 +- 0.67 seconds > > In order to check that the new comparisons are working, I refactored > some DCHECKs in wasm to use the new magic. > > R=bmeurer@chromium.org, titzer@chromium.org > > Committed: https://crrev.com/5925074a9dab5a8577766545b91b62f2c531d3dc > Cr-Commit-Position: refs/heads/master@{#41275} TBR=ishell@chromium.org,titzer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/2531533003 Cr-Commit-Position: refs/heads/master@{#41277}
-
clemensh authored
The current CHECK/DCHECK implementation fails statically if a signed value is compared against an unsigned value. The common solution is to cast on each caller, which is tedious and error-prone (might hide bugs). This CL implements signed vs. unsigned comparisons by executing up to two comparisons. For example, if i is int32_t and u is uint_32_t, a DCHECK_LE(i, u) would create the check i <= 0 || static_cast<uint32_t>(i) <= u. For checks against constants, at least one of the checks can be removed by compiler optimizations. The tradeoff we have to make is to sometimes silently execute an additional comparison. And we increase code complexity of course, even though the usage is just as easy (or even easier) as before. The compile time impact seems to be minimal: I ran 3 full compilations for Optdebug on my local machine, one time on the current ToT, one time with this CL plus http://crrev.com/2524093002. Before: 143.72 +- 1.21 seconds Now: 144.18 +- 0.67 seconds In order to check that the new comparisons are working, I refactored some DCHECKs in wasm to use the new magic. R=bmeurer@chromium.org, titzer@chromium.org Review-Url: https://codereview.chromium.org/2526783002 Cr-Commit-Position: refs/heads/master@{#41275}
-
- 21 Nov, 2016 1 commit
-
-
ahaas authored
R=titzer@chromium.org CC=mtrofin@chromium.org Review-Url: https://codereview.chromium.org/2520853003 Cr-Commit-Position: refs/heads/master@{#41155}
-
- 16 Nov, 2016 1 commit
-
-
ahaas authored
R=titzer@chromium.org Review-Url: https://codereview.chromium.org/2502373002 Cr-Commit-Position: refs/heads/master@{#41048}
-
- 11 Nov, 2016 1 commit
-
-
ulan authored
BUG=v8:5614 Review-Url: https://codereview.chromium.org/2492793005 Cr-Commit-Position: refs/heads/master@{#40914}
-
- 10 Nov, 2016 1 commit
-
-
ulan authored
BUG=v8:5614 Review-Url: https://codereview.chromium.org/2487673004 Cr-Commit-Position: refs/heads/master@{#40891}
-