- 07 Jul, 2017 4 commits
-
-
Pierre Langlois authored
The PrepareCallCFunction methods would take a scratch register as arguments when they can simply use ip. The reason to do this, apart from simplifying the code, is that TurboFan's code generator uses r9 as a scratch for this when it could just as well use ip. Bug: v8:6553 Change-Id: I0ed762d201f7ff8b8ed074da758227a8db95fca7 Reviewed-on: https://chromium-review.googlesource.com/558934Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Pierre Langlois <pierre.langlois@arm.com> Cr-Commit-Position: refs/heads/master@{#46465}
-
Raphael Kubo da Costa authored
Blink needs %ErrorPrototype% in order to properly set up the inheritance chain from DOMException, as specified in WebIDL: https://heycam.github.io/webidl/#es-DOMException-specialness This patch is similar to commit 5ec1cddc ("Expose %IteratorPrototype% as an intrinsic in the public API"), with the difference that there was no entry for %ErrorPrototype% in any of the mappings in contexts.h. Bug: chromium:556950, chromium:737497 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Iadc5b2b844f29f6c9640b6a89769d233931366e9 Reviewed-on: https://chromium-review.googlesource.com/559058Reviewed-by: Adam Klein <adamk@chromium.org> Commit-Queue: Raphael Kubo da Costa (rakuco) <raphael.kubo.da.costa@intel.com> Cr-Commit-Position: refs/heads/master@{#46464}
-
jgruber authored
This adds a new binary block coverage mode (in addition to the existing count block coverage), as well as a few transformation passes to reduce the number of uselessly reported ranges. Bug: v8:6000 Change-Id: I4fb234ca015990d00aa2f1dccb87f76ba4748994 Reviewed-on: https://chromium-review.googlesource.com/552642 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Cr-Commit-Position: refs/heads/master@{#46463}
-
v8-autoroll authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/08ca0e2..47732a6 Rolling v8/third_party/catapult: https://chromium.googlesource.com/external/github.com/catapult-project/catapult/+log/52495f0..6539cc7 TBR=machenbach@chromium.org,hablich@chromium.org Change-Id: I03ed954a3a69e73cbe7448188a794f16cf827c0d Reviewed-on: https://chromium-review.googlesource.com/562997Reviewed-by: v8 autoroll <v8-autoroll@chromium.org> Commit-Queue: v8 autoroll <v8-autoroll@chromium.org> Cr-Commit-Position: refs/heads/master@{#46462}
-
- 06 Jul, 2017 36 commits
-
-
Ross McIlroy authored
Adds constant folding for the StringConcat bytecode to NativeContextSpecialization. Can reduce operator to either a fully folded constant string, or a JSAdd or a StringConcat with a reduced number of operators. BUG=v8:6243, chromium:738312 Change-Id: I6b2be6a3d95230a23f3c7390a4f7be5181c49a2a Reviewed-on: https://chromium-review.googlesource.com/559146 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#46461}
-
Ross McIlroy authored
Adds a CheckElimination reducer to eliminate checks which have become unecessary due to inlining of heap constants. BUG=v8:6243, chromium:738312 Change-Id: Ie50b274bd07c86466eead08b2f21d2b63dd9e01c Reviewed-on: https://chromium-review.googlesource.com/559129 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#46460}
-
Ross McIlroy authored
If a thin string can be dereferenced for StringConcat we still need to check whether the dereferenced string is a sequential string itself (it could be an external string). BUG=v8:6243 Change-Id: I146541512525726f092580512c0b5f02d33685a7 Reviewed-on: https://chromium-review.googlesource.com/558994 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#46459}
-
Jaideep Bajwa authored
Port 9b3174b2 Original Commit Message: Remove all IsHeapObject/IsSmi checks from assembler and also from the macro-assembler functions that Turbofan code generation uses. Note for porters: In case it's unclear which macro-assembler functions need to be modified, it may be best to wait until I split MacroAssembler in a followup-CL, which will make that clear. R=neis@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG=v8:6048 LOG=N Change-Id: Iae7d74709930a25246ab919a65dfecf1175945f7 Reviewed-on: https://chromium-review.googlesource.com/562656Reviewed-by: Junliang Yan <jyan@ca.ibm.com> Commit-Queue: Jaideep Bajwa <bjaideep@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#46458}
-
Sathya Gunasekaran authored
Print the object that is being destructured and update the error message. Previously, d8> var [a] = {} (d8):1: TypeError: [Symbol.iterator] is not a function Now, d8> var [a] = {} (d8):1: TypeError: {} is not iterable Bug: v8:6513, v8:5532 Change-Id: I5cbfe7c7e20632bce1a48bd38a1b0c98d0ff0660 Reviewed-on: https://chromium-review.googlesource.com/557370 Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by: Adam Klein <adamk@chromium.org> Reviewed-by: Caitlin Potter <caitp@igalia.com> Cr-Commit-Position: refs/heads/master@{#46457}
-
Josh Wolfe authored
The ')'-in-parameter checking is not necessary for CompileFunctionInContext. The arguments array is expected to be an array of identifiers, not an array of arbitrary strings that get concatenated. Furthermore, there's no reason to have the .toString() representation look like it came from CreateDynamicFunction(), and in fact inserting line breaks makes it more complicated to map line and column numbers correctly. Overall, the --harmony-function-tostring behavior only makes CompileFunctionInContext worse, so this CL removes it. R=littledan@chromium.org, adamk@chromium.org, caitp@igalia.com CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel Bug: v8:4958 Change-Id: Ifbc8a83216ca6a6979da1199972aa65f4bee36c3 Reviewed-on: https://chromium-review.googlesource.com/558220Reviewed-by: Daniel Ehrenberg <littledan@chromium.org> Commit-Queue: Josh Wolfe <jwolfe@igalia.com> Cr-Commit-Position: refs/heads/master@{#46456}
-
Georg Neis authored
... so that it can be used during off-thread code assembly. R=bmeurer@chromium.org Bug: v8:6048 Change-Id: Iaa9b534b23d02da69c2b2395c1eacfdcffb3ac2f Reviewed-on: https://chromium-review.googlesource.com/561677Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#46455}
-
Andreas Haas authored
Tsan figured out that I called compilation_units_.empty() outside a lock. Original message: This CL adds a new function {InitializeCompilationUnit} to initialize a single compilation unit and not just all compilation units at once. This is necessary for streaming compilation eventually. This also required some refactoring on how the working queue for compilation units works. Previously the synchronization was done with an atomic counter, now it is done with a lock. Note that the code to finish compilation of a module still only works if the working queue gets only empty when all work is done. I plan to change this in a different CL. Since the code would not be tested without streaming compilation, I added an experimental flag and a test to test the new code. R=clemensh@chromium.org, mtrofin@chromium.org Change-Id: Ia83560d1c70f0802271a88c514e0d1cb0458f6c4 Reviewed-on: https://chromium-review.googlesource.com/561458Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#46454}
-
Andreas Haas authored
In the original CL I moved an error check backwards, unfortunately behind a vector lookup which should not happen when there is an error. Now I also move the vector lookup backwards. Original message: We stored the size of a function body before we check that these values are valid. This caused a failing DCHECK in the constructor of WireBytesRef which checked for integer overflows. With this CL we check the size of the function body before we create the WireBytesRef. R=clemensh@chromium.org Bug: chromium:738097 Change-Id: Ie65b3cfcbcd6bdb3f04b0760673d9c7b7a0d1057 Reviewed-on: https://chromium-review.googlesource.com/561519Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#46453}
-
Pierre Langlois authored
Bug: v8:6553 Change-Id: I59203a8a81615a0d847e1cef720b5e476ab8df29 Reviewed-on: https://chromium-review.googlesource.com/544940Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Pierre Langlois <pierre.langlois@arm.com> Cr-Commit-Position: refs/heads/master@{#46452}
-
Sathya Gunasekaran authored
Bug: v8:5536 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Icec1f77c6073e1e89210e71ad20044e09594209e Reviewed-on: https://chromium-review.googlesource.com/548987Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#46451}
-
jgruber authored
This CL adds a few transformations that clean up the set of reported source ranges. Duplicates, empty, and uncovered ranges are removed, and nested/consecutive ranges are merged if possible. BUG=v8:6000 Change-Id: I421ee35ce8292cfe84c1eea4f653762cea5d909d Reviewed-on: https://chromium-review.googlesource.com/558411Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#46450}
-
Camillo Bruni authored
Due to the dictionary refactoring we ended up calling the superclass' helper which in turn made us decode the values wrongly for the GlobalDictionary. Change-Id: I4298b6a437ef2d84b69b7e980470c3cf5af79944 Reviewed-on: https://chromium-review.googlesource.com/561701Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#46449}
-
Camillo Bruni authored
Change-Id: Ib94838e8c6991348dd6c324c55d8996e9e675e20 Reviewed-on: https://chromium-review.googlesource.com/561698Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#46448}
-
Clemens Hammacher authored
R=ahaas@chromium.org Change-Id: I41920c8266068722549aa3755ef9169d8cd33b66 Reviewed-on: https://chromium-review.googlesource.com/561004Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#46447}
-
Michael Lippautz authored
Replaces the old PromotionQueue that was kept at the end of to space. This change allows a future implementation to use (a) a thread-local promotion list and (b) enables work stealing for concurrent scenarios. Bug: chromium:738865 Change-Id: I4c983a36e69ad4a9462eb9a59f586a85e51acbde Reviewed-on: https://chromium-review.googlesource.com/561141 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#46446}
-
Michael Achenbach authored
This reverts commit 6c8aed76. Reason for revert: Breaks some debug bots: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20-%20debug/builds/16754 https://build.chromium.org/p/client.v8/builders/V8%20Win64%20-%20debug/builds/17654 Original change's description: > [wasm] Check the size of a function body before storing it > > We stored the size of a function body before we check that > these values are valid. This caused a failing DCHECK in the constructor > of WireBytesRef which checked for integer overflows. With this CL we > check the size of the function body before we create the WireBytesRef. > > R=clemensh@chromium.org > > Bug: chromium:738097 > Change-Id: I18f8b628c1499aae9c8e9340ea73c87f19e6f1d7 > Reviewed-on: https://chromium-review.googlesource.com/561000 > Commit-Queue: Andreas Haas <ahaas@chromium.org> > Reviewed-by: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#46442} TBR=ahaas@chromium.org,clemensh@chromium.org Change-Id: Ifd533c0dee369c746bc97fea13275ebc09ed5eff No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:738097 Reviewed-on: https://chromium-review.googlesource.com/561517Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#46445}
-
Maya Lekova authored
- Check for value map in favour of value instance type Bug: v8:6557 Change-Id: I820267a87c169143d7a3c567d6c9508bae492350 Reviewed-on: https://chromium-review.googlesource.com/561358 Commit-Queue: Maya Lekova <mslekova@google.com> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#46444}
-
Michael Lippautz authored
Bug: Change-Id: If88c6deee07b0188bd6177a4cef6a14dd7610392 Reviewed-on: https://chromium-review.googlesource.com/561397Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#46443}
-
Andreas Haas authored
We stored the size of a function body before we check that these values are valid. This caused a failing DCHECK in the constructor of WireBytesRef which checked for integer overflows. With this CL we check the size of the function body before we create the WireBytesRef. R=clemensh@chromium.org Bug: chromium:738097 Change-Id: I18f8b628c1499aae9c8e9340ea73c87f19e6f1d7 Reviewed-on: https://chromium-review.googlesource.com/561000 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#46442}
-
Benedikt Meurer authored
This is the first step in optimizing Map and Set iterators. This ports all the base functionality including - Set.prototype.entries - Set.prototype.values - %SetPrototypeIterator%.next - Map.prototype.entries - Map.prototype.keys - Map.prototype.values - %MapPrototypeIterator%.next to C++ and removes all the dead code and the previous half JavaScript implementation. The next step is to port core parts to CodeStubAssembler and finally inline the fast-paths into TurboFan directly. The relevant design document is at: https://docs.google.com/document/d/13z1fvRVpe_oEroplXEEX0a3WK94fhXorHjcOMsDmR-8 Most of this work is very similar to how the Array iterator works and we mostly follow the same process for the implementation. R=jgruber@chromium.org Bug: v8:6571 Change-Id: Ieb253d6705ba4077c697a5ff0cb6f87f9c4056ff Reviewed-on: https://chromium-review.googlesource.com/561138Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#46441}
-
Andreas Haas authored
TruncateDoubleToI generated a 32-bit result but did not clear the upper 32 bits. This violated the invariant that the upper 32 bits should be cleared when the result is 32 bits. This change fixes the bug mentioned below. Clearing the upper 32 bits is also done on x64. R=v8-arm-ports@googlegroups.com, titzer@chromium.org, martyn.capewell@arm.com Bug: chromium:738952 Change-Id: I7e23e03fbed380ff08803db41fbae6382957ba08 Reviewed-on: https://chromium-review.googlesource.com/559671Reviewed-by: Martyn Capewell <martyn.capewell@arm.com> Reviewed-by: Ben Titzer <titzer@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#46440}
-
Michael Achenbach authored
https://chromium-review.googlesource.com/561001 was not sufficient, because we don't use the --gerrit flag in V8 anymore. Now we explicitly pass an option for private upload. TBR=hablich@chromium.org,tandrii@chromium.org NOTRY=true Bug: v8:6574 Change-Id: Ib8e2883795f26f22ac47e648b37c47f3a0a60a40 Reviewed-on: https://chromium-review.googlesource.com/561378Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#46439}
-
Camillo Bruni authored
Bug: chromium:737645 Cq-Include-Trybots: master.tryserver.v8:v8_linux_noi18n_rel_ng Change-Id: Ib02b3082cec82dfbbc48b21609dde7499e87042e Reviewed-on: https://chromium-review.googlesource.com/558868 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#46438}
-
Camillo Bruni authored
jtt will now print the complete transition tree of a given Map in gdb. Change-Id: I07031dd3d463bec0072e8ac696406279ff057489 Reviewed-on: https://chromium-review.googlesource.com/558257 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#46437}
-
Georg Neis authored
Remove all IsHeapObject/IsSmi checks from assembler and also from the macro-assembler functions that Turbofan code generation uses. Note for porters: In case it's unclear which macro-assembler functions need to be modified, it may be best to wait until I split MacroAssembler in a followup-CL, which will make that clear. Bug: v8:6048 Change-Id: Ife0735cc6f48713c9ec493faf2dac5e553d1c06b Reviewed-on: https://chromium-review.googlesource.com/561015 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#46436}
-
Michael Achenbach authored
NOTRY=true TBR=hablich@chromium.org Bug: chromium:738814 Change-Id: I575a36e271fb70cbf9a9c09f0daf9056864487c5 Reviewed-on: https://chromium-review.googlesource.com/561143Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#46435}
-
Camillo Bruni authored
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Ia86a3344bbe2a7101b4aa633d80f0dc8141882bb Reviewed-on: https://chromium-review.googlesource.com/557868Reviewed-by: Adam Klein <adamk@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#46434}
-
v8-autoroll authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/d71a8ff..08ca0e2 Rolling v8/third_party/catapult: https://chromium.googlesource.com/external/github.com/catapult-project/catapult/+log/3b0c0e0..52495f0 TBR=machenbach@chromium.org,hablich@chromium.org Change-Id: I34dfc8eb47f00db168ddd8ea30a44c17a19f3cf0 Reviewed-on: https://chromium-review.googlesource.com/561117Reviewed-by: v8 autoroll <v8-autoroll@chromium.org> Commit-Queue: v8 autoroll <v8-autoroll@chromium.org> Cr-Commit-Position: refs/heads/master@{#46433}
-
Pierre Langlois authored
Bug: v8:6553 Change-Id: Iffd023967e52aa16fdeec1deeabd3227389223a3 Reviewed-on: https://chromium-review.googlesource.com/544879 Commit-Queue: Pierre Langlois <pierre.langlois@arm.com> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#46432}
-
Juliana Franco authored
Also nuke the disabled test that still uses --deopt-every-n-garbage-collections. Bug: v8:3389 Change-Id: I254f544b73271e768e7619e578535aaf7cef0530 Reviewed-on: https://chromium-review.googlesource.com/561005Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Juliana Patricia Vicente Franco <jupvfranco@google.com> Cr-Commit-Position: refs/heads/master@{#46431}
-
Damilola Olagunju authored
NOTRY=true Change-Id: I9e510599decdb2c89e8da82ff6ccf07c3aed8b51 Reviewed-on: https://chromium-review.googlesource.com/561012Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Damilola Olagunju <odeedee@google.com> Cr-Commit-Position: refs/heads/master@{#46430}
-
Pierre Langlois authored
Make use of UseScratchRegisterScope instead of using the ip register directly in code stubs, builtin and the deoptimizer. In a lot of cases, we can simply use a different register rather than using the new scope. Bug: v8:6553 Change-Id: Ibc8a9a78bb88f3850c6e8b45871cc3a5b3971b3b Reviewed-on: https://chromium-review.googlesource.com/544837 Commit-Queue: Pierre Langlois <pierre.langlois@arm.com> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#46429}
-
Igor Sheludko authored
... when receiver is in dictionary mode. Bug: v8:6490 Change-Id: Ic5a8d214adcc4efd4cb163cbc6b351c4e6b596af Reviewed-on: https://chromium-review.googlesource.com/559548Reviewed-by: Camillo Bruni <cbruni@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#46428}
-
Andrea D'Olimpio authored
NOTRY=true Change-Id: Ia136b48ec90ff503103f327131bc84fbe68d6bc5 Reviewed-on: https://chromium-review.googlesource.com/561003Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Andrea D'Olimpio <adolimpio@google.com> Cr-Commit-Position: refs/heads/master@{#46427}
-
Michael Achenbach authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/e9a4317..d71a8ff This also temporarily switches off use_custom_libcxx until the referenced bug is resolved. TBR=hablich@chromium.org Bug: chromium:738814 Change-Id: Iaf0c2dd632a493f1e7f38e7e8f86e674a4b32fc9 Reviewed-on: https://chromium-review.googlesource.com/558414 Commit-Queue: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#46426}
-