- 24 Oct, 2017 29 commits
-
-
Tobias Tebbi authored
Bug: Change-Id: I4ffc052bb9f4599c91f0ad6a5ed41ac622c911d1 Reviewed-on: https://chromium-review.googlesource.com/735439Reviewed-by: Peter Marshall <petermarshall@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#48878}
-
Michael Starzinger authored
This moves bits that are accessed during a stack-walk out if the first kind-specific flags field. Such bits are accessed during evacuation within the GC and hence need to remain directly in the {Code} object, the other bits in the kind-specific flags are mutable and hence will be moved into a separate data container object. R=jarin@chromium.org BUG=v8:6792 Change-Id: I20b7d307110ca0c0eb6dd4df31a35fab4701c6da Reviewed-on: https://chromium-review.googlesource.com/735145Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#48877}
-
Clemens Hammacher authored
Our first implementation passed the source position as argument to the runtime function, which would then generate an Error object, patch the contained stack trace to point to the position given as argument, and then throw the Error. Since all our paths are now changed to call a builtin with proper source position information, we do not need to patch anything any more. R=ahaas@chromium.org Bug: v8:5007 Change-Id: I70dce1b9fcf9966a13865c1c373f3e354908b009 Reviewed-on: https://chromium-review.googlesource.com/732117Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#48876}
-
Georgia Kouveli authored
Bug: v8:6644 Change-Id: I63632016bfba83ba3c374fc1d61b1e3cc80d36de Reviewed-on: https://chromium-review.googlesource.com/727805 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#48875}
-
Sergiy Byelozyorov authored
R=machenbach@chromium.org Bug: chromium:777345 Change-Id: I26e4b3e05d84bf5310178aeb5083118567534979 Reviewed-on: https://chromium-review.googlesource.com/735482Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org> Cr-Commit-Position: refs/heads/master@{#48874}
-
Georg Neis authored
... mainly by adapting Object::Compare and CodeStubAssembler::RelationalComparison. TBR=rmcilroy@chromium.org Change-Id: I34448d45b4950b9318263c4a667aa9db7d77232d Bug: v8:6791 Reviewed-on: https://chromium-review.googlesource.com/730730 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#48873}
-
Mostyn Bramley-Moore authored
Fixup after https://chromium-review.googlesource.com/716480 Bug: v8:6600 Change-Id: I0e1b494c6263f21f772ce55d8fc723a66b41b07c Reviewed-on: https://chromium-review.googlesource.com/734041Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Mostyn Bramley-Moore <mostynb@vewd.com> Cr-Commit-Position: refs/heads/master@{#48872}
-
Andreas Rossberg authored
This adds support for parameters on block, loop, if, cf the multi-value proposal at: https://github.com/WebAssembly/multi-value/blob/master/proposals/multi-value/Overview.md With this CL, we ssucceed on all tests in: https://github.com/WebAssembly/multi-value/pull/2 except those involving multiple returns from functions. R=titzer@chromium.org Change-Id: I14a33e86450148f6aed2b8b8cc6bebb2303625c6 Reviewed-on: https://chromium-review.googlesource.com/712578 Commit-Queue: Andreas Rossberg <rossberg@chromium.org> Reviewed-by: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#48871}
-
Michael Achenbach authored
Bug: chromium:777825 Change-Id: I1501dba072e1f3448c3464be0ee69aa8b0de305a Reviewed-on: https://chromium-review.googlesource.com/735605Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org> Cr-Commit-Position: refs/heads/master@{#48870}
-
Michael Achenbach authored
This reverts commit a24c7c9a. Reason for revert: Breaks some users' workflow where --arch and --mode are used to determine the build path. Original change's description: > Reuse arch/mode discovery in deopt fuzzer > > Bug: v8:6917 > Change-Id: I1b7169c8702c8649812b17579d38d64de676ed60 > Reviewed-on: https://chromium-review.googlesource.com/723420 > Commit-Queue: Michał Majewski <majeski@google.com> > Reviewed-by: Michael Achenbach <machenbach@chromium.org> > Cr-Commit-Position: refs/heads/master@{#48838} TBR=machenbach@chromium.org,majeski@google.com Change-Id: If1f6e67eee17f11ec7547943ce084d18242f6875 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6917 Reviewed-on: https://chromium-review.googlesource.com/735442Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#48869}
-
Michael Achenbach authored
This reverts commit f681e530. Reason for revert: Need to revert: https://chromium-review.googlesource.com/c/v8/v8/+/723420 Original change's description: > Deprecated option --shell removed > > Bug: v8:6917 > Change-Id: I4262bc98019a3af0fc2bad7ef12b29ba5d4ea5ea > Reviewed-on: https://chromium-review.googlesource.com/734241 > Reviewed-by: Michael Achenbach <machenbach@chromium.org> > Commit-Queue: Michał Majewski <majeski@google.com> > Cr-Commit-Position: refs/heads/master@{#48855} TBR=machenbach@chromium.org,majeski@google.com Change-Id: I8a0065883d41f5011934cdf04263e76801f1910e No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6917 Reviewed-on: https://chromium-review.googlesource.com/735150Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#48868}
-
Peter Marshall authored
This speeds up insertion and removal by reducing the time taken to hash. Bug: v8:6992 Change-Id: I4e9e1c97a5503bf5a09c2428980a3c2d6bf4051e Reviewed-on: https://chromium-review.googlesource.com/735419Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#48867}
-
Jaroslav Sevcik authored
Bug: v8:6986 Change-Id: I2fd6a7d2dfc229792c734e24eba4b797f19d8ca3 Reviewed-on: https://chromium-review.googlesource.com/734240Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#48866}
-
Benedikt Meurer authored
When lowering a monomorphic load/store, where multiple receiver maps have been recorded, but the action to be performed is the same (i.e. yielding undefined because the property is not found), TurboFan used to ignore the Smi case, leading to a pretty terrible deoptimization loop, as the LOAD_IC/STORE_IC properly recorded that state and thus didn't change it's state. Fixing this issue gives a 18-20% boost on the prettier test of the web-tooling-benchmark, which was suffering a lot from this problem. Bug: v8:6936, v8:6991 Change-Id: Id208ec7129a7f6b190d989bda31f936040393226 Reviewed-on: https://chromium-review.googlesource.com/735342Reviewed-by: Michael Stanton <mvstanton@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#48865}
-
Georg Neis authored
R=jkummerow@chromium.org Bug: v8:6791 Change-Id: I2e9876577103d72cd5e2412e958b4bd832373899 Reviewed-on: https://chromium-review.googlesource.com/733132 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#48864}
-
Georg Neis authored
Bug: v8:6791 Change-Id: Ieb53b68e062e94e2d98a65db7b8bc6f61708b05f Reviewed-on: https://chromium-review.googlesource.com/733098 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#48863}
-
Daniel Clifford authored
Change-Id: I8f2dc21534562810e129f3830945bf68a181691f Reviewed-on: https://chromium-review.googlesource.com/735379 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#48862}
-
Mike Stanton authored
Ensure that effect outputs from nodes are used if they have an effect output. This helps us avoid an easy-to-make error where we fail to update the effect chain with the result of effectful operations. Bug: v8:6929 Change-Id: I585dc627b3c330006ec04717ff9b2f5060dbad6a Reviewed-on: https://chromium-review.googlesource.com/718107 Commit-Queue: Michael Stanton <mvstanton@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#48861}
-
Tobias Tebbi authored
Bug: chromium:777101 Change-Id: I29260420a855a060348f26138681a842bb31eb20 Reviewed-on: https://chromium-review.googlesource.com/732900 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#48860}
-
Michael Lippautz authored
Avoid locking the pages for the scavenger by filtering out pages that require sweeping and scavenging from the sweeper. This way we preserve the assumption that processing slots on a page is sequential. Pages that have been scavenged are re-added to the sweeper to allow them to be reused for allocation. CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_linux64_tsan_rel;master.tryserver.v8:v8_linux64_tsan_concurrent_marking_rel_ng;master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel Bug: v8:6923 Change-Id: I7d159de11792ef16a534f29e31791d06d7fb5221 Reviewed-on: https://chromium-review.googlesource.com/730603 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#48859}
-
Benedikt Meurer authored
Once the KeyedStoreIC was in MEGAMORPHIC state storing to dictionary mode objects, we'd constantly hit the slow-path implemented via the %SetProperty runtime function, if the dictionary was created with a null prototype, i.e. via Object.create(null). This goes against the advice of using Object.create(null) for dictionaries (compared to using empty object literal), which is unfortunate. This CL addresses two issues, starting with - adding support for null prototypes to LookupPropertyOnPrototypeChain, which was always hitting the slow path for null prototypes, and - using the dedicated %AddDictionaryProperty runtime call when we have to grow the backing store. These changes combined improve the micro-benchmark from storeToDictionary: 559 ms. storeToFast: 95 ms. to storeToDictionary: 201 ms. storeToFast: 94 ms. which reduces overhead by about 65%. This overall improves the chai test on the web-tooling-benchmark by about 4%, which still leaves some room for improvement. Bug: v8:6936, v8:6985 Change-Id: I97b78961f51edb3a3e198bdb31457fd78bed947f Reviewed-on: https://chromium-review.googlesource.com/735139Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#48858}
-
Michael Lippautz authored
Bug: Change-Id: Ib3a27251bd8b02780033302364a0ed63613e1998 Reviewed-on: https://chromium-review.googlesource.com/735142Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#48857}
-
Georg Neis authored
R=jkummerow@chromium.org Bug: v8:6791 Change-Id: Ia46694ef236abd2fa037491a017eb825aa25162a Reviewed-on: https://chromium-review.googlesource.com/732981Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#48856}
-
Michal Majewski authored
Bug: v8:6917 Change-Id: I4262bc98019a3af0fc2bad7ef12b29ba5d4ea5ea Reviewed-on: https://chromium-review.googlesource.com/734241Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michał Majewski <majeski@google.com> Cr-Commit-Position: refs/heads/master@{#48855}
-
Benedikt Meurer authored
The (KEYED_)LOAD/STORE_ICs didn't properly leave the UNINITIALIZED as long as the receiver was always null/undefined. This leads to deoptimization loops in TurboFan, because the compiler always put in a SOFT deoptimization at this point. Bug: v8:6989 Change-Id: I1a32bfb722f121f8b593e8972e657290d7b0531d Reviewed-on: https://chromium-review.googlesource.com/735319Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#48854}
-
Daniel Clifford authored
Previously, V8's slice was implemented in a combination of C++ and a Javascript fallback. The disadvantage of this approach was that the fast-path required a call through the CEntryStub, which introduced considerable overhead for small arrays with fast elements kinds. Now the implementation primarily uses the CSA to generate both the full spec-complaint implementation as well as fast paths for argument objects and arrays with fast elements kinds. The CSA implementation uses a C++ implementation fallback in select situations where the the complexity of a CSA implementation would be too great and the CEntryStub overhead is not decisive (e.g. slices of dictionary elements arrays). Performance results on semi-random arrays with small number of elements (old vs. new): smi copy: 48.7 ms vs. 12 ms smi slice: 43.5 ms 14.8 ms object copy: 35.5 ms 7.7 ms object slice: 38.7 ms 8.8 ms dictionary slice: 2398.3 ms vs. 5.4 ms fast sloppy arguments slice: 9.6 ms vs. 7.2 ms slow sloppy arguments slice: 28.9 ms vs. 8.5 ms As a bonus, the new implementation is fully spec-compliant and fixes at least one existing bug. The design document for Array.prototype builtin rework can be found at https://goo.gl/wFHe2n Bug: v8:1956,v8:6601,v8:6710,v8:6978 Change-Id: Ia0155bedcf39b4577605ff754f416c2af938efb7 Reviewed-on: https://chromium-review.googlesource.com/574710 Commit-Queue: Daniel Clifford <danno@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#48853}
-
v8-autoroll authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/ab1bd6e..f2dd2d1 Rolling v8/tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang/+log/12ba14e..2a5ee2c TBR=machenbach@chromium.org,hablich@chromium.org Change-Id: I49a295ae7d40c454b13d604638e2d661bd3d9b3e Reviewed-on: https://chromium-review.googlesource.com/734941Reviewed-by: v8 autoroll <v8-autoroll@chromium.org> Commit-Queue: v8 autoroll <v8-autoroll@chromium.org> Cr-Commit-Position: refs/heads/master@{#48852}
-
Camillo Bruni authored
This is in preparation for the new --trace-maps feature which will also log the current PC. Change-Id: I20f60c8a1e0104d4497460bafab623840a129f41 Reviewed-on: https://chromium-review.googlesource.com/734463Reviewed-by: Adam Klein <adamk@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#48851}
-
Camillo Bruni authored
Change-Id: Ia7b30b3f9d19ac1a6da978a0bd884e8f6f38841b Reviewed-on: https://chromium-review.googlesource.com/730570 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#48850}
-
- 23 Oct, 2017 11 commits
-
-
Adam Klein authored
Change-Id: I6288e295dd403be45cb2e4a648ac50c8f1376b73 Reviewed-on: https://chromium-review.googlesource.com/734481Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#48849}
-
Camillo Bruni authored
BUG=v8:6921 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Id29a5562b1551e78f60129216fdc2c209e585e43 Reviewed-on: https://chromium-review.googlesource.com/452381Reviewed-by: Alexei Filippov <alph@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Mathias Bynens <mathias@chromium.org> Cr-Commit-Position: refs/heads/master@{#48848}
-
Alexei Filippov authored
The stack can be cleared with RuntimeCallStats::Reset() call. Correctly handle the case by silently exit the running timer scopes. BUG=chromium:760649 Change-Id: I51ecca5591a7af358f3e50779d0f81cb9d76e502 Reviewed-on: https://chromium-review.googlesource.com/734121Reviewed-by: Camillo Bruni <cbruni@chromium.org> Commit-Queue: Alexei Filippov <alph@chromium.org> Cr-Commit-Position: refs/heads/master@{#48847}
-
Mike Stanton authored
Support inlining of Array.prototype.filter in TurboFan. Bug: v8:1956 Change-Id: If50e230d14461063d378c0591dc27dea43371afa Reviewed-on: https://chromium-review.googlesource.com/733089 Commit-Queue: Michael Stanton <mvstanton@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#48846}
-
Jakob Kummerow authored
...its users, the "Negate", "Inc", and "Dec" bytecode handler generators, to use subclassing and method overriding instead of passing lambdas around. Change-Id: Ib3febbb5cb2d763705f902d0324c11290e9513f7 Reviewed-on: https://chromium-review.googlesource.com/731616 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#48845}
-
Jakob Kummerow authored
The tests are generated randomly, using Python's arbitrary-precision integers as the source of truth. The generator script is landed as part of this CL. It also supports a "stress test" mode for on-demand intensive test coverage. Bug: v8:6791 Change-Id: Idc7a2e90fd8a0a8176283614b33ecd4c3597b1d1 Reviewed-on: https://chromium-review.googlesource.com/731464 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#48844}
-
Junliang Yan authored
R=joransiu@ca.ibm.com, jbarboza@ca.ibm.com Bug: Change-Id: Icb4c67c96cb44f75cd73e97929792795b1070dda Reviewed-on: https://chromium-review.googlesource.com/733641Reviewed-by: Joran Siu <joransiu@ca.ibm.com> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#48843}
-
Ben Smith authored
See the comment here: https://chromium-review.googlesource.com/c/v8/v8/+/719417/2/src/value-serializer.cc#496 BUG=v8:6895 R=clemensh@chromium.org Change-Id: I89a6ba0986def1776ef3be9c72a2c5b6260b0c98 Reviewed-on: https://chromium-review.googlesource.com/730768Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Ben Smith <binji@chromium.org> Cr-Commit-Position: refs/heads/master@{#48842}
-
Benedikt Meurer authored
When TurboFan sees a call to Reflect.get with exactly two parameters, we can lower that to a direct call to the GetPropertyStub, which is certainly faster than the general C++ builtin. This gives a nice 7-8% improvement on the chai test in the web-tooling-benchmark. The micro-benchmark on the issue goes from reflectGetPresent: 461 ms. reflectGetAbsent: 470 ms. to reflectGetPresent: 141 ms. reflectGetAbsent: 245 ms. which is an up to 3.2x improvement. Bug: v8:5996, v8:6936, v8:6937 Change-Id: Ic439fccb13f1a2f84386bf9fc31b4283d101afc4 Reviewed-on: https://chromium-review.googlesource.com/732988 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Michael Stanton <mvstanton@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#48841}
-
Pierre Langlois authored
When simplifying the DoubleToI stub (https://chromium-review.googlesource.com/c/v8/v8/+/720963), I accidentaly removed support for generating a version of the stub which uses SSE instructions. Re-enable support for this. Bug: chromium:777304 Change-Id: I03c14464a2cf288216f59f59c88be7af42ef350b Reviewed-on: https://chromium-review.googlesource.com/733130 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#48840}
-
Alexey Kozyatinskiy authored
Currently we incorrectly show global object as arrow function receiver. With this CL: - if this is used inside of function we show correct this value, - if this is unused and V8 optimizes it out - we show undefined. Second is known issue which we should address separately. R=dgozman@chromium.org,yangguo@chromium.org Bug: chromium:552753 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel Change-Id: Iac88a07fe622eb9b2f8af7ecbc4a32a56c8cdfaa Reviewed-on: https://chromium-review.googlesource.com/723840 Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#48839}
-