- 31 Jan, 2018 2 commits
-
-
Jaroslav Sevcik authored
This reverts commit 957ac364. Reason for revert: Breaks roll (crbug.com/v8/7388) Original change's description: > [turbofan] disable indirect jumps in Turbofan generated switches > > Bug: > Change-Id: I326bf518f895e7c030376210e7797f3dd4a9ae1f > Reviewed-on: https://chromium-review.googlesource.com/873643 > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> > Commit-Queue: Tobias Tebbi <tebbi@chromium.org> > Cr-Commit-Position: refs/heads/master@{#50984} TBR=jarin@chromium.org,tebbi@chromium.org Change-Id: Id2546e722179e6d8f2f102ce02fb18d696a79764 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/894385Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#50995}
-
Tobias Tebbi authored
Bug: Change-Id: I326bf518f895e7c030376210e7797f3dd4a9ae1f Reviewed-on: https://chromium-review.googlesource.com/873643Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#50984}
-
- 30 Jan, 2018 1 commit
-
-
Junliang Yan authored
Port 1abeb5a3 Original Commit Message: - Shift opcode numbers for asmjs-compat opcodes - Add --experimental-wasm-se flag to gate sign extension opccodes - Fix codegen for ia32 movsx instructions R=gdeepti@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: I3af97112b40d159f9ffc4f465768fc7832485f20 Reviewed-on: https://chromium-review.googlesource.com/893703Reviewed-by:
Joran Siu <joransiu@ca.ibm.com> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#50969}
-
- 15 Jan, 2018 1 commit
-
-
Tobias Tebbi authored
Bug: Change-Id: Icf0c43ef5bd3b3d3055d9606f22d3126b31016e3 Reviewed-on: https://chromium-review.googlesource.com/866930 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#50595}
-
- 11 Jan, 2018 1 commit
-
-
Junliang Yan authored
R=joransiu@ca.ibm.com Bug: Change-Id: I7d65f467ece4b93c268d481318f3d0e6f0485069 Reviewed-on: https://chromium-review.googlesource.com/860763Reviewed-by:
Joran Siu <joransiu@ca.ibm.com> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#50519}
-
- 02 Jan, 2018 1 commit
-
-
Clemens Hammacher authored
After https://crrev.com/c/832457, CheckedLoad is not being used any more. Thus, remove it from the TurboFan backend and from all tests. CheckedStore was already removed in https://crrev.com/c/822570. R=jarin@chromium.org CC=titzer@chromium.org, mstarzinger@chromium.org Change-Id: I2eeec2f4a9d0a10067db5cc25ec41366ae85e917 Reviewed-on: https://chromium-review.googlesource.com/832459 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#50323}
-
- 13 Dec, 2017 2 commits
-
-
Junliang Yan authored
Port bd732f7d Original Commit Message: The original CL introduced a test which uses a random number generator. I disable the test for now, which is okay because this CL adds to a work-in-progress feature anyways, and I will fix the problem in another CL. Original description: Add the ability to return (multiple) return values on the stack: - Extend stack frames with a new buffer region for return slots. This region is located at the end of a caller's frame such that its slots can be indexed as caller frame slots in a callee (located beyond its parameters) and assigned return values. - Adjust stack frame constructon and deconstruction accordingly. - Extend linkage computation to support register plus stack returns. - Reserve return slots in caller frame when respective calls occur. - Introduce and generate architecture instructions ('peek') for reading back results from return slots in the caller. - Aggressive tests. - Some minor clean-up. So far, only ia32 and x64 are implemented. R=ahaas@chromium.org, joransiu@ca.ibm.com, jbarboza@ca.ibm.com BUG= LOG=N Change-Id: I8d63286aa5af5f52cc2eeaf2adeee13d0ff19e7d Reviewed-on: https://chromium-review.googlesource.com/823084 Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Reviewed-by:
Joran Siu <joransiu@ca.ibm.com> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#50091}
-
Sigurd Schneider authored
Bug: v8:7127 Change-Id: Iec65ead1540289aa99f496fd66595f2de88db68c Reviewed-on: https://chromium-review.googlesource.com/817417Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#50062}
-
- 12 Dec, 2017 1 commit
-
-
Ben L. Titzer authored
This operation was used to implement asm.js stores, but is obsolete with asm.js stores now being lowered to normal graph nodes. R=mstarzinger@chromium.org CC=jarin@chromium.org Bug: Change-Id: Iea90b1a62be2e273c0562058642adc5b63ae2cf8 Reviewed-on: https://chromium-review.googlesource.com/822570 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#50046}
-
- 11 Dec, 2017 1 commit
-
-
Junliang Yan authored
Port 663b55aa R=gdeepti@chromium.org, joransiu@ca.ibm.com, jbarboza@ca.ibm.com BUG= LOG=N Change-Id: Ia8cfa8c0927915c4afa07ceac85140231c415a9b Reviewed-on: https://chromium-review.googlesource.com/820196Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#50016}
-
- 02 Dec, 2017 1 commit
-
-
Mathias Bynens authored
This patch normalizes the casing of hexadecimal digits in escape sequences of the form `\xNN` and integer literals of the form `0xNNNN`. Previously, the V8 code base used an inconsistent mixture of uppercase and lowercase. Google’s C++ style guide uses uppercase in its examples: https://google.github.io/styleguide/cppguide.html#Non-ASCII_Characters Moreover, uppercase letters more clearly stand out from the lowercase `x` (or `u`) characters at the start, as well as lowercase letters elsewhere in strings. BUG=v8:7109 TBR=marja@chromium.org,titzer@chromium.org,mtrofin@chromium.org,mstarzinger@chromium.org,rossberg@chromium.org,yangguo@chromium.org,mlippautz@chromium.org NOPRESUBMIT=true Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I790e21c25d96ad5d95c8229724eb45d2aa9e22d6 Reviewed-on: https://chromium-review.googlesource.com/804294 Commit-Queue: Mathias Bynens <mathias@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#49810}
-
- 18 Oct, 2017 1 commit
-
-
Clemens Hammacher authored
This makes the function constexpr and implements it for arbitrary unsigned integer types (up to 64 bits, but this can be extended if needed). R=mstarzinger@chromium.org Bug: v8:6600, v8:6921 Change-Id: I86d427238fadd55abb5a27f31ed648d4b02fc358 Reviewed-on: https://chromium-review.googlesource.com/718457 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#48696}
-
- 16 Oct, 2017 3 commits
-
-
Junliang Yan authored
This is a reland of af49af00 Original change's description: > PPC/s390: Fix arguement handling > > 1. in AssembleMove and AssembleSwap, we need to distinguish Double and Float > 2. in 32-bit mode, double needs to be counted as 2 slots in stack > > R=joransiu@ca.ibm.com, jbarboza@ca.ibm.com, michael_dawson@ca.ibm.com, mmallick@ca.ibm.com > > Bug: > Change-Id: Iffe1844aa72e9d4c9492034c3df9a994e1304a27 > Reviewed-on: https://chromium-review.googlesource.com/720676 > Reviewed-by: Joran Siu <joransiu@ca.ibm.com> > Commit-Queue: Junliang Yan <jyan@ca.ibm.com> > Cr-Commit-Position: refs/heads/master@{#48593} Change-Id: If91125e71b82c92f54f537345e4c213bd185e786 Reviewed-on: https://chromium-review.googlesource.com/721419Reviewed-by:
Joran Siu <joransiu@ca.ibm.com> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#48610}
-
Junliang Yan authored
This reverts commit af49af00. Reason for revert: <INSERT REASONING HERE> There is a mistake in codegen to cause error in snapshot. Original change's description: > PPC/s390: Fix arguement handling > > 1. in AssembleMove and AssembleSwap, we need to distinguish Double and Float > 2. in 32-bit mode, double needs to be counted as 2 slots in stack > > R=joransiu@ca.ibm.com, jbarboza@ca.ibm.com, michael_dawson@ca.ibm.com, mmallick@ca.ibm.com > > Bug: > Change-Id: Iffe1844aa72e9d4c9492034c3df9a994e1304a27 > Reviewed-on: https://chromium-review.googlesource.com/720676 > Reviewed-by: Joran Siu <joransiu@ca.ibm.com> > Commit-Queue: Junliang Yan <jyan@ca.ibm.com> > Cr-Commit-Position: refs/heads/master@{#48593} TBR=michael_dawson@ca.ibm.com,jyan@ca.ibm.com,joransiu@ca.ibm.com,jbarboza@ca.ibm.com,mmallick@ca.ibm.com Change-Id: I76b7eb96e7bfc15e3d2b07474543e996b9ea5f86 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/721140Reviewed-by:
Joran Siu <joransiu@ca.ibm.com> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#48600}
-
Junliang Yan authored
1. in AssembleMove and AssembleSwap, we need to distinguish Double and Float 2. in 32-bit mode, double needs to be counted as 2 slots in stack R=joransiu@ca.ibm.com, jbarboza@ca.ibm.com, michael_dawson@ca.ibm.com, mmallick@ca.ibm.com Bug: Change-Id: Iffe1844aa72e9d4c9492034c3df9a994e1304a27 Reviewed-on: https://chromium-review.googlesource.com/720676Reviewed-by:
Joran Siu <joransiu@ca.ibm.com> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#48593}
-
- 24 Aug, 2017 1 commit
-
-
Michael Starzinger authored
This introduces a {DebugAbort} machine-level operator as well as the corresponding {ArchDebugAbort} backend instruction. The goal of this is to speed up snapshot generation due to cheaper "CSA-asserts". R=jgruber@chromium.org BUG=v8:6688 Bug: v8:6688 Change-Id: If45f7da0652d4bb920c51ab7a7c41f9670434bbb Also-By: jgruber@chromium.org Reviewed-on: https://chromium-review.googlesource.com/628560Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#47568}
-
- 03 Aug, 2017 1 commit
-
-
Anisha Rohra authored
Port 4b0099a4 R=mstarzinger@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, bjaideep@ca.ibm.com BUG= LOG=N Change-Id: I4be5357b265ca970a8d1a0db41ddc73ff47bffdc Reviewed-on: https://chromium-review.googlesource.com/600512Reviewed-by:
Jaideep Bajwa <bjaideep@ca.ibm.com> Commit-Queue: Jaideep Bajwa <bjaideep@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#47145}
-
- 12 Jul, 2017 1 commit
-
-
Michael Starzinger authored
This introduces 2^16 as an upper limit for the allowed value range of a table switch on all architectures. It also fixes several overflows in the table size calculation. R=bmeurer@chromium.org TEST=mjsunit/regress/regress-crbug-736633 BUG=chromium:736633 Change-Id: I931bd226c99eb8a1ae1770c159fc314ff650bf57 Reviewed-on: https://chromium-review.googlesource.com/566829Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#46575}
-
- 08 Jun, 2017 1 commit
-
-
bbudge authored
- Eliminates b1x4, b1x8, and b1x16 as distinct WASM types. - All vector comparisons return v128 type. - Eliminates b1xN and, or, xor, not. - Selects take a v128 mask vector and are now bit-wise. - Adds a new test for Select, where mask is non-canonical (not 0's and -1's). LOG=N BUG=v8:6020 Review-Url: https://codereview.chromium.org/2919203002 Cr-Commit-Position: refs/heads/master@{#45795}
-
- 22 May, 2017 1 commit
-
-
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}
-
- 16 May, 2017 1 commit
-
-
ivica.bogosavljevic authored
Reland d8bfdb7a Original commit message: If alignment parameter is set, the memory returned by the StackSlot operator will be aligned according to the parameter. The implementation goes like this. If alignment parameter is set we allocate a bit more memory than actually needed and so we can move the beginning of the StackSlot in order to have it aligned. BUG= Review-Url: https://codereview.chromium.org/2874713003 Cr-Commit-Position: refs/heads/master@{#45339}
-
- 09 May, 2017 2 commits
-
-
machenbach authored
Revert of [turbofan] Add alignment parameter to StackSlot operator (patchset #7 id:120001 of https://codereview.chromium.org/2816743003/ ) Reason for revert: Seems to break cfi: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20-%20cfi/builds/9989 Original issue's description: > [turbofan] Add alignment parameter to StackSlot operator > > If alignment parameter is set, the memory returned by the > StackSlot operator will be aligned according to the parameter. > > The implementation goes like this. If alignment parameter is set > we allocate a bit more memory than actually needed and so we > can move the beginning of the StackSlot in order to have it aligned. > > > BUG= > > Review-Url: https://codereview.chromium.org/2816743003 > Cr-Commit-Position: refs/heads/master@{#45197} > Committed: https://chromium.googlesource.com/v8/v8/+/d8bfdb7a998adadc56aa5705a5998e75ceae7675 TBR=ahaas@chromium.org,clemensh@chromium.org,titzer@chromium.org,bmeurer@chromium.org,ivica.bogosavljevic@imgtec.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review-Url: https://codereview.chromium.org/2867403002 Cr-Commit-Position: refs/heads/master@{#45203}
-
ivica.bogosavljevic authored
If alignment parameter is set, the memory returned by the StackSlot operator will be aligned according to the parameter. The implementation goes like this. If alignment parameter is set we allocate a bit more memory than actually needed and so we can move the beginning of the StackSlot in order to have it aligned. BUG= Review-Url: https://codereview.chromium.org/2816743003 Cr-Commit-Position: refs/heads/master@{#45197}
-
- 11 Apr, 2017 1 commit
-
-
aseemgarg authored
BUG=v8:4614 R=binji@chromium.org,jarin@chromium.org Review-Url: https://codereview.chromium.org/2799863002 Cr-Commit-Position: refs/heads/master@{#44542}
-
- 31 Mar, 2017 1 commit
-
-
jyan authored
some arch like s390 has native instr can benefit from this. see ~10% improvement on MathAbs on s390 Review-Url: https://codereview.chromium.org/2785773002 Cr-Commit-Position: refs/heads/master@{#44310}
-
- 30 Mar, 2017 1 commit
-
-
bjaideep authored
Implemented l[w|h|b]arx and st[w|h|b]cx instructions which are needed to perform atomic exchange. Also added synchronization primitives similar to arm to simulate those instructions. R=joransiu@ca.ibm.com, jyan@ca.ibm.com, binji@chromium.org, aseemgarg@chromium.org BUG= Review-Url: https://codereview.chromium.org/2754263004 Cr-Commit-Position: refs/heads/master@{#44257}
-
- 16 Mar, 2017 1 commit
-
-
aseemgarg authored
BUG=v8:4614 R=binji@chromium.org Review-Url: https://codereview.chromium.org/2649703002 Cr-Commit-Position: refs/heads/master@{#43878}
-
- 13 Mar, 2017 1 commit
-
-
bjaideep authored
Port 06fef85b Original Commit Message: Part of the performance and refactoring work to move the TypedArray constructors into CSA. This CL moves ConstructByArrayBuffer from JS to CSA. R=petermarshall@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG=v8:5977 LOG=N Review-Url: https://codereview.chromium.org/2742343005 Cr-Commit-Position: refs/heads/master@{#43756}
-
- 08 Mar, 2017 1 commit
-
-
bjaideep authored
Port 301c1237 R=binji@chromium.org, aseemgarg@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG=v8:4614 LOG=N Review-Url: https://codereview.chromium.org/2733953004 Cr-Commit-Position: refs/heads/master@{#43680}
-
- 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}
-
- 10 Feb, 2017 2 commits
-
-
bjaideep authored
Port b8c7870c R=verwaest@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Review-Url: https://codereview.chromium.org/2684353003 Cr-Commit-Position: refs/heads/master@{#43109}
-
verwaest authored
BUG= Review-Url: https://codereview.chromium.org/2682143002 Cr-Original-Commit-Position: refs/heads/master@{#43065} Committed: https://chromium.googlesource.com/v8/v8/+/193a0c118845d068ab386b5c90d04daaa64e1e86 Review-Url: https://codereview.chromium.org/2682143002 Cr-Commit-Position: refs/heads/master@{#43085}
-
- 09 Feb, 2017 2 commits
-
-
machenbach authored
Revert of [compiler] Pass deoptimization_kind through DeoptimizeParameters and FlagsContinuation (patchset #3 id:40001 of https://codereview.chromium.org/2682143002/ ) Reason for revert: cfi failure: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20-%20cfi/builds/8635 Original issue's description: > [compiler] Pass deoptimization_kind through DeoptimizeParameters and FlagsContinuation > > BUG= > > Review-Url: https://codereview.chromium.org/2682143002 > Cr-Commit-Position: refs/heads/master@{#43065} > Committed: https://chromium.googlesource.com/v8/v8/+/193a0c118845d068ab386b5c90d04daaa64e1e86 TBR=jarin@chromium.org,verwaest@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review-Url: https://codereview.chromium.org/2683203002 Cr-Commit-Position: refs/heads/master@{#43070}
-
verwaest authored
BUG= Review-Url: https://codereview.chromium.org/2682143002 Cr-Commit-Position: refs/heads/master@{#43065}
-
- 31 Jan, 2017 1 commit
-
-
bjaideep authored
Port 56429fc1 Original Commit Message: Introduced MachineType::TaggedSigned() and TaggedPointer(). The idea is to quit using the representational dimension of Type, and instead encode this information in the MachineRepresentation (itself lightly wrapped in MachineType, along with MachineSemantic). There are three parts to the whole change: 1) Places that set the machine representation - constant nodes, loads nad stores, global object and native context specialization. 2) Places that propagate type/representation - this is representation inference (aka simplified lowering). At the end of this process we expect to have a MachineRepresentation for every node. An interesting part of this is phi merging. 3) Places that examine representation - WriteBarrier elimination does this. Currently it's looking at the Type representation dimension, but as a part of this change (or in a soon-to-follow change) it can simply examine the MachineRepresentation. R=mvstanton@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Review-Url: https://codereview.chromium.org/2662223003 Cr-Commit-Position: refs/heads/master@{#42817}
-
- 30 Jan, 2017 1 commit
-
-
bjaideep authored
Port ca8d3ba7 Original Commit Message: Original commit message: [wasm] Introduce the TrapIf and TrapUnless operators to generate trap code. Some instructions in WebAssembly trap for some inputs, which means that the execution is terminated and (at least at the moment) a JavaScript exception is thrown. Examples for traps are out-of-bounds memory accesses, or integer divisions by zero. Without the TrapIf and TrapUnless operators trap check in WebAssembly introduces 5 TurboFan nodes (branch, if_true, if_false, trap-reason constant, trap-position constant), in addition to the trap condition itself. Additionally, each WebAssembly function has four TurboFan nodes (merge, effect_phi, 2 phis) whose number of inputs is linear to the number of trap checks in the function. Especially for functions with high numbers of trap checks we observe a significant slowdown in compilation time, down to 0.22 MiB/s in the sqlite benchmark instead of the average of 3 MiB/s in other benchmarks. By introducing a TrapIf common operator only a single node is necessary per trap check, in addition to the trap condition. Also the nodes which are shared between trap checks (merge, effect_phi, 2 phis) would disappear. First measurements suggest a speedup of 30-50% on average. This CL only implements TrapIf and TrapUnless on x64. The implementation is also hidden behind the --wasm-trap-if flag. Please take a special look at how the source position is transfered from the instruction selector to the code generator, and at the context that is used for the runtime call. R=ahaas@chromium.org, titzer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Review-Url: https://codereview.chromium.org/2666433002 Cr-Commit-Position: refs/heads/master@{#42793}
-
- 19 Dec, 2016 1 commit
-
-
titzer authored
This also fixes UBSAN failures due to improper OpParameter<> calls. R=machenbach@chromium.org, clemensh@chromium.org BUG= Review-Url: https://codereview.chromium.org/2587763003 Cr-Commit-Position: refs/heads/master@{#41790}
-
- 15 Dec, 2016 1 commit
-
-
ahaas authored
Some instructions in WebAssembly trap for some inputs, which means that the execution is terminated and (at least at the moment) a JavaScript exception is thrown. Examples for traps are out-of-bounds memory accesses, or integer divisions by zero. Without the TrapIf and TrapUnless operators trap check in WebAssembly introduces 5 TurboFan nodes (branch, if_true, if_false, trap-reason constant, trap-position constant), in addition to the trap condition itself. Additionally, each WebAssembly function has four TurboFan nodes (merge, effect_phi, 2 phis) whose number of inputs is linear to the number of trap checks in the function. Especially for functions with high numbers of trap checks we observe a significant slowdown in compilation time, down to 0.22 MiB/s in the sqlite benchmark instead of the average of 3 MiB/s in other benchmarks. By introducing a TrapIf common operator only a single node is necessary per trap check, in addition to the trap condition. Also the nodes which are shared between trap checks (merge, effect_phi, 2 phis) would disappear. First measurements suggest a speedup of 30-50% on average. This CL only implements TrapIf and TrapUnless on x64. The implementation is also hidden behind the --wasm-trap-if flag. Please take a special look at how the source position is transfered from the instruction selector to the code generator, and at the context that is used for the runtime call. R=titzer@chromium.org Review-Url: https://codereview.chromium.org/2562393002 Cr-Commit-Position: refs/heads/master@{#41720}
-
- 06 Dec, 2016 1 commit
-
-
bjaideep authored
R=joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Review-Url: https://codereview.chromium.org/2559433003 Cr-Commit-Position: refs/heads/master@{#41536}
-
- 30 Nov, 2016 1 commit
-
-
eholk authored
This is necessary for signal-based out of bounds handling in WebAssembly. Adds a ProtectedStore instruction that is analogous to the previously added ProtectedLoad instruction. Rather than using bounds checks, ProtectedStore emits an out of line section of code that throws a JavaScript exception and provides the necessary metadata for a signal handler to be able to find the out of line code. BUG= https://bugs.chromium.org/p/v8/issues/detail?id=5277 Review-Url: https://codereview.chromium.org/2516413003 Cr-Commit-Position: refs/heads/master@{#41398}
-