- 22 Nov, 2016 1 commit
-
-
marja authored
... but be less pessimistic about context allocation (see below). We might have just (pessimistically) context-allocated a variable based on references coming from an inner function, but after that we still need to set maybe_assigned (pessimistically). This makes test-parsing/InnerAssignment pass with FLAG_lazy_inner_functions. This was undetected until now because we didn't have lazy parsing enabled for small scripts. Less pessimistic approach: now that inner functions laziness decisions are stable (if we have once compiled a piece of code with lazy inner functions, we never compile the same code with eager inner functions), we don't need to be as pessimistic with context allocation as before. BUG=v8:5501 Review-Url: https://codereview.chromium.org/2521513004 Cr-Commit-Position: refs/heads/master@{#41183}
-
- 21 Nov, 2016 3 commits
-
-
marja authored
BUG= Review-Url: https://codereview.chromium.org/2517993002 Cr-Commit-Position: refs/heads/master@{#41145}
-
mstarzinger authored
By now the compilation pipeline is flexible enough to run module tests against all variants, we should no longer choose unsupported compilers for modules. It also fixes the predicate checking for functions being "resumable" in the {AstNumberingVisitor} heuristic. R=neis@chromium.org BUG=v8:1569 Review-Url: https://codereview.chromium.org/2517143002 Cr-Commit-Position: refs/heads/master@{#41144}
-
ishell authored
BUG=chromium:576312, v8:5561 Review-Url: https://codereview.chromium.org/2515233002 Cr-Commit-Position: refs/heads/master@{#41130}
-
- 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}
-
- 17 Nov, 2016 2 commits
-
-
neis authored
There's no need to return anything. Also add a DCHECK to make sure that we never mark a variable proxy as assigned that is already resolved (to avoid potential inconsistency with the variable's maybe_assigned status). R=littledan@chromium.org CC=mstarzinger@chromium.org BUG= Review-Url: https://codereview.chromium.org/2504613002 Cr-Commit-Position: refs/heads/master@{#41072}
-
yangguo authored
This method is a slight misnomer. What we actually want to know is whether the function was defined in a user-provided script. Also remove redundant Script::hide_source flag. R=bmeurer@chromium.org, ulan@chromium.org Review-Url: https://codereview.chromium.org/2505853003 Cr-Commit-Position: refs/heads/master@{#41065}
-
- 16 Nov, 2016 2 commits
-
-
machenbach authored
Revert of Refactor SharedFunctionInfo::IsBuiltin. (patchset #1 id:1 of https://codereview.chromium.org/2505853003/ ) Reason for revert: Breaks layout tests: https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/11394 Original issue's description: > Refactor SharedFunctionInfo::IsBuiltin. > > This method is a slight misnomer. What we actually want to know is > whether the function was defined in a user-provided script. > > Also remove redundant Script::hide_source flag. > > R=bmeurer@chromium.org, ulan@chromium.org TBR=bmeurer@chromium.org,ulan@chromium.org,yangguo@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/2512463002 Cr-Commit-Position: refs/heads/master@{#41050}
-
yangguo authored
This method is a slight misnomer. What we actually want to know is whether the function was defined in a user-provided script. Also remove redundant Script::hide_source flag. R=bmeurer@chromium.org, ulan@chromium.org Review-Url: https://codereview.chromium.org/2505853003 Cr-Commit-Position: refs/heads/master@{#41036}
-
- 15 Nov, 2016 1 commit
-
-
mstarzinger authored
This reverses the printing scheme for the flag in question to make it print the "positive" analysis results (i.e. variable never assigned) instead of the "negative" results (i.e. variable maybe assigned). This helps to spot false-positives which are much more dangerous in practice compared to missed optimization opportunities. R=neis@chromium.org Review-Url: https://codereview.chromium.org/2498353002 Cr-Commit-Position: refs/heads/master@{#40993}
-
- 14 Nov, 2016 4 commits
-
-
rmcilroy authored
This removes the POSSIBLY_EVAL_CALL call type, and instead uses OTHER_CALL or WITH_CALL to decide whether to do the special LOOKUP_SLOT_CALL runtime call to find the callee and possibly update the receiver with the with-object. This means that eval calls out of 'with' blocks can now just do a normal LdaLookupGlobalSlot operation, which can check the context chain for eval extentions and fast-path the lookup if none exist. BUG=661556 Review-Url: https://codereview.chromium.org/2487483004 Cr-Commit-Position: refs/heads/master@{#40965}
-
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}
-
verwaest authored
This replaces LOOKUP_SLOT_CALL with WITH_CALL, and relies on regular lookup-slot handling in variable load to support other lookup slots (variables resolved in the context of sloppy eval). This allows optimizations for such variable loads to kick in for calls as well. We only need special handling for function calls in the context of with, since it changes the receiver of the call from undefined/global to the with-object. This currently doesn't yet make it work for the direct eval call itself, since the POSSIBLY_EVAL_CALL flag is also used to deal with direct eval later. BUG= Review-Url: https://codereview.chromium.org/2480253006 Cr-Commit-Position: refs/heads/master@{#40962}
-
yangguo authored
We are removing use of the debugger context. When the debugger triggers compilation, we may not have a context from which to create a JSArray. R=ishell@chromium.org BUG=chromium:664577 Review-Url: https://codereview.chromium.org/2479123002 Cr-Commit-Position: refs/heads/master@{#40956}
-
- 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}
-
- 10 Nov, 2016 3 commits
-
-
yangguo authored
Revert of Compiling an array literal should be context-independent. (patchset #5 id:80001 of https://codereview.chromium.org/2479123002/ ) Reason for revert: speculative revert to fix https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/9646/steps/Mjsunit%20%28flakes%29/logs/debug-scopes Original issue's description: > Compiling an array literal should be context-independent. > > We are removing use of the debugger context. When the debugger triggers > compilation, we may not have a context from which to create a JSArray. > > R=ishell@chromium.org TBR=ishell@chromium.org,verwaest@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/2481363009 Cr-Commit-Position: refs/heads/master@{#40906}
-
ulan authored
BUG=v8:5614 Review-Url: https://codereview.chromium.org/2493553002 Cr-Commit-Position: refs/heads/master@{#40892}
-
yangguo authored
We are removing use of the debugger context. When the debugger triggers compilation, we may not have a context from which to create a JSArray. R=ishell@chromium.org Review-Url: https://codereview.chromium.org/2479123002 Cr-Commit-Position: refs/heads/master@{#40884}
-
- 09 Nov, 2016 2 commits
-
-
heimbuef authored
With the very same SMIs making up a big chunk of the parser zone (especially for asm.js) it makes sense to cache the AstValues for them. This is not ideal yet, but already saves hundreds (sic!) MBs of memory for Unity games. Review-Url: https://codereview.chromium.org/2485423002 Cr-Commit-Position: refs/heads/master@{#40866}
-
kozyatinskiy authored
Currently function like "() => 239" contains offset 3 as begin of function and 8 as end of function. This CL changes this to 6 and 9 respectively. BUG=chromium:566801 R=yangguo@chromium.org,dgozman@chromium.org TBR=adamk@chromium.org CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel Review-Url: https://codereview.chromium.org/2488493003 Cr-Commit-Position: refs/heads/master@{#40864}
-
- 08 Nov, 2016 2 commits
-
-
jarin authored
We really should deopt before the for-in index increment. BUG=chromium:662904 Review-Url: https://codereview.chromium.org/2476423003 Cr-Commit-Position: refs/heads/master@{#40828}
-
neis authored
Also add a primitive mjsunit test that uses such a function optimized by Turbofan. R=mstarzinger@chromium.org CC=adamk@chromium.org BUG=v8:1569 Review-Url: https://codereview.chromium.org/2472143002 Cr-Commit-Position: refs/heads/master@{#40826}
-
- 07 Nov, 2016 2 commits
-
-
neis authored
This makes use of the newly introduced cell indices to speed up variable accesses. Imports and local exports are now directly stored in (separate) arrays. In the future, we may merge the two arrays into a single one, or even into the module context. This CL also replaces the LoadImport and LoadExport runtime functions with a single LoadVariable taking a variable index as argument (rather than a name). BUG=v8:1569 Review-Url: https://codereview.chromium.org/2465283004 Cr-Commit-Position: refs/heads/master@{#40808}
-
neis authored
R=adamk@chromium.org BUG=v8:1569 Review-Url: https://codereview.chromium.org/2473993002 Cr-Commit-Position: refs/heads/master@{#40795}
-
- 04 Nov, 2016 3 commits
-
-
verwaest authored
Parameters of a lazily parsed function used to be parsed eagerly, and parameter handling was split between Parser::ParseFunctionLiteral and ParseEagerFunctionBody, leading to inconsistencies. After this CL, we preparse (lazy parse) the parameters of lazily parsed functions. (For arrow functions, we cannot do that ofc.) This is needed for later features (PreParser with scope analysis). -- CL adapted from marja's https://codereview.chromium.org/2411793003/ BUG= Review-Url: https://codereview.chromium.org/2472063002 Cr-Commit-Position: refs/heads/master@{#40771}
-
neis authored
It always has the same number of slots. R=adamk@chromium.org TBR=bmeurer@chromium.org BUG=v8:1569 Review-Url: https://codereview.chromium.org/2460353002 Cr-Commit-Position: refs/heads/master@{#40754}
-
neis authored
Instead of having a MODULE variable's index be 0 or 1, let it be the index of its cell. In this CL, we assign the indices but we continue to only use them to distinguish imports from exports. Actually using them to directly access the cells will be done in a later CL. R=adamk@chromium.org BUG=v8:1569 Review-Url: https://codereview.chromium.org/2460233003 Cr-Commit-Position: refs/heads/master@{#40752}
-
- 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}
-
- 28 Oct, 2016 1 commit
-
-
mstarzinger authored
This flag is on by default for now. Whenever heuristics in the compiler pipeline decide to use Ignition+TurboFan, then {BytecodeGraphBuilder} is active. Removing the flag reduces maintenance overhead. R=mvstanton@chromium.org Review-Url: https://codereview.chromium.org/2437103002 Cr-Commit-Position: refs/heads/master@{#40639}
-
- 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}
-
- 26 Oct, 2016 3 commits
-
-
neis authored
For instance, when an import cannot be resolved, actually point at the corresponding import statement. BUG=v8:1569 Review-Url: https://codereview.chromium.org/2451153002 Cr-Commit-Position: refs/heads/master@{#40594}
-
neis authored
R=adamk@chromium.org BUG= Review-Url: https://codereview.chromium.org/2452543003 Cr-Commit-Position: refs/heads/master@{#40584}
-
verwaest authored
BUG= Review-Url: https://codereview.chromium.org/2449223002 Cr-Commit-Position: refs/heads/master@{#40581}
-
- 25 Oct, 2016 5 commits
-
-
neis authored
Setting variables is not yet implemented. R=adamk@chromium.org BUG=v8:1569 Review-Url: https://codereview.chromium.org/2445683002 Cr-Commit-Position: refs/heads/master@{#40566}
-
machenbach authored
Revert of [modules] Add partial support for debug-scopes. (patchset #1 id:1 of https://codereview.chromium.org/2445683002/ ) Reason for revert: Breaks https://build.chromium.org/p/client.v8/builders/V8%20Mac%20GC%20Stress/builds/9349 Original issue's description: > [modules] Add partial support for debug-scopes. > > Setting variables is not yet implemented.. > > R=adamk@chromium.org > BUG=v8:1569 TBR=adamk@chromium.org,yangguo@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:1569 Review-Url: https://codereview.chromium.org/2449883002 Cr-Commit-Position: refs/heads/master@{#40564}
-
verwaest authored
BUG= Review-Url: https://codereview.chromium.org/2446993002 Cr-Commit-Position: refs/heads/master@{#40561}
-
neis authored
Setting variables is not yet implemented.. R=adamk@chromium.org BUG=v8:1569 Review-Url: https://codereview.chromium.org/2445683002 Cr-Commit-Position: refs/heads/master@{#40559}
-
verwaest authored
BUG= Review-Url: https://codereview.chromium.org/2445993002 Cr-Commit-Position: refs/heads/master@{#40548}
-
- 24 Oct, 2016 1 commit
-
-
adamk authored
Loads already used source position elimination to avoid unnecessary hole checks, but for reasons unknown stores did not. This CL corrects that, making full-codegen's hole elimination equivalent to ignition's. Also introduced a HoleCheckMode enum class to avoid more bool flags and updated VariableProxy and BytecodeGenerator appropriately. Review-Url: https://codereview.chromium.org/2441543005 Cr-Commit-Position: refs/heads/master@{#40522}
-