- 21 Feb, 2018 1 commit
-
-
Mythri authored
We don't use parser caches anymore and request code caches explicitly using ScriptCompiler::CreateCodeCache. Hence removing the support for both parser cache and code cache options. They are still retained in CompileOptions for backwards compatibility. Apart from the api.cc, no other part should see this option. Bug: chromium:779254, chromium:783124 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Ic8ad9afe3fa44bbb5adc71bdde59c0b4057a523d Reviewed-on: https://chromium-review.googlesource.com/916261 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#51416}
-
- 19 Feb, 2018 1 commit
-
-
Caitlin Potter authored
Previously, eval caching was only disabled if the root eval body code contained a tagged template. Per discussion on https://github.com/tc39/ecma262/pull/890, this is incorrect. This change tracks if eval caching is allowed during parsing, and uses this information to decide to insert new entries into the cache, or not. This change also removes the TemplateObject feedback kind, as it's no longer needed (behaves the same as Literal feedback). BUG=v8:3230, v8:2891 R=littledan@chromium.org, yangguo@chromium.org, bmeurer@chromium.org, rmcilroy@chromium.org Change-Id: Ib75abe9159baf4d8ad10f8de99d2152714bd0094 Reviewed-on: https://chromium-review.googlesource.com/916945 Commit-Queue: Caitlin Potter <caitp@igalia.com> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#51373}
-
- 10 Jan, 2018 1 commit
-
-
Sathya Gunasekaran authored
This information is already stored in compiler_hints_. This saves 1 bit on ParseInfo. Change-Id: I37927c256aacd18fb332b522989dc669aa80df01 Reviewed-on: https://chromium-review.googlesource.com/858427Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#50483}
-
- 18 Dec, 2017 1 commit
-
-
Yang Guo authored
This changes the implementation of v8::ScriptCompiler::CompileFunctionInContext See design doc: https://goo.gl/ppkK6Q R=adamk@chromium.org, marja@chromium.org, mstarzinger@chromium.org Bug: v8:7172, chromium:70895 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Iab0b6e879c1a3b33b623bfa2af9c706643c06fa7 Reviewed-on: https://chromium-review.googlesource.com/810946 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#50148}
-
- 20 Nov, 2017 1 commit
-
-
Ross McIlroy authored
This moves the logging of the RCS event for background parsing tasks out of the parser and performs it at the end of the background parsing task. This is necessary in order to log background compile RCS events which happen after parsing. BUG=v8:5203 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Ie216eeade0279d8243818a8eb59309969775823c Reviewed-on: https://chromium-review.googlesource.com/776669Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#49483}
-
- 16 Nov, 2017 1 commit
-
-
Sathya Gunasekaran authored
Previously, we had lazy parsing of class constructor disabled when a class literal had class fields because we were using a reference to the initializer function variable to load the function and call it. Instead, in this patch, we use the scope analysis to lookup this initializer function variable. Bug: v8:5367 Change-Id: Ib73d7e6abed33c04d1f574e7976bea4869d54757 Reviewed-on: https://chromium-review.googlesource.com/768384 Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#49406}
-
- 14 Nov, 2017 3 commits
-
-
Ross McIlroy authored
Adds support for compiling top-level code on a background thread behind a flag. When the flag is enabled, any background-parsing-task will perform compilation as well as parsing. BUG=v8:5203 TBR=marja@chromium.org,mstarzinger@chromium.org Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Icf90ac7211298d3555515dafc7c3245618ec1304 Reviewed-on: https://chromium-review.googlesource.com/764048 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#49364}
-
Yang Guo authored
Bytecode compilation is not affected by whether it needs to be serialized. Only TF-generated code objects included in the snapshot are part of the startup snapshot. We therefore do not need to pass the flag through the compilation info. R=mstarzinger@chromium.org, verwaest@chromium.org Change-Id: I761971febc5b6c27602c21cd5b0b2bffdd80bd5b Reviewed-on: https://chromium-review.googlesource.com/758413Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#49355}
-
Camillo Bruni authored
This partially retires --trace-parse and --trace-preparse which will be fully removed in a later CL. Drive-by-fix: make the Parser constructor arguments order more consistent. Bug: chromium:757467 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I80a688ce553adfa65ad346718604bd53a9e606a9 Reviewed-on: https://chromium-review.googlesource.com/744046 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#49350}
-
- 03 Nov, 2017 2 commits
-
-
Michael Achenbach authored
This reverts commit c61f9171. Reason for revert: (Speculative) Seems to block the roll: https://chromium-review.googlesource.com/c/chromium/src/+/753602 Also failures on webkit win unittests and gpu tests: https://build.chromium.org/p/client.v8.fyi/builders/Win%20Release%20%28NVIDIA%29/builds/3382 https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Win/builds/11512 Original change's description: > [compiler] Add background compilation mode. > > Adds support for compiling top-level code on a background thread behind a flag. > When the flag is enabled, any background-parsing-task will perform compilation > as well as parsing. > > BUG=v8:5203 > > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng > Change-Id: I88ab05c97cd6aea8d6be26e27d8da327f2c9c3a8 > Reviewed-on: https://chromium-review.googlesource.com/741716 > Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Reviewed-by: Marja Hölttä <marja@chromium.org> > Cr-Commit-Position: refs/heads/master@{#49103} TBR=rmcilroy@chromium.org,marja@chromium.org,mstarzinger@chromium.org Change-Id: I49b0b0ee61fb79766a9a928b43d51d0eeb793d39 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:5203 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Reviewed-on: https://chromium-review.googlesource.com/753302Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#49112}
-
Ross McIlroy authored
Adds support for compiling top-level code on a background thread behind a flag. When the flag is enabled, any background-parsing-task will perform compilation as well as parsing. BUG=v8:5203 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I88ab05c97cd6aea8d6be26e27d8da327f2c9c3a8 Reviewed-on: https://chromium-review.googlesource.com/741716 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#49103}
-
- 24 Oct, 2017 1 commit
-
-
Ross McIlroy authored
This is to enable it to also be used for reporting AsmJS errors such that this can be moved off-thread. BUG=v8:5203 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Ia46040b14d010702f10c02b8254aea84cba4d54d Reviewed-on: https://chromium-review.googlesource.com/735606 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#48881}
-
- 16 Oct, 2017 1 commit
-
-
Leszek Swirski authored
Bug: v8:6921 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng;master.tryserver.v8:v8_linux_noi18n_rel_ng Change-Id: I3294568a550b829b0ec90147a4cdaefe169bb7cb Reviewed-on: https://chromium-review.googlesource.com/718206Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#48587}
-
- 26 Sep, 2017 1 commit
-
-
Yang Guo authored
- Add kProduceExhaustiveCodeCache to v8::ScriptCompiler::CompileOptions to request eager compilation to add as much as possible to the code cache for the script. - Repurpose ParseInfo::kLazy flag. - Remove ParseInfo::kDebug flag. - Remove --serialize-toplevel as it has become obsolete. R=marja@chromium.org Bug: chromium:768705 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Ife14f7a1d1c02e525f0b9dbfd2452013d67c7167 Reviewed-on: https://chromium-review.googlesource.com/684019 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#48160}
-
- 15 Sep, 2017 1 commit
-
-
Michael Starzinger authored
R=marja@chromium.org Change-Id: I91da3f653cda2ca428be578b4cf9a37e784c70d8 Reviewed-on: https://chromium-review.googlesource.com/667108Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#48025}
-
- 21 Aug, 2017 1 commit
-
-
Ross McIlroy authored
Changes the contract of the parser to have a valid character stream passed in the ParseInfo rather than the current situation where either: - it is passed explicitly (e.g., for streaming scripts) - a Script is passed and a character stream is created for this - or a source and encoding is passed in ParseInfo and the character stream is created from this. The parse info also now owns the character stream (in a unique_ptr). It can be destroyed using a new ResetCharacterStream() function. This will enable the character stream to be kept live if any functions are asm.js modules which were parsed, in order to be reused by the asm.js parser. BUG=v8:5203 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Ifda167391b2eadb38ebf9fcb2f565d2ed9ea3c6f Reviewed-on: https://chromium-review.googlesource.com/616767 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#47474}
-
- 18 Aug, 2017 1 commit
-
-
Ross McIlroy authored
Parse tasks are not currently used, and will need to be changed significantly for background compilation, so we remove them for now. BUG=v8:6093,v8:5203 Change-Id: I44559a94ecca85668f0117629d35aaa5f4075745 Reviewed-on: https://chromium-review.googlesource.com/617140 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#47446}
-
- 14 Aug, 2017 1 commit
-
-
Ross McIlroy authored
Splits CompileUnoptimizedCode into a non-main thread GenerateUnoptimizedCode and a main thread FinalizeUnoptimizedCode phase. Adds Disallow<HeapAccess> scopes in CompileUnoptimizedCode to ensure no access to the heap during this phase. Also cleans up a few heap accesses in CompilationInfo's constructor to avoid violating the disallowed heap access. Currently we reallow heap access during asm.js compilation as a temporary measure until the script streamer uses an off-heap script buffer. BUG=v8:5203 TBR=titzer@chromium.org Change-Id: I7f6140f19938a10a85f1cd89501812dd59dbf6d4 Reviewed-on: https://chromium-review.googlesource.com/605949 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#47337}
-
- 04 Aug, 2017 1 commit
-
-
Ross McIlroy authored
Moves the construction of CompilationInfo for unoptimized code into GenerateUnoptimizedCode in preparation for making it owned by the unoptimized compilation jobs (to be done in a followup CL). This CL also adds a new constructor for creation of unoptimized CompilationInfos with fields correctly initialized and updates the existing constructor to he exclusively for optimized compilation. Finally, also moves the call to RecordFunctionCompilation with LAZY_COMPILE_TAG recording into FinalizeUnoptimizedCompilationJob where it is called for other unoptimized compiles. BUG=v8:5203,v8:6659 Change-Id: Icfd7f56588073f2fc547e002db9fa99843ed2e8b Reviewed-on: https://chromium-review.googlesource.com/598908 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#47160}
-
- 27 Jul, 2017 3 commits
-
-
Leszek Swirski authored
Reland of https://chromium-review.googlesource.com/c/558290/ Makes compiler dispatcher jobs an abstract interface, with unoptimized compile jobs as an implementation of this interface. Bug: v8:6537 Change-Id: Ia85781f72c7aaca497896ca4efa91ada97e43b1c Reviewed-on: https://chromium-review.googlesource.com/589154 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#46940}
-
Leszek Swirski authored
This reverts commit e4bbf92b. Reason for revert: Crashes: https://build.chromium.org/p/client.v8/builders/V8%20Linux64/builds/19156 Original change's description: > [compiler-dispatcher] Make compiler jobs abstract > > Makes compiler dispatcher jobs an abstract interface, with unoptimized > compile jobs as an implementation of this interface. > > Bug: v8:6537 > Change-Id: I6569060a89c92d35e4bc7962623f77082a354934 > Reviewed-on: https://chromium-review.googlesource.com/558290 > Reviewed-by: Georg Neis <neis@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/master@{#46931} TBR=rmcilroy@chromium.org,neis@chromium.org,leszeks@chromium.org Change-Id: I023c0455929180fdcde3caf581f483f794ca2368 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6537 Reviewed-on: https://chromium-review.googlesource.com/589153Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#46932}
-
Leszek Swirski authored
Makes compiler dispatcher jobs an abstract interface, with unoptimized compile jobs as an implementation of this interface. Bug: v8:6537 Change-Id: I6569060a89c92d35e4bc7962623f77082a354934 Reviewed-on: https://chromium-review.googlesource.com/558290Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#46931}
-
- 26 Jul, 2017 1 commit
-
-
Ross McIlroy authored
Moves parser internalization of ast values out of ParseAny/Program/Function and instead internalizes during compile finalization. Currently also internalizes during scope analysis if there is a ScopeInfo to enable variable name lookups. We also internalize early for FCG / AstGraphBuilder. BUG=v8:5203 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Ia766795947d847517b87cd5ea39797347083174b Reviewed-on: https://chromium-review.googlesource.com/582407Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#46904}
-
- 25 Jul, 2017 1 commit
-
-
Ross McIlroy authored
Rather than using an ad-hock ownership model for ast_value_factory, use a shared_ptr. BUG=v8:5203 Change-Id: I5f2a573c8b175a3138ad8b01aa78bddadd16e6d3 Reviewed-on: https://chromium-review.googlesource.com/582628 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#46874}
-
- 21 Jul, 2017 1 commit
-
-
Ross McIlroy authored
Removes the SharedFunctionInfo field from the ParseInfo structure. Instead require a SharedFunctionInfo to be explicitly passed to ParseFunction. Also renames GetUnoptimizedCode to CompileUnoptimizedFunction to make it clear it should only be called for non-top-level code. BUG=v8:5203 Change-Id: Ibce016e6a5290c3685f7f0a2f5fb1eb2df2ffc3b Reviewed-on: https://chromium-review.googlesource.com/574589 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#46814}
-
- 13 Jul, 2017 1 commit
-
-
Adam Klein authored
The tail call implementation is hidden behind the --harmony-tailcalls flag, which is off-by-default (and has been unstaged since February). It is known to be broken in a variety of cases, including clusterfuzz security issues (see sample Chromium issues below). To avoid letting the implementation bitrot further on trunk, this patch removes it. Bug: v8:4698, chromium:636914, chromium:724746 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng;master.tryserver.v8:v8_linux_noi18n_rel_ng Change-Id: I9cb547101456a582374fdf7b1a3f044a9ef33e5c Reviewed-on: https://chromium-review.googlesource.com/569069 Commit-Queue: Adam Klein <adamk@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#46651}
-
- 12 Jul, 2017 1 commit
-
-
jgruber authored
This CL moves collected source range information out of AST nodes and into a side table stored on ParseInfo. The side table is only created if block coverage is enabled, so there's almost no memory overhead in the standard case. Change-Id: I41871b8425ebbc6217d82d3ad26b5fc9e5d68ecb Reviewed-on: https://chromium-review.googlesource.com/566808 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#46590}
-
- 30 Jun, 2017 1 commit
-
-
Marja Hölttä authored
This way, each lazy function needs to handle only the data relevant to itself. This reduced data handling overheads. Other changes: 1) Don't deserialize the data; once it's on the heap, it can stay there. Lazy function compilation is only done in the main thread. 2) Separate ProducedPreParsedScopeData and ConsumedPreParsedScopeData. It's clearer, because: - The data looks fundamentally different when we're producing it and when we're consuming it. - Cleanly separates the operations we can do in the "producing phase" and in the "consuming phase". Bug: v8:5516 Change-Id: I6985a6621f71b348a55155724765624b5d5f7c33 Reviewed-on: https://chromium-review.googlesource.com/528094 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#46347}
-
- 04 May, 2017 1 commit
-
-
Wiktor Garbacz authored
BUG=v8:6093 Change-Id: Ia14f6200adbe6c557f9b899e67f2d96bf76f3a44 Reviewed-on: https://chromium-review.googlesource.com/494590Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Commit-Queue: Wiktor Garbacz <wiktorg@google.com> Cr-Commit-Position: refs/heads/master@{#45093}
-
- 03 May, 2017 1 commit
-
-
Michael Achenbach authored
This reverts commit 8f4e8c0a. Reason for revert: Speculative revert for http://crbug.com/717854 Original change's description: > Fix runtime_call_stats for background parsing. > > BUG=v8:6093 > > Change-Id: I365fbd7c3f33e2de47e0a84ee3ea631b4ffa6d35 > Reviewed-on: https://chromium-review.googlesource.com/488243 > Reviewed-by: Camillo Bruni <cbruni@chromium.org> > Reviewed-by: Marja Hölttä <marja@chromium.org> > Reviewed-by: Daniel Vogelheim <vogelheim@chromium.org> > Commit-Queue: Wiktor Garbacz <wiktorg@google.com> > Cr-Commit-Position: refs/heads/master@{#45013} TBR=marja@chromium.org R=marja@chromium.org,vogelheim@chromium.org,cbruni@chromium.org,jochen@chromium.org BUG=v8:6093,chromium:717854 Change-Id: Ia58a420ec4c1e84a9f01eb90545fabb0bc03aa63 Reviewed-on: https://chromium-review.googlesource.com/494568 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#45070}
-
- 02 May, 2017 2 commits
-
-
Wiktor Garbacz authored
While parsing top-level code eager functions are skipped just like lazy ones, but also a parse task is created for each. The parse tasks are run by the compiler dispatcher and can be executed either on background thread or in idle time. After parsing of top-level code finishes it waits for all unfinished parser tasks - possibly picking up and executing them on current thread. Afterwards parse task results are stitched together with top-level AST, in case of failures eager functions are treated just like lazy - parsing/compilation is retriggered for them in the runtime and proper errors are generated (performance is not optimized for error case at all). BUG=v8:6093 Change-Id: Ie6508211a04b90becfe44139cce1c8ecec386b6e Reviewed-on: https://chromium-review.googlesource.com/486725Reviewed-by:
Jochen Eisinger <jochen@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Daniel Vogelheim <vogelheim@chromium.org> Commit-Queue: Wiktor Garbacz <wiktorg@google.com> Cr-Commit-Position: refs/heads/master@{#45016}
-
Wiktor Garbacz authored
BUG=v8:6093 Change-Id: I365fbd7c3f33e2de47e0a84ee3ea631b4ffa6d35 Reviewed-on: https://chromium-review.googlesource.com/488243Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Daniel Vogelheim <vogelheim@chromium.org> Commit-Queue: Wiktor Garbacz <wiktorg@google.com> Cr-Commit-Position: refs/heads/master@{#45013}
-
- 25 Apr, 2017 2 commits
-
-
Michael Achenbach authored
This reverts commit 56a6fda3. Reason for revert: Makes tsan flaky: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/15038 Original change's description: > [parser] Inital parallel parse tasks implementation. > > While parsing top-level code eager functions are skipped just like lazy > ones, but also a parse task is created for each. > > The parse tasks are run by the compiler dispatcher and can be executed > either on background thread or in idle time. > After parsing of top-level code finishes it waits for all unfinished > parser tasks - possibly picking up and executing them on current thread. > Afterwards parse task results are stitched together with top-level AST, > in case of failures eager functions are treated just like lazy - > parsing/compilation is retriggered for them in the runtime and proper > errors are generated (performance is not optimized for error case at > all). > > BUG=v8:6093 > > Change-Id: I718dd2acc8a70ae1b09c2dea2616716605d7b05d > Reviewed-on: https://chromium-review.googlesource.com/483439 > Commit-Queue: Wiktor Garbacz <wiktorg@google.com> > Reviewed-by: Marja Hölttä <marja@chromium.org> > Reviewed-by: Jochen Eisinger <jochen@chromium.org> > Reviewed-by: Daniel Vogelheim <vogelheim@chromium.org> > Cr-Commit-Position: refs/heads/master@{#44849} TBR=marja@chromium.org,vogelheim@chromium.org,jochen@chromium.org,wiktorg@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:6093 Change-Id: I17e689efee7d216d28a94a5c8147022ae7e830dd Reviewed-on: https://chromium-review.googlesource.com/486883Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#44859}
-
Wiktor Garbacz authored
While parsing top-level code eager functions are skipped just like lazy ones, but also a parse task is created for each. The parse tasks are run by the compiler dispatcher and can be executed either on background thread or in idle time. After parsing of top-level code finishes it waits for all unfinished parser tasks - possibly picking up and executing them on current thread. Afterwards parse task results are stitched together with top-level AST, in case of failures eager functions are treated just like lazy - parsing/compilation is retriggered for them in the runtime and proper errors are generated (performance is not optimized for error case at all). BUG=v8:6093 Change-Id: I718dd2acc8a70ae1b09c2dea2616716605d7b05d Reviewed-on: https://chromium-review.googlesource.com/483439 Commit-Queue: Wiktor Garbacz <wiktorg@google.com> Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Jochen Eisinger <jochen@chromium.org> Reviewed-by:
Daniel Vogelheim <vogelheim@chromium.org> Cr-Commit-Position: refs/heads/master@{#44849}
-
- 19 Apr, 2017 1 commit
-
-
Adam Klein authored
There's no reason to keep track, for a preparsed function itself, whether that function calls eval. All that matters is that the ancestor scopes are marked as having an inner scope which calls eval. The function will have its "calls eval" bit persisted if/when it's fully parsed. The only "behavioral" change in this patch is the removal of a DCHECK. Bug: v8:6092 Change-Id: I17e396c8a265030fe0ad941707e4a97972e6650b Reviewed-on: https://chromium-review.googlesource.com/481223 Commit-Queue: Adam Klein <adamk@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#44732}
-
- 28 Mar, 2017 1 commit
-
-
Wiktor Garbacz authored
A step towards removing isolate from ParseInfo. Removing isolate from ParseInfo will make it easier to create and execute parse tasks on background threads. BUG=v8:6093 Change-Id: Ic189610a943251b6b0cbd316afbf422c0da7a4cd Reviewed-on: https://chromium-review.googlesource.com/458007 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@{#44178}
-
- 24 Mar, 2017 1 commit
-
-
Wiktor Garbacz authored
A step towards removing isolate from ParseInfo. Removing isolate from ParseInfo will make it easier to create and execute parse tasks on background threads. BUG=v8:6093 Change-Id: If5e7ba2f76f9f8422c26f47c9f0eb5b197114b25 Reviewed-on: https://chromium-review.googlesource.com/458000Reviewed-by:
Daniel Vogelheim <vogelheim@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Wiktor Garbacz <wiktorg@google.com> Cr-Commit-Position: refs/heads/master@{#44089}
-
- 28 Feb, 2017 1 commit
-
-
Adam Klein authored
Previously, we over-approximated Scope::scope_calls_eval_ in arrow functions: if either the outer scope or the arrow function parameters had a direct eval call, we marked both scopes as calling eval. This over-approximation kept getting us into trouble, though, especially when eager or lazy parsing would disagree about the "calls eval" bit. This patch instead tracks eval calls accurately, using a boolean on Scope::Snapshot that is reset as appropriately depending on whether a particular AssignmentExpression turned out to be an arrow parameter list or not. BUG=chromium:691687 Change-Id: I527dc59b4d32a2797805ff26dc9f70b1311377b2 Reviewed-on: https://chromium-review.googlesource.com/446094 Commit-Queue: Adam Klein <adamk@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#43499}
-
- 16 Feb, 2017 2 commits
-
-
jwolfe authored
For functions declared in source code, the .toString() representation will be an excerpt of the source code. * For functions declared with the "function" keyword, the excerpt starts at the "function" or "async" keyword and ends at the final "}". The previous behavior would start the excerpt at the "(" of the parameter list, and prepend a canonical `"function " + name` or similar, which would discard comments and formatting surrounding the function's name. Anonymous functions declared as function expressions no longer get the name "anonymous" in their toString representation. * For methods, the excerpt starts at the "get", "set", "*" (for generator methods), or property name, whichever comes first. Previously, the toString representation for methods would use a canonical prefix before the "(" of the parameter list. Note that any "static" keyword is omitted. * For arrow functions and class declarations, the excerpt is unchanged. For functions created with the Function, GeneratorFunction, or AsyncFunction constructors: * The string separating the parameter text and body text is now "\n) {\n", where previously it was "\n/*``*/) {\n" or ") {\n". * At one point, newline normalization was required by the spec here, but that was removed from the spec, and so this CL does not do it. Included in this CL is a fix for CreateDynamicFunction parsing. ')' and '`' characters in the parameter string are no longer disallowed, and Function("a=function(", "}){") is no longer allowed. BUG=v8:4958, v8:4230 Review-Url: https://codereview.chromium.org/2156303002 Cr-Commit-Position: refs/heads/master@{#43262}
-
mvstanton authored
This is a workaround for the fact that %SetCode can "lose" the script for a js native. If the js native is re-initialized (for a Realm or something), then the source SharedFunctionInfo won't have a script anymore. Nonetheless, we may want to optimize the function. If we've compiled bytecode, then we can compile optimized code without a script. Here, we carve out a special exception for this case, so that we can turn on the --mark-shared-functions-for-tier-up. BUG=v8:5946 R=leszeks@chromium.org Review-Url: https://codereview.chromium.org/2684033007 Cr-Original-Commit-Position: refs/heads/master@{#43240} Committed: https://chromium.googlesource.com/v8/v8/+/4123a3dd790495c40cf839990318a85c146e057d Review-Url: https://codereview.chromium.org/2684033007 Cr-Commit-Position: refs/heads/master@{#43252}
-