- 21 Sep, 2018 8 commits
-
-
Benedikt Meurer authored
Remove %ToPrimitive, %ToPrimitive_Number, %SameValue and %SameValueZero, as these runtime functions were only used from tests. For the %SameValue we use Object.is() to test the internal algorithm (the actual one even), and for %SameValueZero we use Set#has() - this was already the case for most uses anyways. Also drop %IsDate and %ValueOf, which didn't have uses at all. Bug: v8:8015 Change-Id: Ice26d25e68aed4d5d8adac0547c56aedf9826b13 Reviewed-on: https://chromium-review.googlesource.com/1237677 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#56127}
-
Benedikt Meurer authored
The order in which ToNumber(left) and ToPrimitive(right,hint Number) is called when performing an abstract relational comparison is observable, and we need to make sure to trigger the conversions in the correct order. Bug: chromium:687063 Change-Id: Idc9edb99643c4cf1774b89dcdc319ed5dc7cdc8a Reviewed-on: https://chromium-review.googlesource.com/1236557Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#56125}
-
Benedikt Meurer authored
Properly test the abstract equality - both JSEqual and JSNotEqual - for the case of symbols. Also add tests for the corner cases of the JSObjectIsArray operator, which is used to implement Array.isArray() builtin. Bug: v8:8015 Change-Id: Ib008e85553d04527a5992a904ec77774761f872e Reviewed-on: https://chromium-review.googlesource.com/1238237Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#56121}
-
Benedikt Meurer authored
Improve the lowering of CheckedInt32Div and CheckedUint32Div for the case that the right hand side is a known (positive) power of two, as in that case it's sufficient to just check the relevant bits on the left hand side and then shift by the appropriate amount of bits. This is significantly faster than what TurboFan is able to generate from the general lowering, even with all the MachineOperatorReducer magic (it even shows as a steady ~1.5% overall improvement on the Kraken crypto ccm benchmark). Also turn the general CheckedInt32Div lowering into readable code again, and make sure that all the bailout cases are properly covered by mjsunit tests (i.e. the "division by zero" bailout was not covered properly). Bug: v8:8015 Change-Id: Ibfdd367a6ee5d70dcaa48801858042c5029b7004 Reviewed-on: https://chromium-review.googlesource.com/1236954Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#56115}
-
Benedikt Meurer authored
The previous tests didn't cover the case Number.isSafeInteger(x) where TurboFan was unable to tell that `x` is always a Number and thus had to use the ObjectIsSafeInteger operator instead. Bug: v8:8015 Change-Id: I9bdbfa602fe0bf8c5fb2bc6c160ace7ab0bc0aaa Reviewed-on: https://chromium-review.googlesource.com/1238234Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#56114}
-
Benedikt Meurer authored
Again in the spirit of https://chromium-review.googlesource.com/1226033 we can simplify the handling of NumberDivide and decide the lowering based on the feedback type. Drive-by-fix: Add test coverage for the relevant corner cases of the NumberDivide handling in SimplifiedLowering. Bug: v8:8015 Change-Id: I0edaca0fddb31d64d2c269268e87a32a687a0b26 Reviewed-on: https://chromium-review.googlesource.com/1236262Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#56113}
-
Benedikt Meurer authored
The ObjectIsArrayBuffer simplified operator, which is used to implement the ArrayBuffer.isView() builtin, didn't have any test coverage. Bug: v8:8015 Change-Id: Ia15e35bc4ae61627137f7a89976560a8d3db771f Reviewed-on: https://chromium-review.googlesource.com/1238215Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#56112}
-
Sam Clegg authored
Without this the call to `formatFailureText` in `test-async.js` fails but goes unnoticed since the promise change is rejects which is not handled. And d8 silently ignores the the unhandled rejections. Once `formatFailureText` was added it reveals a but where several tests were expecting `.equal` to be a deepEquals. Specifically: test/mjsunit/es6/promise-all.js test/mjsunit/harmony/async-generators-resume-return.js test/mjsunit/harmony/async-generators-return.js test/mjsunit/harmony/async-generators-yield.js Making equals call `deepEquals` fixed that issue. Change-Id: I350c7d916147eaa7cf873bdaf273aebbaaa833c5 Reviewed-on: https://chromium-review.googlesource.com/1236852 Commit-Queue: Sam Clegg <sbc@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#56107}
-
- 20 Sep, 2018 11 commits
-
-
Sathya Gunasekaran authored
Previously, Atomics.notify was just an alias to Atomics.wake, which doesn't quite let us add a use counter for these individual builtins. This patch refactors the existing Atomics.wake into a separate function that is called from two separate builtins. Bug: v8:7883 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: If54c8f769b7949d88d327cfb2f70db394f32a0b7 Reviewed-on: https://chromium-review.googlesource.com/1234581 Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Ben Smith <binji@chromium.org> Cr-Commit-Position: refs/heads/master@{#56105}
-
Benedikt Meurer authored
In the spirit of https://chromium-review.googlesource.com/1226033 we can also unify the handling of NumberModulus based on feedback types. Drive-by-fix: Add appropriate tests for the corner cases of the NumberModules with (surrounding) feedback integration. Bug: v8:8015 Change-Id: I5e3207d2f6e72f9ea1d7658014b7272075088d63 Reviewed-on: https://chromium-review.googlesource.com/1236260 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#56094}
-
Benedikt Meurer authored
The coverage bot figured out that there's missing test coverage for the SpeculativeNumberModulus corner cases inside of the SimplifiedLowering logic. Bug: v8:8015 Change-Id: Id32aa545dc43adae5e67c66574ccea5f2b3db846 Reviewed-on: https://chromium-review.googlesource.com/1236259 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#56093}
-
Benedikt Meurer authored
This adds missing test coverage for corner cases of SpeculativeNumberAdd and SpeculativeNumberSubtract inside of SimplifiedLowering. This was discovered to be untested by the coverage bot. Bug: v8:8015 Change-Id: I7355b1b840a76bc12bd911adb6c2d88f05d816c5 Reviewed-on: https://chromium-review.googlesource.com/1236256Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#56090}
-
Benedikt Meurer authored
Part of https://chromium-review.googlesource.com/1231994 that landed earlier, but was reverted due to breakage. Landing this cleanup separately instead. Drive-by-fix: Also add test coverage for the cases that weren't covered properly (according to the test coverage bot). Bug: chromium:225811, v8:8015 Change-Id: I9c13ed5fcf0ba9e6b190489e15df86970eafdc13 Reviewed-on: https://chromium-review.googlesource.com/1236213Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#56087}
-
Mathias Bynens authored
Port the remaining tests from: https://chromium-review.googlesource.com/c/v8/v8/+/1227974/1/test/mjsunit/harmony/regexp-property-emoji-flag-sequence-generated.js#9 Bug: v8:7467 Change-Id: Ib187c93cb38befbbba31bdf93a0f5d8f1bee3d13 Reviewed-on: https://chromium-review.googlesource.com/1230098Reviewed-by:
Mathias Bynens <mathias@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Mathias Bynens <mathias@chromium.org> Cr-Commit-Position: refs/heads/master@{#56083}
-
Benedikt Meurer authored
According to the coverage bot, there's some lack of test coverage for corner cases of Math.imul(). Add the missing test coverage and also add some coverage for the generally interesting cases. Bug: v8:8015 Change-Id: I2a917283b4777510fb5db421a039ff0de9b2a25f Reviewed-on: https://chromium-review.googlesource.com/1235577Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#56077}
-
Benedikt Meurer authored
The following runtime functions (and their intrinsic counter parts) are completely unused/obsolete by now - %ToInteger - %GeneratorGetInputOrDebugPos and in addition the intrinsics for %_ToNumber and %_IsJSProxy are also dead (according to code coverage and manual verification), so drop them as well (their runtime function counterparts are still somewhat used). Bug: v8:8015 Change-Id: I60d53762dd9717fb43de38cb490b46676c467212 Reviewed-on: https://chromium-review.googlesource.com/1235923Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#56076}
-
Benedikt Meurer authored
Remove the NumberConstant right hand side limitation for the speculative number operation optimization, and extend the logic to also deal with SpeculativeToNumber, which is common when dealing with postfix increment and array operations. Also add appropriate tests for all the relevant cases, specifically we mjsunit tests to increase the general coverage for the various cases here (in addition to dedicated unittests). Bug: v8:8015 Change-Id: I8c92f98490c63b07eb19686efd404322979e57c4 Reviewed-on: https://chromium-review.googlesource.com/1235919Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#56072}
-
Michael Achenbach authored
This is for fixing: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Android%20Arm64%20-%20N5X/871 TBR=sbc@chromium.org NOTRY=true Bug: v8:8020 Change-Id: I48180f3e24fbabfbc673890252a1067ef63d82a2 Reviewed-on: https://chromium-review.googlesource.com/1235578Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#56070}
-
Sam Clegg authored
Previously we only supported strings and not filenames. This changes the default to filename and adds a new `type: string` which can be passed `options` to allow for strings to be passed in test code. See: https://developer.mozilla.org/en-US/docs/Web/API/Worker/Worker Bug: v8:8020 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: Ie8818885c5c5c071b6614852322cb45aeb01a647 Reviewed-on: https://chromium-review.googlesource.com/1185980 Commit-Queue: Sam Clegg <sbc@chromium.org> Reviewed-by:
Ben Smith <binji@chromium.org> Cr-Commit-Position: refs/heads/master@{#56056}
-
- 19 Sep, 2018 6 commits
-
-
Clemens Hammacher authored
This is a reland of 3bb5cb63 Original change's description: > [wasm] Introduce a soft limit on reserved memory > > Currently, wasm memory and wasm code use a shared limit for the total > size of reservations. This can cause wasm code reservations to fail > because wasm memories used all available reservation space. > This CL introduces a soft limit which is used when allocating wasm > memory with full guards. If this limit is reached and the respective > flag is set, we fall back to allocation without full guards and check > against the hard limit. Code reservations always check against the hard > limit. > > R=ahaas@chromium.org > > Bug: v8:8196 > Change-Id: I3fcbaeaa6f72c972d408d291af5d6b788d43151d > Reviewed-on: https://chromium-review.googlesource.com/1233614 > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#56028} Bug: v8:8196 Change-Id: If8baf429b02e23b344346f7335bc911b99ae5579 Reviewed-on: https://chromium-review.googlesource.com/1233756Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#56044}
-
Michael Achenbach authored
Failed once here: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Android%20Arm64%20-%20N5X/852 Test allocates a lot of memory. The output suggests that OS killed it. NOTRY=true TBR=rmcilroy@chromium.org Change-Id: Id177d381133a2671a5c4e3f0cac2cc3ea6cd6ee7 Reviewed-on: https://chromium-review.googlesource.com/1233759Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#56036}
-
Leszek Swirski authored
This reverts commit 3bb5cb63. Reason for revert: Breaks Win64 bot https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Win64/26418 Original change's description: > [wasm] Introduce a soft limit on reserved memory > > Currently, wasm memory and wasm code use a shared limit for the total > size of reservations. This can cause wasm code reservations to fail > because wasm memories used all available reservation space. > This CL introduces a soft limit which is used when allocating wasm > memory with full guards. If this limit is reached and the respective > flag is set, we fall back to allocation without full guards and check > against the hard limit. Code reservations always check against the hard > limit. > > R=ahaas@chromium.org > > Bug: v8:8196 > Change-Id: I3fcbaeaa6f72c972d408d291af5d6b788d43151d > Reviewed-on: https://chromium-review.googlesource.com/1233614 > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#56028} TBR=ahaas@chromium.org,clemensh@chromium.org Change-Id: If645e738b4a5800eceabd993738ac2285f4a63bc No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:8196 Reviewed-on: https://chromium-review.googlesource.com/1233834Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#56031}
-
Clemens Hammacher authored
Currently, wasm memory and wasm code use a shared limit for the total size of reservations. This can cause wasm code reservations to fail because wasm memories used all available reservation space. This CL introduces a soft limit which is used when allocating wasm memory with full guards. If this limit is reached and the respective flag is set, we fall back to allocation without full guards and check against the hard limit. Code reservations always check against the hard limit. R=ahaas@chromium.org Bug: v8:8196 Change-Id: I3fcbaeaa6f72c972d408d291af5d6b788d43151d Reviewed-on: https://chromium-review.googlesource.com/1233614Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#56028}
-
Benedikt Meurer authored
The JSTypedArray instance is created early on in the TypedArray constructors, using EmitFastNewObject, which puts Undefined into all slots. But the code might still produce an exception afterwards leaving the JSTypedArray in a weird state. It's not a security issue since the object doesn't escape, but it confuses the heap verifier. Bug: chromium:885404, v8:4153, v8:7881, v8:8171 Change-Id: I5fb8131fcae69edf4a92602ed477dca305c3d6c7 Reviewed-on: https://chromium-review.googlesource.com/1233257 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#56019}
-
Yang Guo authored
This is a reland of f4c14fd9 TBR=jgruber@chromium.org Original change's description: > [regexp] implement regexp property sequence proposal > > Also-By: mathias@chromium.org > Bug: v8:7467 > Change-Id: I9fd6e61f4da1097c2375f671b4801e9730f792c4 > Reviewed-on: https://chromium-review.googlesource.com/1227974 > Commit-Queue: Yang Guo <yangguo@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Mathias Bynens <mathias@chromium.org> > Cr-Commit-Position: refs/heads/master@{#55991} Bug: v8:7467 Change-Id: If07137dea5a8ea42dbff1d749d997eb4ae055d80 Reviewed-on: https://chromium-review.googlesource.com/1232634Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#56017}
-
- 18 Sep, 2018 5 commits
-
-
Benedikt Meurer authored
This is the next step to support large array buffers. On 64-bit archs the full safe integer range is available (up to 2^53-1 bytes in theory). On 32-bit platforms the full Unsigned31 range is allowed, so that we can continue to use CheckBounds for typed arrays and data views in the optimizing compiler (it's generally unlikely that the kernel will give you more than 1GiB of contiguous memory anyways). Drive-by-fix: This introduces proper chokepoints for the byte_offset and byte_length accesses in the CSA code, and also does some renaming for consistency. Bug: v8:4153, v8:7881, v8:8171 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I92a767638532ca9f86084398ce72556c5180cc6e Reviewed-on: https://chromium-review.googlesource.com/1228377Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#56008}
-
Leszek Swirski authored
This reverts commit f4c14fd9. Reason for revert: Breaks noi18n build Original change's description: > [regexp] implement regexp property sequence proposal > > Also-By: mathias@chromium.org > Bug: v8:7467 > Change-Id: I9fd6e61f4da1097c2375f671b4801e9730f792c4 > Reviewed-on: https://chromium-review.googlesource.com/1227974 > Commit-Queue: Yang Guo <yangguo@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Mathias Bynens <mathias@chromium.org> > Cr-Commit-Position: refs/heads/master@{#55991} TBR=yangguo@chromium.org,jgruber@chromium.org,mathias@chromium.org Change-Id: I10c67ad3ade35af920d32a7eea8ae0297677fa07 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7467 Reviewed-on: https://chromium-review.googlesource.com/1230137Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#55996}
-
Yang Guo authored
Also-By: mathias@chromium.org Bug: v8:7467 Change-Id: I9fd6e61f4da1097c2375f671b4801e9730f792c4 Reviewed-on: https://chromium-review.googlesource.com/1227974 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Mathias Bynens <mathias@chromium.org> Cr-Commit-Position: refs/heads/master@{#55991}
-
Jaroslav Sevcik authored
If type checks in simplified lowering produced dead value (i.e., of type Type::None()), we have only propagated deadness along value edges. With this CL, we also insert an Unreachable node after every effectful node that produces dead value. This is more consistent with dead code elimination, which also inserts unreachable nodes after effectful nodes with value output None. Bug: chromium:884052 Change-Id: Idcb168461f05f1811b2c9c16ab8ff179b259fbd3 Reviewed-on: https://chromium-review.googlesource.com/1228125Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#55987}
-
Benedikt Meurer authored
Word8 and Word16 representation is treated like Word32 for the sake of TurboFan's representation selection, but this was missing from the Word64 conversions. Bug: chromium:884933, v8:4153, v8:7881, v8:8171, v8:8178 Change-Id: If7b69cdd02b12546d87bba0643e9ee9cb35cb299 Reviewed-on: https://chromium-review.googlesource.com/1229953Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#55983}
-
- 17 Sep, 2018 6 commits
-
-
Michael Starzinger authored
This is a reland of a4105a43 Original change's description: > [wasm] Implement handling of exported/imported exceptions. > > This implements the proper semantics for matching exported/imported > exceptions by using the notion of an "exception tag" that is global to > the system. It can be used to match exceptions in one module against > exceptions declared and/or thrown in another module (or instance). > > R=clemensh@chromium.org > TEST=mjsunit/wasm/exceptions-shared > BUG=v8:8091 > > Change-Id: I37586d7be5d5e6169b3418dfbc415b26dd4750dd > Reviewed-on: https://chromium-review.googlesource.com/1226976 > Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> > Reviewed-by: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#55940} Bug: v8:8091 Change-Id: Ib85f099b26a8323a8a00299b5aaeb05aaff3c3c6 Reviewed-on: https://chromium-review.googlesource.com/1227975Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#55959}
-
Michael Starzinger authored
R=clemensh@chromium.org TEST=mjsunit/wasm/exceptions BUG=v8:8091 Change-Id: I93227c29bb3591983f1901577afdf305637beb70 Reviewed-on: https://chromium-review.googlesource.com/1226803 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#55954}
-
Benedikt Meurer authored
For NumberAdd/Subtract/Multiply we currently onlt consult the upper bound to decide whether to compute using Int32 or Float64 operations, whereas for NumberModulus, NumberEqual, etc. we do decide based on the feedback types, where the only significant difference is that we cannot promise Word32 truncations on the inputs. This change unifies the handling for NumberAdd/Subtract/Multiply as well, which triggers surprisingly often in our core benchmark suites.. Bug: v8:8015 Change-Id: If8ec1bc82d1e1b71285c829262a0d343a4eb2af7 Reviewed-on: https://chromium-review.googlesource.com/1226033 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#55943}
-
Leszek Swirski authored
This reverts commit a4105a43. Reason for revert: GC stress failures (https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Mac64%20GC%20Stress/3097) Original change's description: > [wasm] Implement handling of exported/imported exceptions. > > This implements the proper semantics for matching exported/imported > exceptions by using the notion of an "exception tag" that is global to > the system. It can be used to match exceptions in one module against > exceptions declared and/or thrown in another module (or instance). > > R=clemensh@chromium.org > TEST=mjsunit/wasm/exceptions-shared > BUG=v8:8091 > > Change-Id: I37586d7be5d5e6169b3418dfbc415b26dd4750dd > Reviewed-on: https://chromium-review.googlesource.com/1226976 > Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> > Reviewed-by: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#55940} TBR=mstarzinger@chromium.org,clemensh@chromium.org Change-Id: I5ef19ea3b67f470f2d7807810110d75415ba9ed6 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:8091 Reviewed-on: https://chromium-review.googlesource.com/1227933Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#55942}
-
Michael Starzinger authored
This implements the proper semantics for matching exported/imported exceptions by using the notion of an "exception tag" that is global to the system. It can be used to match exceptions in one module against exceptions declared and/or thrown in another module (or instance). R=clemensh@chromium.org TEST=mjsunit/wasm/exceptions-shared BUG=v8:8091 Change-Id: I37586d7be5d5e6169b3418dfbc415b26dd4750dd Reviewed-on: https://chromium-review.googlesource.com/1226976 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#55940}
-
Benedikt Meurer authored
This change introduces the necessary conversion operators to convert from Word64 to other representations (Tagged, Word32, Float64, etc.), and plugs in the Word64 representation for NumberAdd/NumberSubtract, such that TurboFan will go to Int64Add/Sub on 64-bit architectures when the inputs and the output of the operation is in safe integer range. This includes the necessary changes to the Deoptimizer to be able to rematerialize Int64 values as Smi/HeapNumber when going back to Ignition later. This change might affect performance, although measurements indicate that there should be no noticable performance impact. The goal is to have TurboFan support Word64 representation to a degree that changing the TypedArray length to an uint64_t (for 64-bit archs) becomes viable and doesn't have any negative performance implications. Independent of that we might get performance improvements in other areas such as for crypto code later. Bug: v8:4153, v8:7881, v8:8171, v8:8178 Design-Document: bit.ly/turbofan-word64 Change-Id: I29d56e2a31c1bae61d04a89d29ea73f21fd49c59 Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel Reviewed-on: https://chromium-review.googlesource.com/1225709 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#55937}
-
- 14 Sep, 2018 4 commits
-
-
Ben Smith authored
Bug: chromium:883492 Change-Id: I69e76eb51c635d092918a3cb9a8fa94a86f58f2a Reviewed-on: https://chromium-review.googlesource.com/1226410Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Ben Smith <binji@chromium.org> Cr-Commit-Position: refs/heads/master@{#55923}
-
Clemens Hammacher authored
This test was disabled because of flakes. This should be fixed now. R=ahaas@chromium.org Bug: v8:7872 Change-Id: I288f3776ca7f946caf20a66f1cdf5d37bd6ba245 Reviewed-on: https://chromium-review.googlesource.com/1224376Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#55900}
-
Jakob Gruber authored
This reverts commit 99e13e58. Reason for revert: Reverting in favor of a general mechanism for this in Torque. Original change's description: > [builtins] Add FastCallFunction builtin that elides some checks > > This CL adds a new "Call" stub that can be used by builtins that will > call the same JS call-back function often (e.g. compare function in > Array.p.sort). The checks have to be done upfront once, but can then > be omitted. > > R=jgruber@chromium.org > > Bug: v8:7861 > Change-Id: Id6e4ca27c3d488a7b1f708cbcb4cbe6cc382513e > Reviewed-on: https://chromium-review.googlesource.com/1208574 > Commit-Queue: Simon Zünd <szuend@google.com> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Camillo Bruni <cbruni@chromium.org> > Cr-Commit-Position: refs/heads/master@{#55769} TBR=cbruni@chromium.org,jgruber@chromium.org,szuend@google.com # Not skipping CQ checks because original CL landed > 1 day ago. Bug: v8:7861 Change-Id: I47260993ef2a16bd5348bb0b46da4d34d33ea10b Reviewed-on: https://chromium-review.googlesource.com/1226871 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#55897}
-
Creddy authored
This reland of the commit e938b7a3. Original change's description: > Enable OneShot optimizations by default > > BUG=v8:8072 > > Change-Id: I2068d66644628fe1de7a6be30b8d43ecfae04e93 > Reviewed-on: https://chromium-review.googlesource.com/1220047 > Commit-Queue: Chandan Reddy <chandanreddy@google.com> > Reviewed-by: Camillo Bruni <cbruni@chromium.org> > Cr-Commit-Position: refs/heads/master@{#55875} TBR=cbruni@chromium.org,chandanreddy@google.com Change-Id: I2152d4f3886913ef7ffabf8611c3448299560d2b No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:8072 Reviewed-on: https://chromium-review.googlesource.com/1224933 Commit-Queue: Chandan Reddy <chandanreddy@google.com> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#55893}
-