- 08 May, 2017 22 commits
-
-
mvstanton authored
Intrinsic and generic lowering for generator object creation. In a follow-on, create lowering will be addressed. BUG=v8:6352 Review-Url: https://codereview.chromium.org/2862213002 Cr-Commit-Position: refs/heads/master@{#45171}
-
Adam Klein authored
This patch expands scope analysis to skip hole initialization when it can be determined statically that no hole checks will be generated at runtime. Two conditions must be met to safely eliminate hole initialization: - There must not exist a VariableProxy referencing this Variable whose HoleCheckMode is kRequired - The Variable must be stack allocated; any other allocation implies that it may be accessed from not-yet-analyzed scopes (other modules, inner functions, or eval code) and that code may require hole checks. The new logic required removing debug code in full-codegen which is now incorrect in some cases. Also fixed Variable's bitfield helpers to take no more space than needed. Bug: chromium:651637 Change-Id: Ie5ac326af4e05b7a5c3c37cd4d0afba6a51a504d Reviewed-on: https://chromium-review.googlesource.com/494006 Commit-Queue: Adam Klein <adamk@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#45170}
-
Ross McIlroy authored
This reverts commit ec619cbd. Reason for revert: Crashing on Canary BUG=chromium:718891 Original change's description: > [Interpreter] Transition JSFunctions to call optimized code when possible. > > Now that the optimized code hangs off the feedback vector, it is possible > to check whether a function has optimized code available every time it's > called in the interpreter entry trampoline. If optimized code exists, the > interpreter entry trampoline 'self-heals' the closure to point to the > optimized code and links the closure into the optimized code list. > > BUG=v8:6246 > > Change-Id: If1bd7c555bb0551bfe04b36baa6bcf949604717e > Reviewed-on: https://chromium-review.googlesource.com/488026 > Reviewed-by: Michael Stanton <mvstanton@chromium.org> > Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45103} TBR=rmcilroy@chromium.org,mvstanton@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. BUG=v8:6246 Change-Id: Ibda719be90fddf1d116c03a2a0c3018bcbe76018 Reviewed-on: https://chromium-review.googlesource.com/498632Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#45169}
-
kschimpf authored
The code for UMA stats (in counters.h) is not thread safe, and can lead to using pointers with uninitialized values. Therefore, this CL turns them off when compiling asynchronously. It also turns back on several UMA stats that were previously turned off, but no longer need to because the code now knows if it is running synchronously. BUG=v8:6361 Review-Url: https://codereview.chromium.org/2864583004 Cr-Commit-Position: refs/heads/master@{#45168}
-
hpayer authored
BUG=chromium:718484 Review-Url: https://codereview.chromium.org/2867073002 Cr-Commit-Position: refs/heads/master@{#45167}
-
Michael Achenbach authored
This reverts commit de964dbe. Reason for revert: https://build.chromium.org/p/client.v8/builders/V8%20Linux/builds/17958 Original change's description: > Introducing an event loop mechanism for d8. > > This mechanism ensures APIs like wasm async complete their work, > without requiring use of natives (%APIs). > > The mechanism is similar to the one used in content_shell, > which should allow us to easily port tests in that environment. > > Review-Url: https://codereview.chromium.org/2842843005 > Cr-Original-Commit-Position: refs/heads/master@{#44908} > Bug: > Change-Id: I9deee0d256a600c60b42902fc8ef8478e5546344 > Reviewed-on: https://chromium-review.googlesource.com/494968 > Commit-Queue: Mircea Trofin <mtrofin@google.com> > Reviewed-by: Jochen Eisinger <jochen@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45165} TBR=bradnelson@chromium.org,mtrofin@chromium.org,mtrofin@google.com,jochen@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: Iafec2615d705d1990c57229cab3a988c00b5e12f Reviewed-on: https://chromium-review.googlesource.com/498630Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#45166}
-
Mircea Trofin authored
This mechanism ensures APIs like wasm async complete their work, without requiring use of natives (%APIs). The mechanism is similar to the one used in content_shell, which should allow us to easily port tests in that environment. Review-Url: https://codereview.chromium.org/2842843005 Cr-Original-Commit-Position: refs/heads/master@{#44908} Bug: Change-Id: I9deee0d256a600c60b42902fc8ef8478e5546344 Reviewed-on: https://chromium-review.googlesource.com/494968 Commit-Queue: Mircea Trofin <mtrofin@google.com> Reviewed-by: Jochen Eisinger <jochen@chromium.org> Cr-Commit-Position: refs/heads/master@{#45165}
-
Clemens Hammacher authored
Another fix for more explicit management of ownership. The CompilationHelper now always owns the WasmModule, and transfers ownership to the generated WasmModuleWrapper (a Managed<WasmModule>) once that object is created. Since the stored uniqe_ptr cannot be accessed any more after this transfer, the creation of the WasmModuleWrapper is delayed until it is really needed (step 5 in async compilation). R=ahaas@chromium.org Change-Id: I22dea2e14a364ddf76751d97bd0d736a4c0ceff4 Reviewed-on: https://chromium-review.googlesource.com/498507Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45164}
-
machenbach authored
Revert of [test] add --no-harness option to debugger tests. (patchset #1 id:1 of https://codereview.chromium.org/2831083003/ ) Reason for revert: Should define its own NO_HARNESS_PATTERN. See comments. Original issue's description: > [test] add --no-harness option to debugger tests. > > Review-Url: https://codereview.chromium.org/2831083003 > Cr-Commit-Position: refs/heads/master@{#44774} > Committed: https://chromium.googlesource.com/v8/v8/+/43c20d4cc566c68ce0b566cad0ac6fa92bba8eff TBR=caitp@igalia.com,yangguo@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. Review-Url: https://codereview.chromium.org/2871593002 Cr-Commit-Position: refs/heads/master@{#45163}
-
Wiktor Garbacz authored
BUG=v8:6093 Change-Id: I612ad27bf0bcdc30a5d2f1f86a0c31b40ab4494d Reviewed-on: https://chromium-review.googlesource.com/493348 Commit-Queue: Wiktor Garbacz <wiktorg@google.com> Reviewed-by: Daniel Vogelheim <vogelheim@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#45162}
-
Clemens Hammacher authored
Since the wasm module is verified before starting execution with lazy compilation, the compilation of individual functions should not fail later. This CL changes the implementation to check this condition earlier and removes unused error paths. R=ahaas@chromium.org, mstarzinger@chromium.org BUG=chromium:719286 Change-Id: If4bab457a47f214b457b2e2bc8570cba8c8bbcfd Reviewed-on: https://chromium-review.googlesource.com/497755Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45161}
-
Clemens Hammacher authored
Make ModuleResult and FunctionResult return Result<std::unique_ptr<X>>. This makes memory ownership and transfer of ownership more clear and avoids a lot of manual releases of the referenced native heap object. R=ahaas@chromium.org Change-Id: I7a3f5bd7761b6ae1ebdc7d17ff1b96a8df599871 Reviewed-on: https://chromium-review.googlesource.com/498352Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45160}
-
mlippautz authored
BUG=chromium:651354 Review-Url: https://codereview.chromium.org/2871543002 Cr-Commit-Position: refs/heads/master@{#45159}
-
Clemens Hammacher authored
We don't currently depend on this, but it might improve performance by avoiding intermediate copies. The functions are already set up for perfect forwarding, but without declaring the parameters as forwarding references, this does not work as expected. R=ahaas@chromium.org Change-Id: I2c4d96ea1108b3f884d3e581e74c20aafd232934 Reviewed-on: https://chromium-review.googlesource.com/497409Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45158}
-
Clemens Hammacher authored
Inside the CompilationHelper, we were creating another compilation helper to execute sequential or parallel compilation. I don't see the reason to do so. R=ahaas@chromium.org Change-Id: Ib2c4486296a8f923e7e38620879c02963fff7d60 Reviewed-on: https://chromium-review.googlesource.com/497754Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45157}
-
Andreas Haas authored
With this CL we share code among the wasm fuzzers which construct a module and run it in the interpreter and as compiled code.The fuzzers themselves only contain the code now which creates the module and the parameters. BUG=v8:6325 R=eholk@chromium.org Change-Id: I1c2d8b013531c86cb27837f1b8ec89d2688c536b Reviewed-on: https://chromium-review.googlesource.com/490048 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Brad Nelson <bradnelson@chromium.org> Cr-Commit-Position: refs/heads/master@{#45156}
-
jkummerow authored
It was replaced by more generic handling in 13206667, which is functionally fine, but for performance it makes sense to keep the fast path. Review-Url: https://codereview.chromium.org/2864463004 Cr-Commit-Position: refs/heads/master@{#45155}
-
Jochen Eisinger authored
Also make the macro name more scary, so people don't add new calls BUG=v8:5830 R=jgruber@chromium.org Change-Id: I06760110b7f0429d7775345b414c75c8df5e503a Reviewed-on: https://chromium-review.googlesource.com/497451Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jochen Eisinger <jochen@chromium.org> Cr-Commit-Position: refs/heads/master@{#45154}
-
Clemens Hammacher authored
In its destructor, the ErrorThrower already reifies exceptions and throws them if an error has been set. R=mtrofin@chromium.org Change-Id: I17d7a6d300fe4a5860431f214746d053eaf9f104 Reviewed-on: https://chromium-review.googlesource.com/497467 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#45153}
-
Michael Achenbach authored
TBR=tebbi@chromium.org Bug: v8:6346 Change-Id: Iea45ebaff908eb8a12ee51e220b0554241c049be Reviewed-on: https://chromium-review.googlesource.com/497753Reviewed-by: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#45152}
-
Loo Rong Jie authored
Bug:v8:5510 R=yangguo@chromium.org,jgruber@chromium.org Change-Id: Ieb355110bd858efe2495a6271ffeda67d41af129 Reviewed-on: https://chromium-review.googlesource.com/497153Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Loo Rong Jie <loorongjie@gmail.com> Cr-Commit-Position: refs/heads/master@{#45151}
-
v8-autoroll authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/99d7dc3..ab75dcc TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org Change-Id: I280f5a79a9a44e856212acd93def75ad28b077d5 Reviewed-on: https://chromium-review.googlesource.com/498389Reviewed-by: v8 autoroll <v8-autoroll@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#45150}
-
- 07 May, 2017 1 commit
-
-
v8-autoroll authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/225def8..99d7dc3 TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org Change-Id: If91d8fc6564ceb72f9bbe62be86d51d0913bf5df Reviewed-on: https://chromium-review.googlesource.com/497952Reviewed-by: v8 autoroll <v8-autoroll@chromium.org> Commit-Queue: v8 autoroll <v8-autoroll@chromium.org> Cr-Commit-Position: refs/heads/master@{#45149}
-
- 06 May, 2017 2 commits
-
-
kschimpf authored
History has shown that 99.93% (or more) of all memory allocations are less than 1 megabyte, and they all appear in the same UMA stat entry. To give perspective, the entry for <= 1Mb is about 20,000 times larger than any other entry in the table. This makes the distribution in the table hard to see. And, for allocation failures at this size, the percentage of failures (when compared to number of requests) is soo small (millions to one) that little data can be gleamed from the <= 1Mb entry. Note: requires CL https://codereview.chromium.org/2867483002 BUG=chrome:704922 R=bradnelson@chromium.org, bbudge@chromium.org, isherman@chromium.org Review-Url: https://codereview.chromium.org/2856663002 Cr-Commit-Position: refs/heads/master@{#45148}
-
v8-autoroll authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/0fffbdf..225def8 Rolling v8/third_party/catapult: https://chromium.googlesource.com/external/github.com/catapult-project/catapult/+log/d9a6925..ada8f7c Rolling v8/third_party/icu: https://chromium.googlesource.com/chromium/deps/icu/+log/b34251f..4b06aad TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org Change-Id: I526c70a04bf757705c94096591756023d4b432d9 Reviewed-on: https://chromium-review.googlesource.com/497595Reviewed-by: v8 autoroll <v8-autoroll@chromium.org> Commit-Queue: v8 autoroll <v8-autoroll@chromium.org> Cr-Commit-Position: refs/heads/master@{#45147}
-
- 05 May, 2017 15 commits
-
-
jkummerow authored
After the recent fast-property deletion changes, there can be a non-empty out-of-object backing store (that previously held properties) even though the next double property will be stored in-object. BUG=chromium:718779 Review-Url: https://codereview.chromium.org/2861093004 Cr-Commit-Position: refs/heads/master@{#45146}
-
mvstanton authored
As a first step towards improving generator creation, create a builtin that can do it without a call to the runtime. Thread that builtin into the interpreter via an intrinsic. BUG=v8:6352 R=bmeurer@chromium.org Review-Url: https://codereview.chromium.org/2861983002 Cr-Commit-Position: refs/heads/master@{#45145}
-
ulan authored
The concurrent marker now colors objects grey and black using the atomic markbit operations. The heap visitor is changed in two ways: 1) It iterates the map pointer of each object. 2) It guards object visitation with a predicate, which is overridden in the concurrent marker with the result of GreyToBlack transition. BUG=chromium:694255 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_rel_ng Review-Url: https://codereview.chromium.org/2866473003 Cr-Commit-Position: refs/heads/master@{#45144}
-
jgruber authored
At this point, last_index is definitely a canonicalized non-negative number, which implies that any non-Smi last_index is greater than the maximal string length. That in turn means that the matcher will definitely fail, and we can avoid the expensive runtime call. BUG=v8:6365,v8:6344 Review-Url: https://codereview.chromium.org/2863643004 Cr-Commit-Position: refs/heads/master@{#45143}
-
ochang authored
Adds a flag (--disable-in-process-stack-traces) to not install signal handlers so that e.g. ASan signal handlers will work. This flag mirrors chromium's one. R=jochen@chromium.org BUG=chromium:716235 Review-Url: https://codereview.chromium.org/2854173002 Cr-Commit-Position: refs/heads/master@{#45142}
-
jgruber authored
This CL migrates the CPP builtin to CSA with fast paths for strings that can be unpacked to direct one-byte strings. Short strings are handled directly in CSA, others need to call into C for conversion. Microbenchmarks for "abcd".toLowerCase() show speedups of 2.5x. BUG=v8:6353,v8:6344 Review-Url: https://codereview.chromium.org/2859203002 Cr-Commit-Position: refs/heads/master@{#45141}
-
jkummerow authored
Forcing an object into dictionary mode now requires deleting a property that's not the last property. BUG=chromium:718816 NOTRY=true Review-Url: https://codereview.chromium.org/2860403002 Cr-Commit-Position: refs/heads/master@{#45140}
-
ulan authored
Currently the VisitObject function iterates the object and then colors it black. This does not work well with concurrent marking. The function should instead first try to mark the object black and iterate its body only if the color transition succeeds. BUG=chromium:694255 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_rel_ng Review-Url: https://codereview.chromium.org/2863933002 Cr-Commit-Position: refs/heads/master@{#45139}
-
ulan authored
concurrent marking is enabled. This patch adds kAtomicity flag to IncrementalMarking that is set depending on the concurrent marking compile time flag. BUG=chromium:694255 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_rel_ng Review-Url: https://codereview.chromium.org/2858343003 Cr-Commit-Position: refs/heads/master@{#45138}
-
Ilija.Pavlovic authored
With this adaptation build V8 in Debug mode will be finished without error messages. TEST= BUG= Review-Url: https://codereview.chromium.org/2861143002 Cr-Commit-Position: refs/heads/master@{#45137}
-
ulan authored
Now non-atomic color transition operations return a boolean indicating whether the transition succeeded or not. This allows to replace color check and transition operations with a single transition operation. For example: if (IsWhite(object)) { WhiteToBlack(object); Foo(); } becomes if (WhiteToBlack(object)) { Foo(); } BUG=chromium:694255 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_rel_ng Review-Url: https://codereview.chromium.org/2863703004 Cr-Commit-Position: refs/heads/master@{#45136}
-
Mythri authored
CodeStubAssembler::StrictEqual is modified to collect type feedback when requested (https://chromium-review.googlesource.com/c/483399/). There are a couple of Gotos introduced in that cl, which are only necessary when collecting type feedback. Changed it to generate these Gotos only whencollecting type feedback. Bug: v8:4280 Change-Id: I322a6065efcfb601bd9f5dc25be6e6bb00b2d1c0 Reviewed-on: https://chromium-review.googlesource.com/496268Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#45135}
-
Michael Starzinger authored
R=clemensh@chromium.org TEST=mjsunit/asm/regress-718745 BUG=chromium:718745 Change-Id: I4d31e90d7a2bbb1d07ce946682a95582f63c7e27 Reviewed-on: https://chromium-review.googlesource.com/497469Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#45134}
-
Toon Verwaest authored
Bug: v8:6364,v8:6344 Change-Id: I13bf1ec89a17c64b38b757694ee8b7df30d4f45f Reviewed-on: https://chromium-review.googlesource.com/497428 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#45133}
-
Wiktor Garbacz authored
Formal parameters of an arrow function are parsed even if the function itself is preparsed. It is because we don't know if it is an arrow function parameter list or just comma separated expression list. When we parse: (a, b = (function c() { return a; })()) call to function c may be just part of an assignment in an expression list, but if it's followed by: => { return b; } It is an arrow function and the call to c is a default parameter. Before we see the arrow we might have already created a parse task to parse function c. BUG=v8:6093 Change-Id: I59a59acfdbbfd808dab1518060748be2addcd54a Reviewed-on: https://chromium-review.googlesource.com/493347 Commit-Queue: Wiktor Garbacz <wiktorg@google.com> Reviewed-by: Marja Hölttä <marja@chromium.org> Reviewed-by: Daniel Vogelheim <vogelheim@chromium.org> Cr-Commit-Position: refs/heads/master@{#45132}
-