- 25 Jan, 2017 1 commit
-
-
marja authored
[parser]: Skipping inner funcs / initial implemetation of storing scope analysis data from preparsed scopes. The data produced at the moment only contains information about scope type + positions, and only the most trivial tests pass. Upcoming CLs will extend the data to contain information about variables (once PreParser can produce it) and add more test cases. BUG=v8:5516 Review-Url: https://codereview.chromium.org/2650703003 Cr-Commit-Position: refs/heads/master@{#42656}
-
- 24 Jan, 2017 1 commit
-
-
marja authored
Using a Handle<Foo> as a member doesn't require including foo.h R=mstarzinger@chromium.org BUG=v8:5402 Review-Url: https://codereview.chromium.org/2650973003 Cr-Commit-Position: refs/heads/master@{#42631}
-
- 17 Jan, 2017 1 commit
-
-
marja authored
This makes it clearer which places are creating variables which are something else than NORMAL_VARIABLE + kCreatedInitialized. BUG= Review-Url: https://codereview.chromium.org/2631173002 Cr-Commit-Position: refs/heads/master@{#42395}
-
- 16 Jan, 2017 1 commit
-
-
marja authored
- Generalize the sloppy block function data structures to allow PreParser adding and hoisting sloppy block funcs. - This completes PreParser scope analysis. BUG=v8:5501, v8:5516 R=verwaest@chromium.org Review-Url: https://codereview.chromium.org/2636543002 Cr-Commit-Position: refs/heads/master@{#42368}
-
- 10 Jan, 2017 1 commit
-
-
marja authored
Including a fix: object-macros.h needs to be the last include: otherwise we'll have a problem when a file does this: #include "object-macros.h" #include "x.h" // x.h also includes object-macros.h BUG=v8:5402 Review-Url: https://codereview.chromium.org/2623573003 Cr-Commit-Position: refs/heads/master@{#42187}
-
- 04 Jan, 2017 1 commit
-
-
marja authored
It's unnecessarily to first lookup and then insert. BUG=v8:5501 Review-Url: https://codereview.chromium.org/2608333003 Cr-Commit-Position: refs/heads/master@{#42065}
-
- 12 Dec, 2016 1 commit
-
-
marja authored
BUG=v8:5501, v8:5678 Review-Url: https://codereview.chromium.org/2539123002 Cr-Commit-Position: refs/heads/master@{#41645}
-
- 08 Dec, 2016 1 commit
-
-
bradnelson authored
Use of eval in a function wraps it in a context. This throws off assumptions not checked until later, which is at odds with incremental validation and conversion. Check that module parameters are PARAMETER location early. BUG=672045 R=titzer@chromium.org Review-Url: https://codereview.chromium.org/2558813004 Cr-Commit-Position: refs/heads/master@{#41594}
-
- 06 Dec, 2016 1 commit
-
-
marja authored
This makes the context allocation less pessimistic in the following cases: function outer() { var a; // Won't be context allocated function inner1() { var a; a; } function inner2(a) { a; } function inner3([a]) { a; } function inner4({ a: b}) { a; } } BUG=v8:5501 Review-Url: https://codereview.chromium.org/2407163003 Cr-Commit-Position: refs/heads/master@{#41521}
-
- 30 Nov, 2016 1 commit
-
-
bradnelson authored
Make the AsmWasmBuilder drive the process of typing and potentially parsing function bodies. This will allow us to keep only a single asm.js function's AST in memory as we convert to WebAssembly. This is needed to keep our memory footprint low. Add some additional output to a few tests that's helpful to see which stage they fail at. BUG= https://bugs.chromium.org/p/v8/issues/detail?id=4203 LOG=N R=marja@chromium.org,adamk@chromium.org,aseemgarg@chromium.org,titzer@chromium.org Review-Url: https://codereview.chromium.org/2398023002 Cr-Commit-Position: refs/heads/master@{#41372}
-
- 29 Nov, 2016 1 commit
-
-
verwaest authored
BUG=v8:5664 Review-Url: https://codereview.chromium.org/2536153002 Cr-Commit-Position: refs/heads/master@{#41353}
-
- 24 Nov, 2016 2 commits
-
-
verwaest authored
BUG=chromium:417697 Review-Url: https://codereview.chromium.org/2522223002 Cr-Commit-Position: refs/heads/master@{#41271}
-
neis authored
The catch scopes were created with the wrong parent scope. R=littledan@chromium.org BUG=v8:5648 Committed: https://crrev.com/f385268d11d6da9508e481202b39f75f4b56afdd Review-Url: https://codereview.chromium.org/2520883002 Cr-Original-Commit-Position: refs/heads/master@{#41222} Cr-Commit-Position: refs/heads/master@{#41253}
-
- 23 Nov, 2016 2 commits
-
-
machenbach authored
Revert of [parser] Fix scopes in rewriting of for-of and destructuring assignments. (patchset #6 id:100001 of https://codereview.chromium.org/2520883002/ ) Reason for revert: Speculative revert: Seems to break jsfunfuzz: https://build.chromium.org/p/client.v8/builders/V8%20Fuzzer/builds/14385 Original issue's description: > [parser] Fix scopes in rewriting of for-of and destructuring assignments. > > The catch scopes were created with the wrong parent scope. > > R=littledan@chromium.org > BUG=v8:5648 > > Committed: https://crrev.com/f385268d11d6da9508e481202b39f75f4b56afdd > Cr-Commit-Position: refs/heads/master@{#41222} TBR=littledan@chromium.org,verwaest@chromium.org,neis@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5648 Review-Url: https://codereview.chromium.org/2519333005 Cr-Commit-Position: refs/heads/master@{#41228}
-
neis authored
The catch scopes were created with the wrong parent scope. R=littledan@chromium.org BUG=v8:5648 Review-Url: https://codereview.chromium.org/2520883002 Cr-Commit-Position: refs/heads/master@{#41222}
-
- 21 Nov, 2016 1 commit
-
-
marja authored
BUG= Review-Url: https://codereview.chromium.org/2517993002 Cr-Commit-Position: refs/heads/master@{#41145}
-
- 18 Nov, 2016 1 commit
-
-
mstarzinger authored
This fixes the bogus implementation of the function in question and adds test coverage for the deserialization of the corresponding flags from the serialized scope info. Note that the tests so far only cover cases where the module and the function contain context-allocated variables. R=verwaest@chromium.org TEST=cctest/test-parsing/AsmFunctionFlag BUG=v8:5653 Review-Url: https://codereview.chromium.org/2507063004 Cr-Commit-Position: refs/heads/master@{#41093}
-
- 14 Nov, 2016 1 commit
-
-
neis authored
Revert of [ast] Simplify FetchFreeVariables. (patchset #1 id:1 of https://codereview.chromium.org/2491373004/ ) Reason for revert: It's probably needed after all but we're lacking tests. Original issue's description: > [ast] Simplify FetchFreeVariables. > > This CL removes the ParseInfo argument from FetchFreeVariables, since it seems > to have become unnecessary. > > R=verwaest@chromium.org > BUG= TBR=verwaest@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG= Review-Url: https://codereview.chromium.org/2495293002 Cr-Commit-Position: refs/heads/master@{#40964}
-
- 11 Nov, 2016 1 commit
-
-
neis authored
This CL removes the ParseInfo argument from FetchFreeVariables, since it seems to have become unnecessary. R=verwaest@chromium.org BUG= Review-Url: https://codereview.chromium.org/2491373004 Cr-Commit-Position: refs/heads/master@{#40933}
-
- 03 Nov, 2016 1 commit
-
-
verwaest authored
This turns the ZoneList with minimum 6 words overhead into a linked list through variables, using 2 words for the empty list. Additionally the average number of pointers per entry goes down to the optimal 1 per variable that's in a list. This does introduce 1 pointer unnecessary overhead for dynamic variables. If that becomes a problem we could distinguish between variables in lists and variables not in lists. We can distinguish them at construction-time. BUG=v8:5209 Review-Url: https://codereview.chromium.org/2475433002 Cr-Commit-Position: refs/heads/master@{#40714}
-
- 02 Nov, 2016 1 commit
-
-
verwaest authored
This reduces per-scope overhead from minimally 6 words to 2 words, with one additional pointer per entry, rather than an average of 2 per entry for larger-than-4 element lists. For temp zone parsed functions it additionally makes the declaration-list actually freeable. This introduces ThreadedList to implement the details of dealing with such a list. BUG=v8:5209 Review-Url: https://codereview.chromium.org/2457393003 Cr-Commit-Position: refs/heads/master@{#40703}
-
- 27 Oct, 2016 1 commit
-
-
adamk authored
Unlike other variable allocation logic, MODULE allocation does not depend on resolution. So in order to give hole check elimination (which runs during resolution) access to the information "is this variable an import", simply allocate all modules variables prior to resolution. BUG=v8:1569 Review-Url: https://codereview.chromium.org/2458653002 Cr-Commit-Position: refs/heads/master@{#40621}
-
- 25 Oct, 2016 1 commit
-
-
verwaest authored
BUG= Review-Url: https://codereview.chromium.org/2445993002 Cr-Commit-Position: refs/heads/master@{#40548}
-
- 20 Oct, 2016 1 commit
-
-
adamk authored
Move hole check logic from full-codegen into scope analysis, and store the "needs hole check" bit on VariableProxy. This makes it easy to re-use in any backend: it will be trivial to extend the use of this logic in, e.g., full-codegen variable stores. While changing the signatures of the variable loading/storing methods in Ignition, I took the liberty of replacing the verb "Visit" with "Build", since these are not part of AST visiting. BUG=v8:5460 Review-Url: https://chromiumcodereview.appspot.com/2411873004 Cr-Commit-Position: refs/heads/master@{#40479}
-
- 17 Oct, 2016 4 commits
-
-
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}
-
verwaest authored
BUG= Review-Url: https://codereview.chromium.org/2425633002 Cr-Commit-Position: refs/heads/master@{#40349}
-
verwaest authored
BUG=v8:5209 Review-Url: https://codereview.chromium.org/2423883002 Cr-Commit-Position: refs/heads/master@{#40343}
-
verwaest authored
BUG=v8:5424 Review-Url: https://codereview.chromium.org/2427503002 Cr-Commit-Position: refs/heads/master@{#40338}
-
- 13 Oct, 2016 2 commits
-
-
marja authored
It belongs there more logically. In addition, this is a pre-step needed for preparsing the parameters of a preparsed function. In addition, move the "subtract rest parameter from arity" logic from Parser to (Pre)?ParserFormalParameters. BUG=v8:5515 Review-Url: https://codereview.chromium.org/2414003002 Cr-Commit-Position: refs/heads/master@{#40258}
-
verwaest authored
Turn AllowsLazyParsingWithoutUnresolvedVariables into a whitelist stopping at the outer parsed context. Any context outer to what we're parsing already has proper context allocation, so we don't need to check those scopes. BUG=v8:5501 Review-Url: https://codereview.chromium.org/2417643003 Cr-Commit-Position: refs/heads/master@{#40256}
-
- 07 Oct, 2016 1 commit
-
-
jochen authored
For now keep the logic in compiler.cc and add a DCHECK that the scopes and compiler.cc agree. Use this knowledge to only created ScopeInfos for literals we'll actually compile. BUG=v8:5394,v8:5422 R=marja@chromium.org,verwaest@chromium.org Review-Url: https://codereview.chromium.org/2399833002 Cr-Commit-Position: refs/heads/master@{#40074}
-
- 06 Oct, 2016 1 commit
-
-
mstarzinger authored
Now that the scope chain is deserialized directly from the chain of {ScopeInfo} objects, it is no longer needed to provide a context. This makes the {AllowsLazyCompilationWithoutContext} predicate coincide with the more general {AllowsLazyCompilation}. Remove the former. R=jochen@chromium.org Review-Url: https://codereview.chromium.org/2399853002 Cr-Commit-Position: refs/heads/master@{#40042}
-
- 04 Oct, 2016 1 commit
-
-
marja authored
If an inner function only declares a variable but doesn't use it, Parser and PreParser produced different unresolved variables, and that confused the pessimistic context allocation. BUG=chromium:650969 Review-Url: https://codereview.chromium.org/2388183003 Cr-Commit-Position: refs/heads/master@{#39947}
-
- 29 Sep, 2016 1 commit
-
-
verwaest authored
BUG=chromium:651327 Review-Url: https://codereview.chromium.org/2380993003 Cr-Commit-Position: refs/heads/master@{#39864}
-
- 28 Sep, 2016 3 commits
-
-
verwaest authored
Previously we'd have a scope in the main zone, and another in the temp zone. Then we carefully copied back data to the main zone. This CL changes it so that the scope is just fixed up to only contain data from the main zone. That avoids additional copies and additional allocations; while not increasing the care that needs to be taken. This will also make it easier to abort preparsing while parsing using a temp zone. BUG= Committed: https://crrev.com/f41e7ebd62b32e861b6aa14ad8bfce3018d03c3c Review-Url: https://codereview.chromium.org/2368313002 Cr-Original-Commit-Position: refs/heads/master@{#39800} Cr-Commit-Position: refs/heads/master@{#39828}
-
verwaest authored
Revert of Don't use different function scopes when parsing with temp zones (patchset #11 id:200001 of https://codereview.chromium.org/2368313002/ ) Reason for revert: Revert due to asm.js slowdown Original issue's description: > Don't use different function scopes when parsing with temp zones > > Previously we'd have a scope in the main zone, and another in the temp zone. Then we carefully copied back data to the main zone. This CL changes it so that the scope is just fixed up to only contain data from the main zone. That avoids additional copies and additional allocations; while not increasing the care that needs to be taken. This will also make it easier to abort preparsing while parsing using a temp zone. > > BUG= > > Committed: https://crrev.com/f41e7ebd62b32e861b6aa14ad8bfce3018d03c3c > Cr-Commit-Position: refs/heads/master@{#39800} TBR=marja@chromium.org,adamk@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review-Url: https://codereview.chromium.org/2379533003 Cr-Commit-Position: refs/heads/master@{#39821}
-
verwaest authored
Previously we'd have a scope in the main zone, and another in the temp zone. Then we carefully copied back data to the main zone. This CL changes it so that the scope is just fixed up to only contain data from the main zone. That avoids additional copies and additional allocations; while not increasing the care that needs to be taken. This will also make it easier to abort preparsing while parsing using a temp zone. BUG= Review-Url: https://codereview.chromium.org/2368313002 Cr-Commit-Position: refs/heads/master@{#39800}
-
- 27 Sep, 2016 3 commits
-
-
verwaest authored
BUG= Review-Url: https://codereview.chromium.org/2372703004 Cr-Commit-Position: refs/heads/master@{#39769}
-
cbruni authored
Reland of Preparse functions in the scope that was created when parsing of the function was started (patchset #1 id:1 of https://codereview.chromium.org/2365393002/ ) Reason for revert: Stability thief found, relanding speculative reverts. Original issue's description: > Revert of Preparse functions in the scope that was created when parsing of the function was started (patchset #2 id:20001 of https://codereview.chromium.org/2370713003/ ) > > Reason for revert: > Needed for https://codereview.chromium.org/2373443003/ > > Original issue's description: > > Preparse functions in the scope that was created when parsing of the function was started > > > > This reduces the number of scopes for lazily parsed top-level functions from 3 to 1 > > > > BUG=v8:5209 > > > > Committed: https://crrev.com/9618d095903c604a032b33792c068f4a6169503c > > Cr-Commit-Position: refs/heads/master@{#39725} > > TBR=marja@chromium.org,verwaest@chromium.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=v8:5209 > > Committed: https://crrev.com/0cef7100da0b609403c9026fb7307192a898a390 > Cr-Commit-Position: refs/heads/master@{#39729} TBR=marja@chromium.org,verwaest@chromium.org,hablich@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5209 Review-Url: https://codereview.chromium.org/2377593002 Cr-Commit-Position: refs/heads/master@{#39756}
-
cbruni authored
Reland of Preparse inner functions (new try) (patchset #1 id:1 of https://codereview.chromium.org/2373443003/ ) Reason for revert: Stability thief found, relanding speculative reverts. Original issue's description: > Revert of Preparse inner functions (new try) (patchset #21 id:420001 of https://codereview.chromium.org/2352593002/ ) > > Reason for revert: > We currently have some stability issues on Canary. Let's reland this after we verified that we "fixed" Canary again. > > Original issue's description: > > Preparse inner functions (new try) > > > > This is an overly pessimistic approach where PreParser only keeps > > track of unresolved variables, but doesn't declare anything. This > > will result in context-allocating variables in the outer function > > unnecessarily, if the variable names clash with variable names > > used by the inner function (even if the variables are not the > > same). However, we have been unable to prove that this approach > > wouldn't be good enough for the practical purposes. > > > > Fixes after the previous try ( https://codereview.chromium.org/2322243002/ ): > > Keep the context-allocation decision stable when compiling fully eagerly. > > > > Tests which exercise this functionality: > > mjsunit/fixed-context-shapes-when-recompiling.js > > > > Design document (chromium): > > > > https://docs.google.com/a/chromium.org/document/d/1rRv5JJZ0JpOZAZN2CSUwZPFJiBAdRnTiSYhazseNHFg/edit?usp=sharing > > > > BUG= > > > > Committed: https://crrev.com/7c73cf32c60484cdf37c84f1d61b4640e87068d7 > > Cr-Commit-Position: refs/heads/master@{#39719} > > TBR=verwaest@chromium.org,adamk@chromium.org,marja@chromium.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG= > > Committed: https://crrev.com/1e6296b2a7cfc307fd9e722e619f42965da4a267 > Cr-Commit-Position: refs/heads/master@{#39730} TBR=verwaest@chromium.org,adamk@chromium.org,marja@chromium.org,hablich@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review-Url: https://codereview.chromium.org/2377513006 Cr-Commit-Position: refs/heads/master@{#39755}
-