- 28 Nov, 2016 1 commit
-
-
jochen authored
They're supposed to be stable across several parse passes, so we'll also store them in the associated SharedFunctionInfos To achieve this, the PreParser and Parser need to generated the same number of FunctionLiterals. To achieve this, we teach the PreParser about desuggaring of class literals. For regular functions, the function IDs are assigned in the order they occur in the source. For arrow functions, however, we only know that it's an arrow function after parsing the parameter list, and so the ID assigned to the arrow function is larger than the IDs assigned to functions defined in the parameter list. This implies that we have to reset the function ID counter to before the parameter list when re-parsing an arrow function. To be able to do this, we store the number of function literals found in the parameter list of arrow functions as well. BUG=v8:5589 Review-Url: https://codereview.chromium.org/2481163002 Cr-Commit-Position: refs/heads/master@{#41309}
-
- 04 Nov, 2016 1 commit
-
-
lpy authored
This patch is a follow-up patch to enable runtime statistics to use TracingCategoryObserver. BUG=v8:5590 Review-Url: https://codereview.chromium.org/2460973003 Cr-Commit-Position: refs/heads/master@{#40745}
-
- 03 Nov, 2016 2 commits
-
-
lpy authored
Revert of [Tracing] Use TracingCategoryObserver in runtime statistics (patchset #6 id:140001 of https://codereview.chromium.org/2460973003/ ) Reason for revert: Static-Initializers failed on Ubuntu-12.04 Original issue's description: > [Tracing] Use TracingCategoryObserver in runtime statistics > > This patch is a follow-up patch to enable runtime statistics to use > TracingCategoryObserver. > > BUG=v8:5590 TBR=cbruni@chromium.org,fmeawad@chromium.org,alph@chromium.org,bmeurer@chromium.org,mlippautz@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5590 Review-Url: https://codereview.chromium.org/2469403005 Cr-Commit-Position: refs/heads/master@{#40743}
-
lpy authored
This patch is a follow-up patch to enable runtime statistics to use TracingCategoryObserver. BUG=v8:5590 Review-Url: https://codereview.chromium.org/2460973003 Cr-Commit-Position: refs/heads/master@{#40742}
-
- 26 Oct, 2016 1 commit
-
-
rmcilroy authored
Removes the need for a CanonicalHandleScope for parsing and renumbering phases when using Ignition. Since AST strings are canonicalized by the AST value factory, we only need to make sure we use the same canonical handles for any other handles we add to the bytecode generator. This avoids a regression when enabling Ignition for all Turbofan code, and improves CodeLoad on for Ignition by about 5%. BUG=v8:4280 Review-Url: https://codereview.chromium.org/2448323004 Cr-Commit-Position: refs/heads/master@{#40595}
-
- 24 Oct, 2016 1 commit
-
-
mstarzinger authored
Revert of [compiler] Prepare for partially shipping Ignition. (patchset #1 id:1 of https://codereview.chromium.org/2443573002/ ) Reason for revert: Causes regressions: https://bugs.chromium.org/p/chromium/issues/detail?id=658711 Original issue's description: > [compiler] Prepare for partially shipping Ignition. > > This prepares the code-base so that Ignition can be enabled on a certain > subset of compilations without setting the {FLAG_ignition} flag (which > enables Ignition on all compilations). We should not check the flag in > question explicitly anywhere outside of the compiler heuristics. > > R=mvstanton@chromium.org BUG=chromium:658711 TBR=mvstanton@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. Review-Url: https://codereview.chromium.org/2448443002 Cr-Commit-Position: refs/heads/master@{#40534}
-
- 21 Oct, 2016 1 commit
-
-
mstarzinger authored
This prepares the code-base so that Ignition can be enabled on a certain subset of compilations without setting the {FLAG_ignition} flag (which enables Ignition on all compilations). We should not check the flag in question explicitly anywhere outside of the compiler heuristics. R=mvstanton@chromium.org Review-Url: https://chromiumcodereview.appspot.com/2443573002 Cr-Commit-Position: refs/heads/master@{#40507}
-
- 20 Oct, 2016 2 commits
-
-
mstarzinger authored
Breaks layout tests on Blink builders. TBR=machenbach@chromium.org Review-Url: https://chromiumcodereview.appspot.com/2428413004 Cr-Commit-Position: refs/heads/master@{#40471}
-
mstarzinger authored
This enables Ignition unconditionally for all code that is destined for optimization with TurboFan. This ensures all optimization attempts will go through the BytecodeGraphBuilder and that the AstGraphBuilder pipe is dried out in practice. R=mvstanton@chromium.org Review-Url: https://chromiumcodereview.appspot.com/2427953002 Cr-Commit-Position: refs/heads/master@{#40462}
-
- 17 Oct, 2016 2 commits
-
-
heimbuef authored
This adds more useful information to the v8-heap-stats tool. BUG=v8:5489 Review-Url: https://codereview.chromium.org/2394213003 Cr-Commit-Position: refs/heads/master@{#40361}
-
jochen authored
R=machenbach@chromium.org,titzer@chromium.org,bmeurer@chromium.org,jgruber@chromium.org BUG= CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_win_dbg,v8_mac_dbg;master.tryserver.chromium.android:android_arm64_dbg_recipe Review-Url: https://codereview.chromium.org/2416243002 Cr-Commit-Position: refs/heads/master@{#40350}
-
- 14 Oct, 2016 1 commit
-
-
jochen authored
R=ulan@chromium.org,cbruni@chromium.org,rmcilroy@chromium.org BUG=v8:5215 Review-Url: https://codereview.chromium.org/2413243002 Cr-Commit-Position: refs/heads/master@{#40295}
-
- 11 Oct, 2016 1 commit
-
-
verwaest authored
BUG=v8:5501 Review-Url: https://codereview.chromium.org/2406803003 Cr-Commit-Position: refs/heads/master@{#40160}
-
- 20 Sep, 2016 2 commits
-
-
heimbuef authored
This is some initial cleanup to keep /src clean. The AccountingAllocator is actually exclusively used by zones and this common subfolder makes that more clear. BUG=v8:5409 Review-Url: https://codereview.chromium.org/2344143003 Cr-Commit-Position: refs/heads/master@{#39558}
-
jochen authored
This means we can no longer take the closure's context to parse, but need to rely on the outer scope info. Since it's not possible to get that, however, for lazy functions, we introduce a new field to SharedFunctionInfo that stores the outer scope info whenever available. BUG=v8:5215 R=marja@chromium.org,verwaest@chromium.org,jgruber@chromium.org Review-Url: https://codereview.chromium.org/2358503002 Cr-Commit-Position: refs/heads/master@{#39548}
-
- 16 Sep, 2016 1 commit
-
-
vogelheim authored
- Smaller, more consistent streams API (Advance, Back, pos, Seek) - Remove implementations from the header, in favor of creation functions. Observe: - Performance: - All Utf16CharacterStream methods have an inlinable V8_LIKELY w/ a body of only a few instructions. I expect most calls to end up there. - There used to be performance problems w/ bookmarking, particularly with copying too much data on SetBookmark w/ UTF-8 streaming streams. All those copies are gone. - The old streaming streams implementation used to copy data even for 2-byte input. It no longer does. - The only remaining 'slow' method is the Seek(.) slow case for utf-8 streaming streams. I don't expect this to be called a lot; and even if, I expect it to be offset by the gains in the (vastly more frequent) calls to the other methods or the 'fast path'. - If it still bothers us, there are several ways to speed it up. - API & code cleanliness: - I want to remove the 'old' API in a follow-up CL, which should mostly delete code, or replace it 1:1. - In a 2nd follow-up I want to delete much of the UTF-8 handling in Blink for streaming streams. - The "bookmark" is now always implemented (and mostly very fast), so we should be able to use it for more things. - Testing & correctness: - The unit tests now cover all stream implementations, and are pretty good and triggering all the edge cases. - Vastly more DCHECKs of the invariants. BUG=v8:4947 Review-Url: https://codereview.chromium.org/2314663002 Cr-Commit-Position: refs/heads/master@{#39464}
-
- 15 Sep, 2016 3 commits
-
-
jochen authored
We don't need the context anymore for parsing, the scope info chain is enough. BUG=v8:5215 R=marja@chromium.org,jgruber@chromium.org,mstarzinger@chromium.org Review-Url: https://codereview.chromium.org/2342443004 Cr-Commit-Position: refs/heads/master@{#39457}
-
jochen authored
To avoid a dependency on the heap during parsing, we only create a scope chain without linking to the associated ScopeInfo objects before parsing. This is enough to avoid special cases during parsing of arrow functions / eval. Looking at the outer scope's variables during parsing was only needed for hosting sloppy block functions inside eval. To be able to do this now, we hoist for the outer-most eval scope after parsing, in DeclarationScope::Analyze. DeclarationScope::Analyze is also where we replace the outer scope chain with the fully deserialized version, so variables can be resolved. Also, this unifies background and foreground thread parsing, as we don't have to worry about ScopeInfos getting accessed before we're back on the main thread. BUG=v8:5215 R=verwaest@chromium.org,marja@chromium.org,adamk@chromium.org Review-Url: https://codereview.chromium.org/2306413002 Cr-Commit-Position: refs/heads/master@{#39452}
-
rmcilroy authored
Ignition requires that objects which will be inserted into the constant pool are canonicalized (to enable off-thread bytecode generation). We created a CanonicalizeHandleScope across parse/compile however this impacts performance (~5-8% on CodeLoad). Now we localize the CanonicalHandleScope to only the parse / internalization and renumbering phases where objects are created which could end up in the constant array pool. This seems to address the performance regression. BUG=v8:5203,chromium:634953 Review-Url: https://codereview.chromium.org/2318653002 Cr-Commit-Position: refs/heads/master@{#39443}
-
- 12 Sep, 2016 1 commit
-
-
ahaas authored
The use of the address of a local variable causes problems with asan, see https://build.chromium.org/p/tryserver.v8/builders/v8_linux64_asan_rel_ng_triggered/builds/7803 R=jochen@chromium.org Review-Url: https://codereview.chromium.org/2317253006 Cr-Commit-Position: refs/heads/master@{#39330}
-
- 31 Aug, 2016 1 commit
-
-
marja authored
This way, many files which only need CompilationInfo but not compiler.h and its dependencies can include just compilation-info.h. BUG= Review-Url: https://codereview.chromium.org/2284313003 Cr-Commit-Position: refs/heads/master@{#39038}
-
- 25 Aug, 2016 1 commit
-
-
rmcilroy authored
Adds compile operations to the CompilerDispatcherJob interface. As such, introduces Compiler::PrepareUnoptimizedCompilationJob and updates the unoptimized compilation path to use CompilationJobs. Also unifies FinalizeCompilationJob to deal with both optimized and unoptimized compilation jobs. A dummy FullCodegenCompilationJob is also introduced, where all the work is done in the ExecuteJob phase, which cannot be run on a background thread. BUG=v8:5203 Review-Url: https://codereview.chromium.org/2251713002 Cr-Commit-Position: refs/heads/master@{#38897}
-
- 23 Aug, 2016 1 commit
-
-
jochen authored
When preparing compilation, we can't delay error reporting either. Also put handles during internalization into a deferred handle scope. BUG=v8:5215 R=marja@chromium.org,rmcilory@chromium.org Review-Url: https://codereview.chromium.org/2268983002 Cr-Commit-Position: refs/heads/master@{#38817}
-
- 22 Aug, 2016 2 commits
-
-
rmcilroy authored
Adds InterpreterCompilationJob as a sub-class of CompilationJob, to enable off-thread bytecode generation. Currently only used in Interpreter::MakeBytecode. As part of this change, CompilationJob is modified to make it less specific to optimized compilation, renaming the phases as follows: - CreateGraph -> PrepareJob - OptimizeGraph -> ExecuteJob - GenerateCode -> FinalizeJob RegisterWeakObjectsInOptimizedCode is also moved out of CompilationJob and instead becomes a static function on Compiler. BUG=v8:5203 Committed: https://crrev.com/1fb6a7e697e8bc5b4af51647553741f966e00cdc Committed: https://crrev.com/785990e9fc0dd9a9d963d25d0bed2909165e4ca9 Committed: https://crrev.com/d7c6195c4c5cdc080caa74dfe2ae9ecab69bea73 Review-Url: https://codereview.chromium.org/2240463002 Cr-Original-Original-Original-Commit-Position: refs/heads/master@{#38662} Cr-Original-Original-Commit-Position: refs/heads/master@{#38668} Cr-Original-Commit-Position: refs/heads/master@{#38725} Cr-Commit-Position: refs/heads/master@{#38778}
-
marja authored
This makes us able to get rid of dependencies to parser.h from places which only need the ParseInfo, and also gets rid of the curious Parser <-> Compiler circular dependency. Also IWYUd where necessary. BUG= Review-Url: https://codereview.chromium.org/2268513002 Cr-Commit-Position: refs/heads/master@{#38777}
-
- 18 Aug, 2016 2 commits
-
-
rmcilroy authored
Revert of [Interpreter] Introduce InterpreterCompilationJob (patchset #9 id:180001 of https://codereview.chromium.org/2240463002/ ) Reason for revert: Revert again... Original issue's description: > [Interpreter] Introduce InterpreterCompilationJob > > Adds InterpreterCompilationJob as a sub-class of > CompilationJob, to enable off-thread bytecode > generation. Currently only used in > Interpreter::MakeBytecode. > > As part of this change, CompilationJob is modified > to make it less specific to optimized compilation, > renaming the phases as follows: > - CreateGraph -> PrepareJob > - OptimizeGraph -> ExecuteJob > - GenerateCode -> FinalizeJob > > RegisterWeakObjectsInOptimizedCode is also moved out > of CompilationJob and instead becomes a static function > on Compiler. > > BUG=v8:5203 > > Committed: https://crrev.com/1fb6a7e697e8bc5b4af51647553741f966e00cdc > Committed: https://crrev.com/785990e9fc0dd9a9d963d25d0bed2909165e4ca9 > Committed: https://crrev.com/d7c6195c4c5cdc080caa74dfe2ae9ecab69bea73 > Cr-Original-Original-Commit-Position: refs/heads/master@{#38662} > Cr-Original-Commit-Position: refs/heads/master@{#38668} > Cr-Commit-Position: refs/heads/master@{#38725} TBR=mstarzinger@chromium.org,jkummerow@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5203 Review-Url: https://codereview.chromium.org/2260583002 Cr-Commit-Position: refs/heads/master@{#38727}
-
rmcilroy authored
Adds InterpreterCompilationJob as a sub-class of CompilationJob, to enable off-thread bytecode generation. Currently only used in Interpreter::MakeBytecode. As part of this change, CompilationJob is modified to make it less specific to optimized compilation, renaming the phases as follows: - CreateGraph -> PrepareJob - OptimizeGraph -> ExecuteJob - GenerateCode -> FinalizeJob RegisterWeakObjectsInOptimizedCode is also moved out of CompilationJob and instead becomes a static function on Compiler. BUG=v8:5203 Committed: https://crrev.com/1fb6a7e697e8bc5b4af51647553741f966e00cdc Committed: https://crrev.com/785990e9fc0dd9a9d963d25d0bed2909165e4ca9 Review-Url: https://codereview.chromium.org/2240463002 Cr-Original-Original-Commit-Position: refs/heads/master@{#38662} Cr-Original-Commit-Position: refs/heads/master@{#38668} Cr-Commit-Position: refs/heads/master@{#38725}
-
- 16 Aug, 2016 4 commits
-
-
rmcilroy authored
Revert of [Interpreter] Introduce InterpreterCompilationJob (patchset #7 id:140001 of https://codereview.chromium.org/2240463002/ ) Reason for revert: Breaks Win64 bot Original issue's description: > [Interpreter] Introduce InterpreterCompilationJob > > Adds InterpreterCompilationJob as a sub-class of > CompilationJob, to enable off-thread bytecode > generation. Currently only used in > Interpreter::MakeBytecode. > > As part of this change, CompilationJob is modified > to make it less specific to optimized compilation, > renaming the phases as follows: > - CreateGraph -> PrepareJob > - OptimizeGraph -> ExecuteJob > - GenerateCode -> FinalizeJob > > RegisterWeakObjectsInOptimizedCode is also moved out > of CompilationJob and instead becomes a static function > on Compiler. > > BUG=v8:5203 > > Committed: https://crrev.com/1fb6a7e697e8bc5b4af51647553741f966e00cdc > Committed: https://crrev.com/785990e9fc0dd9a9d963d25d0bed2909165e4ca9 > Cr-Original-Commit-Position: refs/heads/master@{#38662} > Cr-Commit-Position: refs/heads/master@{#38668} TBR=mstarzinger@chromium.org,jkummerow@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5203 Review-Url: https://codereview.chromium.org/2251673003 Cr-Commit-Position: refs/heads/master@{#38669}
-
rmcilroy authored
Adds InterpreterCompilationJob as a sub-class of CompilationJob, to enable off-thread bytecode generation. Currently only used in Interpreter::MakeBytecode. As part of this change, CompilationJob is modified to make it less specific to optimized compilation, renaming the phases as follows: - CreateGraph -> PrepareJob - OptimizeGraph -> ExecuteJob - GenerateCode -> FinalizeJob RegisterWeakObjectsInOptimizedCode is also moved out of CompilationJob and instead becomes a static function on Compiler. BUG=v8:5203 Committed: https://crrev.com/1fb6a7e697e8bc5b4af51647553741f966e00cdc Review-Url: https://codereview.chromium.org/2240463002 Cr-Original-Commit-Position: refs/heads/master@{#38662} Cr-Commit-Position: refs/heads/master@{#38668}
-
rmcilroy authored
Revert of [Interpreter] Introduce InterpreterCompilationJob (patchset #7 id:140001 of https://codereview.chromium.org/2240463002/ ) Reason for revert: Failing on Win64 bot: https://build.chromium.org/p/client.v8/builders/V8%20Win64/builds/12061/steps/Check/logs/regress-635429 Original issue's description: > [Interpreter] Introduce InterpreterCompilationJob > > Adds InterpreterCompilationJob as a sub-class of > CompilationJob, to enable off-thread bytecode > generation. Currently only used in > Interpreter::MakeBytecode. > > As part of this change, CompilationJob is modified > to make it less specific to optimized compilation, > renaming the phases as follows: > - CreateGraph -> PrepareJob > - OptimizeGraph -> ExecuteJob > - GenerateCode -> FinalizeJob > > RegisterWeakObjectsInOptimizedCode is also moved out > of CompilationJob and instead becomes a static function > on Compiler. > > BUG=v8:5203 > > Committed: https://crrev.com/1fb6a7e697e8bc5b4af51647553741f966e00cdc > Cr-Commit-Position: refs/heads/master@{#38662} TBR=mstarzinger@chromium.org,jkummerow@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5203 Review-Url: https://codereview.chromium.org/2249153002 Cr-Commit-Position: refs/heads/master@{#38663}
-
rmcilroy authored
Adds InterpreterCompilationJob as a sub-class of CompilationJob, to enable off-thread bytecode generation. Currently only used in Interpreter::MakeBytecode. As part of this change, CompilationJob is modified to make it less specific to optimized compilation, renaming the phases as follows: - CreateGraph -> PrepareJob - OptimizeGraph -> ExecuteJob - GenerateCode -> FinalizeJob RegisterWeakObjectsInOptimizedCode is also moved out of CompilationJob and instead becomes a static function on Compiler. BUG=v8:5203 Review-Url: https://codereview.chromium.org/2240463002 Cr-Commit-Position: refs/heads/master@{#38662}
-
- 10 Aug, 2016 1 commit
-
-
rmcilroy authored
Updates a number of AST operations to avoid dereferencing handles such that they can safely be called off-thread. Also adds a HandleDereferenceMode argument to some operations where handles are compared. If handle dereferencing is allowed, the handles are compared directly, if not then their locations are compared (which relies on the handles being created in a CanonicalHandleScope). BUG=v8:5203 TBR=adamk@chromium.org Review-Url: https://codereview.chromium.org/2223523002 Cr-Commit-Position: refs/heads/master@{#38526}
-
- 05 Aug, 2016 3 commits
-
-
jochen authored
Original issue description: > The lazy parser actually parses eagerly. It's called lazy because it > parses functions that were previously lazy parsed. D'uh. > > BUG=v8:5215 > R=marja@chromium.org > > Review-Url: https://codereview.chromium.org/2220463002 > Cr-Commit-Position: refs/heads/master@{#38375} BUG=v8:5215 TBR=marja@chromium.org Review-Url: https://codereview.chromium.org/2218033003 Cr-Commit-Position: refs/heads/master@{#38387}
-
machenbach authored
Revert of Hook up compiler dispatcher jobs to lazy parser. (patchset #3 id:40001 of https://codereview.chromium.org/2220463002/ ) Reason for revert: Need to revert https://codereview.chromium.org/2216563003 - just reland rebased version Original issue's description: > Hook up compiler dispatcher jobs to lazy parser. > > The lazy parser actually parses eagerly. It's called lazy because it > parses functions that were previously lazy parsed. D'uh. > > BUG=v8:5215 > R=marja@chromium.org > > Committed: https://crrev.com/255cc15f98507e2bba49574f4dc38c74deb0ca2c > Cr-Commit-Position: refs/heads/master@{#38375} TBR=marja@chromium.org,jochen@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5215 Review-Url: https://codereview.chromium.org/2211393003 Cr-Commit-Position: refs/heads/master@{#38378}
-
jochen authored
The lazy parser actually parses eagerly. It's called lazy because it parses functions that were previously lazy parsed. D'uh. BUG=v8:5215 R=marja@chromium.org Review-Url: https://codereview.chromium.org/2220463002 Cr-Commit-Position: refs/heads/master@{#38375}
-
- 03 Aug, 2016 1 commit
-
-
jochen authored
This will allow for the background parser to parse inner functions BUG=v8:5215 R=marja@chromium.org,verwaest@chromium.org Review-Url: https://codereview.chromium.org/2198043002 Cr-Commit-Position: refs/heads/master@{#38291}
-
- 01 Aug, 2016 1 commit
-
-
jochen authored
BUG=v8:5215 R=vogelheim@chromium.org,marja@chromium.org Review-Url: https://codereview.chromium.org/2193813002 Cr-Commit-Position: refs/heads/master@{#38203}
-
- 29 Jul, 2016 3 commits
-
-
jochen authored
BUG=v8:5215 R=vogelheim@chromium.org,marja@chromium.org Review-Url: https://codereview.chromium.org/2197573002 Cr-Commit-Position: refs/heads/master@{#38174}
-
jochen authored
BUG=v8:5215 R=marja@chromium.org,vogelheim@chromium.org Review-Url: https://codereview.chromium.org/2190333002 Cr-Commit-Position: refs/heads/master@{#38170}
-
jochen authored
Also make it possible to use the background parser from a character stream. The External{One,Two}ByteStringUtf16CharacterStreams work both on foreground and background threads. BUG=v8:5215 R=marja@chromium.org,vogelheim@chromium.org Review-Url: https://codereview.chromium.org/2195603002 Cr-Commit-Position: refs/heads/master@{#38162}
-