- 15 Feb, 2019 1 commit
-
-
Leszek Swirski authored
In addition to the previous change enabling forced FunctionDeclaration allocation when block code coverage is enabled, enable it now for all (non-best-effort) code coverage by reading off the coverage mode from the isolate (rather than relying on the presence of a source range map). Bug: chromium:927464 Change-Id: I26f86c9fbebc0df52d5cdeff3ca1095215a6d912 Reviewed-on: https://chromium-review.googlesource.com/c/1456041 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#59626}
-
- 14 Feb, 2019 1 commit
-
-
Dan Elphick authored
If enable_omit_source_positions is true (defaults to false), source position tables are not generated when compiling bytecode. They will then be regenerated when exceptions are thrown. This adds a new function Compiler::CollectSourcePositions which given a SharedFunctionInfo with bytecode but no source position table re-parses and regenerates the bytecode but this time with source positions collection enabled. Note this will reparse all inner functions that have previously been compiled since the preparse data is no longer available. With the flag enabled there still 18 test failures mostly related to debugging. v8: 8510 Change-Id: I46dff9818d8a89c901ba8ae8df94dcaca83aa658 Reviewed-on: https://chromium-review.googlesource.com/c/1385165 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#59595}
-
- 13 Feb, 2019 1 commit
-
-
Nico Weber authored
For macros expanding to function definitions, I removed the spurious ; after macro invocations. For macros expandign to function declarations, I made the ; required and consistently inserted it. No behavior change. Bug: chromium:926235 Change-Id: Ib8085d85d913d74307e3481f7fee4b7dc78c7549 Reviewed-on: https://chromium-review.googlesource.com/c/1467545Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Nico Weber <thakis@chromium.org> Cr-Commit-Position: refs/heads/master@{#59558}
-
- 28 Jan, 2019 1 commit
-
-
Camillo Bruni authored
- Dehandlify ScopeInfo::ContextSlotIndex - Dehandlify ScriptContextTable::Lookup - Introduce function-kind.h with range-based helper methods - Spread usage of Scope::is_script_scope and friends Change-Id: I8ed1d82cc5bb9ea3fce856e16e9eafe194fb57ba Reviewed-on: https://chromium-review.googlesource.com/c/1430100Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Maya Lekova <mslekova@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#59120}
-
- 22 Jan, 2019 1 commit
-
-
Ross McIlroy authored
The decision as to whether to optimize an IIFE as oneshot depends on whether it's outer scope is the script scope. During lazy compile, we might have discarded scopes which don't need a context between the IIFE and the script scope, which means we might treat an IIFE as oneshot, even though initial eager compile treated it as non-oneshot. Both bytecode flushing and lazy source positions rely on us generating the same bytecode during lazy compile as eager compile, so we move the decision into the parser where it happens once and is then stored in the SFI for any future lazy compiles. BUG=v8:8395,v8:8510 Change-Id: I88f1e74ad95d47a2636c393ceb1318d7d610055d Reviewed-on: https://chromium-review.googlesource.com/c/1421841Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#58996}
-
- 18 Jan, 2019 1 commit
-
-
Ross McIlroy authored
If a function is classed as an IIFE it will be have different bytecode generated to reduce feedback vector overhead for run-once code. As a result, we need to retain this information if we are going to lazily compile the bytecode later in order to get the same result. This is necessary for lazy bytecode flushing and lazy source positions, both of which need to recompile functions which were previously compiled. BUG=v8:8395,v8:8510 Change-Id: Ib898868102610216315faa20c9da682f6c523390 Reviewed-on: https://chromium-review.googlesource.com/c/1417636 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#58921}
-
- 07 Jan, 2019 1 commit
-
-
Camillo Bruni authored
We plan to store additional information that is not related to scopes. The new name will reflect this fact better. Change-Id: I4ddb1017bc255e6ad271e4448848ed630f367d5b Reviewed-on: https://chromium-review.googlesource.com/c/1388538 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#58591}
-
- 18 Dec, 2018 1 commit
-
-
Ross McIlroy authored
The parser object can now be created on a worker thread, therefore we shouldn't access global FLAGs during the constructor. Instead move them to the ParseInfo constructor and set the parser fields based on these. Also avoid accessing always_opt flags in bytecode-flags - instead accessing it in ParseInfo and propagating to the bytecode generator. Also gets rid of unused kUntrustedCodeMitigations flag in UnoptimizedCompilationInfo BUG=v8:8582 Change-Id: I6e6fdc8cc7865803cb5f334f652abc0e3e4cb3ce Reviewed-on: https://chromium-review.googlesource.com/c/1375918Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#58316}
-
- 17 Dec, 2018 1 commit
-
-
Camillo Bruni authored
Parser::MaybeResetCharacterStream calls Scope::ContainsAsmModule which recursively checks whether a Scope is an asm module or any of its sub-scopes. This is sub-optimal for deeply nested scopes and many functions which do not contain any asm modules. Drive-by-fix: - rename Scope::asm_module to Scope::is_asm_module Change-Id: I922270c608b54c6525f0672ead4aca90f57a6551 Reviewed-on: https://chromium-review.googlesource.com/c/1360636Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#58288}
-
- 14 Nov, 2018 1 commit
-
-
Leszek Swirski authored
Moves the unicode predicate cache tables out of the unicode cache, and turns them into generic predicates in char-predicates.h which use static constexpr tables. This drops the per-isolate cost of unicode caches, and removes the need for accessing the unicode cache from most files. It does remove the mutability of the cache, which means that there may be regressions when parsing non-ASCII identifiers. Most likely the benefits to ASCII identifiers/keywords will outweigh any non-ASCII costs. Change-Id: I9a7a8b7c9b22d3e9ede824ab4e27f133ce20a399 Reviewed-on: https://chromium-review.googlesource.com/c/1335564Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#57506}
-
- 06 Nov, 2018 1 commit
-
-
Joyee Cheung authored
Rename variables and flag names so that the classes can be reused by private methods implementation. In particular: Rename "fields" to "members" in the initializer so that we can initialize both fields and private methods/accessors there, for example: instance_fields_initializer -> instance_members_initializer InitializeClassFieldsStatement -> InitializeClassMembersStatement Rename "private field" to "private name" for the private symbols used to implement private fields so that we can use them to store private methods/accessors later as well, for example: private_field_name_var -> private_name_var NewPrivateFieldSymbol -> NewPrivateNameSymbol The follow-on is in https://chromium-review.googlesource.com/c/v8/v8/+/1301018 The design doc is in https://docs.google.com/document/d/1T-Ql6HOIH2U_8YjWkwK2rTfywwb7b3Qe8d3jkz72KwA/edit?usp=sharing Bug: v8:8330 Change-Id: I1cdca8def711da879b6e4d67c5ff0a5a4a36abbe Reviewed-on: https://chromium-review.googlesource.com/c/1312597Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Joyee Cheung <joyee@igalia.com> Cr-Commit-Position: refs/heads/master@{#57289}
-
- 12 Oct, 2018 1 commit
-
-
Ross McIlroy authored
Adds support for enqueuing parallel parse / compile tasks for eagerly compiled IIFEs during parsing. If the --parallel-compile-tasks flag is enabled, the parser will pre-parse eager top-level IIFEs and enqueue a task on the compiler dispatcher to do the actual parsing / compilation on a worker thread. Currently we always enqueue the task, but we likely want to only enqueue parallel tasks where the script has multiple IIFEs or a substantial amount of top-level script code before the IIFE to avoid the main thread having to immediately block on the parallel task. This work will be done as a follow-up. BUG=v8:8041 Change-Id: If68d7c374548cabd4ec32f1fb6752da7d6aaae6b Reviewed-on: https://chromium-review.googlesource.com/c/1275354Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#56593}
-
- 20 Sep, 2018 1 commit
-
-
Ross McIlroy authored
Refactors the CompilerDispatcher to be able to enqueue eager inner functions for off-thread compilation during top-level compilation of a script. Unoptimized compile jobs are simplified to only have two phases - compile and finalization. Only finalization requires heap access (and therefore needs to be run on the main thread). The change also introduces a requirement to register a SFI with a given compile job after that job is posted, this is due to the fact that an SFI won't necessarily exist at the point the job is posted, but is created later when top-level compile is being finalized. Logic in the compile dispatcher is update to deal with the fact that a job may not be able to progress if it doesn't yet have an associated SFI registered with it. BUG=v8:8041 Change-Id: I66cccd626136738304a7cab0e501fc65cf342514 Reviewed-on: https://chromium-review.googlesource.com/1215782 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#56088}
-
- 07 Sep, 2018 1 commit
-
-
Ross McIlroy authored
Adds support for zone allocated (off-heap) ConsumedPreParsingScopeData to enable worker-thread access to PreParsingScopeData during parallel IIFE compile tasks. In order to avoid code-duplication, a templated BaseConsumedPreParsingScopeData is added which implements the logic for decoding the bytestream into scope data. Two implementations of this base class are instantiated for each of the underlying serialized scope date: - ZoneConsumedPreParsedScopeData for exposing ZonePreParsedScopeData - OnHeapConsumedPreParsedScopeData for exposing on-heap PreParsedScopeData The interface for each of these classes is the ConsumedPreParsingScopeData, which exposes the methods required by the parser to deserialize the required data. As a side-cleanup, moved Ucs2CharLength and Utf8LengthHelper implementations to cc file so that we don't get a linker error if one of them are unused by the cc file including the header. BUG=v8:8041 Change-Id: Id502312d32fe4a9ddb6f5d2d9d3e3a9d30b9b27d Reviewed-on: https://chromium-review.googlesource.com/1199462 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#55711}
-
- 28 Aug, 2018 3 commits
-
-
Ross McIlroy authored
This is a reland of 1e5b6d99 Original change's description: > [RCS] Create thread local runtime call stats tables for worker threads > > Creating a runtime call stats table for each worker thread task is expensive. > Instead we create a single table per thread, and use TLS to get the correct one > when starting a worker thread task. > > In order to correctly initialize the parser, scanner and parse-info's runtime > call stats fields, we move creation of the scanner and parser onto the > background tasks for BackgroundCompileTask and UnoptimizedCompilationJob. > > Change-Id: I36064c7fb43290968620b1985cc02637b16f4232 > Reviewed-on: https://chromium-review.googlesource.com/1187522 > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#55448} TBR=verwaest@chromium.org Change-Id: I7c2f48280651d7632d99ee22d86260c72bc16185 Reviewed-on: https://chromium-review.googlesource.com/1193463 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#55456}
-
Maya Lekova authored
This reverts commit 1e5b6d99. Reason for revert: Breaks an arm64 MSAN bot - https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/22601 Original change's description: > [RCS] Create thread local runtime call stats tables for worker threads > > Creating a runtime call stats table for each worker thread task is expensive. > Instead we create a single table per thread, and use TLS to get the correct one > when starting a worker thread task. > > In order to correctly initialize the parser, scanner and parse-info's runtime > call stats fields, we move creation of the scanner and parser onto the > background tasks for BackgroundCompileTask and UnoptimizedCompilationJob. > > Change-Id: I36064c7fb43290968620b1985cc02637b16f4232 > Reviewed-on: https://chromium-review.googlesource.com/1187522 > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#55448} TBR=rmcilroy@chromium.org,verwaest@chromium.org Change-Id: If3f28e65667816b7ae05c5efcb2f463379bc582b No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/1193224Reviewed-by:
Maya Lekova <mslekova@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#55449}
-
Ross McIlroy authored
Creating a runtime call stats table for each worker thread task is expensive. Instead we create a single table per thread, and use TLS to get the correct one when starting a worker thread task. In order to correctly initialize the parser, scanner and parse-info's runtime call stats fields, we move creation of the scanner and parser onto the background tasks for BackgroundCompileTask and UnoptimizedCompilationJob. Change-Id: I36064c7fb43290968620b1985cc02637b16f4232 Reviewed-on: https://chromium-review.googlesource.com/1187522Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#55448}
-
- 23 Aug, 2018 1 commit
-
-
Ross McIlroy authored
Removes some unused functions in ParseInfo and makes the associated fields unique_ptr instead of shared_ptr. Also removes an unused zone in Compiler. Change-Id: Idf1fbfb523cfc2b9a265d2855b1167770203cfd5 Reviewed-on: https://chromium-review.googlesource.com/1185193 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#55342}
-
- 21 Aug, 2018 1 commit
-
-
Toon Verwaest authored
This reverts the following 3 CLs: Revert "[scanner] Templatize scan functions by encoding" Revert "[asm] Remove invalid static cast of character stream" Revert "[scanner] Prepare CharacterStreams for specializing scanner and parser by character type" The original idea behind this work was to avoid copying, converting and buffering characters to be scanned by specializing the scanner functions. The additional benefit was for scanner functions to have a bigger window over the input. Even though we can get a pretty nice speedup from having a larger window, in practice this rarely helps. The cost is a larger binary. Since we can't eagerly convert utf8 to utf16 due to memory overhead, we'd also need to have a specialized version of the scanner just for utf8. That's pretty complex, and likely won't be better than simply bulk converting and buffering utf8 as utf16. Change-Id: Ic3564683932a0097e3f9f51cd88f62c6ac879dcb Reviewed-on: https://chromium-review.googlesource.com/1183190Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#55258}
-
- 13 Aug, 2018 1 commit
-
-
Ross McIlroy authored
Decodes SFI::Flags on construction and sets properties in ParseInfo::flags_ directly, as well as adding a FunctionKind field, instead of keeping the encoded SFI flags in the ParseInfo. BUG=v8:8041 Change-Id: I9bd9345b29a8b0e9ffb3e2e73aac11ae6ef69322 Reviewed-on: https://chromium-review.googlesource.com/1169181Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#55080}
-
- 01 Aug, 2018 1 commit
-
-
Toon Verwaest authored
This templatizes CharacterStream by char type, and makes them subclass ScannerStream. Methods that are widely used by tests are marked virtual on ScannerStream and final on CharacterStream<T> so the specialized scanner will know what to call. ParseInfo passes around ScannerStream, but the scanner requires the explicit CharacterStream<T>. Since AdvanceUntil is templatized by FunctionType, I couldn't mark that virtual; so instead I adjusted those tests to operate directly on ucs2 (not utf8 since we'll drop that in the future). In the end no functionality was changed. Some calls became virtual in tests. This is mainly just preparation. Change-Id: I0b4def65d3eb8fa5c806027c7e9123a590ebbdb5 Reviewed-on: https://chromium-review.googlesource.com/1156690 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#54848}
-
- 16 Jul, 2018 1 commit
-
-
Yang Guo authored
R=bmeurer@chromium.org, ulan@chromium.org Bug: chromium:680662 Change-Id: I5e1486ad2a42db2998d5485a0c4e711378678e6c Reviewed-on: https://chromium-review.googlesource.com/1136034Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#54460}
-
- 25 Jun, 2018 1 commit
-
-
Camillo Bruni authored
This reverts commit a800e050. Original change's description: > Revert "[parser][log] Log script id during background compilation" > > This reverts commit aafd5c52. > > Reason for revert: Tentative revert for > > https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Win64/24825 > https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Win64%20-%20msvc/3242 > > Original change's description: > > [parser][log] Log script id during background compilation > > > > - Add separate script-create, script-reserve-id and script-details log events > > - Add log events for CompilationCache hits and puts > > - Simplify function event logging by only pass along the script id > > - Explicitly create Scripts in parse-processor.js on script events only > > - Create a temporary script id in the ParseInfo for use during background > > parsing and compilation > > - Clean up ParseInfo initialization to centralize creation and use of > > script ids > > - Allow creating Scripts with predefined script ids > > > > Bug: chromium:757467, chromium:850038 > > Change-Id: I02dfd1d5725795b9fe0ea94ef57b287b934a1efe > > Reviewed-on: https://chromium-review.googlesource.com/1097131 > > Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> > > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > > Commit-Queue: Camillo Bruni <cbruni@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#53978} > > TBR=ulan@chromium.org,cbruni@chromium.org,gsathya@chromium.org,leszeks@chromium.org > > Change-Id: I629f72f51d5e086e2b54658c1fdd18cec268aab2 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: chromium:757467, chromium:850038 > Reviewed-on: https://chromium-review.googlesource.com/1112538 > Reviewed-by: Yang Guo <yangguo@chromium.org> > Commit-Queue: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#53984} TBR=ulan@chromium.org,yangguo@chromium.org,cbruni@chromium.org,gsathya@chromium.org,leszeks@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: chromium:757467, chromium:850038 Change-Id: I3088c86362c06ee50464f1f14e25350b1b8048ad Reviewed-on: https://chromium-review.googlesource.com/1112539Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#53994}
-
- 22 Jun, 2018 2 commits
-
-
Yang Guo authored
This reverts commit aafd5c52. Reason for revert: Tentative revert for https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Win64/24825 https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Win64%20-%20msvc/3242 Original change's description: > [parser][log] Log script id during background compilation > > - Add separate script-create, script-reserve-id and script-details log events > - Add log events for CompilationCache hits and puts > - Simplify function event logging by only pass along the script id > - Explicitly create Scripts in parse-processor.js on script events only > - Create a temporary script id in the ParseInfo for use during background > parsing and compilation > - Clean up ParseInfo initialization to centralize creation and use of > script ids > - Allow creating Scripts with predefined script ids > > Bug: chromium:757467, chromium:850038 > Change-Id: I02dfd1d5725795b9fe0ea94ef57b287b934a1efe > Reviewed-on: https://chromium-review.googlesource.com/1097131 > Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Commit-Queue: Camillo Bruni <cbruni@chromium.org> > Cr-Commit-Position: refs/heads/master@{#53978} TBR=ulan@chromium.org,cbruni@chromium.org,gsathya@chromium.org,leszeks@chromium.org Change-Id: I629f72f51d5e086e2b54658c1fdd18cec268aab2 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:757467, chromium:850038 Reviewed-on: https://chromium-review.googlesource.com/1112538Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#53984}
-
Camillo Bruni authored
- Add separate script-create, script-reserve-id and script-details log events - Add log events for CompilationCache hits and puts - Simplify function event logging by only pass along the script id - Explicitly create Scripts in parse-processor.js on script events only - Create a temporary script id in the ParseInfo for use during background parsing and compilation - Clean up ParseInfo initialization to centralize creation and use of script ids - Allow creating Scripts with predefined script ids Bug: chromium:757467, chromium:850038 Change-Id: I02dfd1d5725795b9fe0ea94ef57b287b934a1efe Reviewed-on: https://chromium-review.googlesource.com/1097131Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#53978}
-
- 19 Jun, 2018 1 commit
-
-
Dan Elphick authored
Replace all but one Handle<T*>(T*) calls with ones that explicitly pass in an Isolate. Requires plumbing Isolate* through several Parser functions which previously avoided it because of worries about accessing the heap off the main thread. In all off-main-thread cases, isolate will be nullptr and every such function asserts with: DCHECK_EQ(parsing_on_main_thread_, isolate != nullptr); Also deletes unused function ParseInfo::ReopenHandlesInNewHandleScope. Bug: v8:7786 Change-Id: I3dd9c49dcde49fdbcb684ba73f47a30d00fc495e Reviewed-on: https://chromium-review.googlesource.com/1087272 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#53820}
-
- 07 Jun, 2018 1 commit
-
-
Leszek Swirski authored
This reverts commit ceb9c812. Reason for revert: Tanks compile time Original change's description: > [sfi] Remove SFI function literal id field > > SharedFunctionInfos store their original function literal's id. This is > also their index in the Script's SFI list. > > Since the function literal id is only needed for lazy compilation and live > edit, we can calculate it on-the-fly by linear search in the Script SFI list, > and save a field on the SFI. > > If this regresses compile performance, we could alternatively store the > function literal id on the preparsed scope data as future work. > > Bug: chromium:818642 > Change-Id: I5468cea0e115921f1c864d94e567d749a4349882 > Reviewed-on: https://chromium-review.googlesource.com/1082480 > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > Reviewed-by: Hannes Payer <hpayer@chromium.org> > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Cr-Commit-Position: refs/heads/master@{#53523} TBR=hpayer@chromium.org,leszeks@chromium.org,verwaest@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: chromium:818642 Bug: chromium:850417 Change-Id: If2fd21331b7062532c04004a51e705f7e9d0a151 Reviewed-on: https://chromium-review.googlesource.com/1090494Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#53573}
-
- 05 Jun, 2018 2 commits
-
-
Leszek Swirski authored
SharedFunctionInfos store their original function literal's id. This is also their index in the Script's SFI list. Since the function literal id is only needed for lazy compilation and live edit, we can calculate it on-the-fly by linear search in the Script SFI list, and save a field on the SFI. If this regresses compile performance, we could alternatively store the function literal id on the preparsed scope data as future work. Bug: chromium:818642 Change-Id: I5468cea0e115921f1c864d94e567d749a4349882 Reviewed-on: https://chromium-review.googlesource.com/1082480 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#53523}
-
Dan Elphick authored
Removes most[1] explicit calls to GetIsolate() in parsing/ by passing it through calling function functions and implicit calls via the single argument Handle constructor and handle function. [1] One remains in preparsed-scope-data.cc: data_->GetIsolate()->PushStackTraceAndDie() Bug: v8:7786 Change-Id: I4c445995a73c19bdf4649b65487b7443d56ddd2a Reviewed-on: https://chromium-review.googlesource.com/1085057Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#53513}
-
- 27 Mar, 2018 1 commit
-
-
Leszek Swirski authored
Since the flags are used for more than just giving hints to the compiler, the name isn't appropriate anymore. Change-Id: I4b2f87a117490e7f1e1a693394e46633e751b444 Reviewed-on: https://chromium-review.googlesource.com/982012Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#52245}
-
- 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 1 commit
-
-
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}
-