- 19 Dec, 2016 3 commits
-
-
cbruni authored
Drive-by-fix: Add AstNode::Print() and improve printing of CallRuntime Expression. BUG=v8:5749 Review-Url: https://codereview.chromium.org/2586933002 Cr-Commit-Position: refs/heads/master@{#41803}
-
machenbach authored
Revert of [crankshaft] Fix IsClassOfTest helper method (patchset #1 id:1 of https://codereview.chromium.org/2586933002/ ) Reason for revert: Breaks vtune: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20vtunejit/builds/15379 Original issue's description: > [crankshaft] Fix IsClassOfTest helper method > > Drive-by-fix: Add AstNode::Print() and improve printing of CallRuntime > Expression. > > BUG=v8:5749 > > Review-Url: https://codereview.chromium.org/2586933002 > Cr-Commit-Position: refs/heads/master@{#41792} > Committed: https://chromium.googlesource.com/v8/v8/+/d4493222b958877e51ebd67399d12a80ec848e30 TBR=bmeurer@chromium.org,cbruni@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5749 Review-Url: https://codereview.chromium.org/2587973002 Cr-Commit-Position: refs/heads/master@{#41795}
-
cbruni authored
Drive-by-fix: Add AstNode::Print() and improve printing of CallRuntime Expression. BUG=v8:5749 Review-Url: https://codereview.chromium.org/2586933002 Cr-Commit-Position: refs/heads/master@{#41792}
-
- 16 Dec, 2016 1 commit
-
-
mstarzinger authored
This introduces an explicit struct for the communication channel between the {ArrayLiteral} AST node and the corresponding runtime methods. Those methods take a pair of {ElementsKind} as well as an array (can either be a FixedArray or a FixedDoubleArray) of constant values. For bonus points it also reduces the size of the involved heap object by one word (i.e. length field of FixedArray not needed anymore). R=mvstanton@chromium.org Review-Url: https://codereview.chromium.org/2581683003 Cr-Commit-Position: refs/heads/master@{#41752}
-
- 15 Dec, 2016 1 commit
-
-
mstarzinger authored
This fixes a corner case where the {FastCloneShallowArrayStub} was used for literals that are backed by a double backing store and would exceed limits for new-space allocations on 32-bit architectures. The stub in question does not support such literals, callers must use the runtime. Note that this fix is for Ignition as well as FullCodeGenerator. R=rmcilroy@chromium.org TEST=mjsunit/regress/regress-crbug-672792 BUG=chromium:672792 Review-Url: https://codereview.chromium.org/2570843002 Cr-Commit-Position: refs/heads/master@{#41713}
-
- 21 Nov, 2016 1 commit
-
-
ishell authored
BUG=chromium:576312, v8:5561 Review-Url: https://codereview.chromium.org/2515233002 Cr-Commit-Position: refs/heads/master@{#41130}
-
- 14 Nov, 2016 3 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}
-
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}
-
- 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}
-
- 25 Oct, 2016 1 commit
-
-
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}
-
- 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}
-
- 18 Oct, 2016 1 commit
-
-
bmeurer authored
Consistently collect CallIC feedback in fullcodegen and Ignition, even for possibly direct eval calls, that were treated specially so far, for no apparent reason. With the upcoming SharedFunctionInfo based CallIC feedback, we might be able to even inline certain direct eval calls, if they manage to hit the eval cache. More importantly, this patch simplifies the collection and dealing with CallIC feedback (and as a side effect fixes an inconsistency with feedback for super constructor calls). R=mvstanton@chromium.org, mythria@chromium.org BUG=v8:2206,v8:4280,v8:5267 Review-Url: https://codereview.chromium.org/2426693002 Cr-Commit-Position: refs/heads/master@{#40397}
-
- 17 Oct, 2016 2 commits
-
-
verwaest authored
BUG=v8:5209 Review-Url: https://codereview.chromium.org/2428533002 Cr-Commit-Position: refs/heads/master@{#40366}
-
verwaest authored
BUG=v8:5209 Review-Url: https://codereview.chromium.org/2423883002 Cr-Commit-Position: refs/heads/master@{#40343}
-
- 13 Oct, 2016 1 commit
-
-
verwaest authored
BUG=v8:5501,chromium:655122 Review-Url: https://codereview.chromium.org/2419663005 Cr-Commit-Position: refs/heads/master@{#40247}
-
- 07 Oct, 2016 4 commits
-
-
jgruber authored
BUG= Committed: https://crrev.com/7db0ecdec3cf330766575cb7973b983f3f1e3020 Review-Url: https://codereview.chromium.org/2381843002 Cr-Original-Commit-Position: refs/heads/master@{#40080} Cr-Commit-Position: refs/heads/master@{#40087}
-
jgruber authored
This reverts commit 7db0ecde. Manual revert since automatic revert is too large for the web interface. BUG= TBR=bmeurer@chromium.org,mstarzinger@chromium.org,yangguo@chromium.org,ahaas@chromium.org NOPRESUBMIT=true NOTREECHECKS=true Review-Url: https://codereview.chromium.org/2396353002 Cr-Commit-Position: refs/heads/master@{#40082}
-
jgruber authored
BUG= Review-Url: https://codereview.chromium.org/2381843002 Cr-Commit-Position: refs/heads/master@{#40080}
-
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}
-
- 30 Sep, 2016 1 commit
-
-
leszeks authored
matching function, creates a hashmap the specialises the case of keys that simply check pointer equality. I measure an average ~1% improvement on Octane code-load. Review-Url: https://codereview.chromium.org/2369963002 Cr-Commit-Position: refs/heads/master@{#39920}
-
- 28 Sep, 2016 1 commit
-
-
adamk authored
As a side-effect, this lets us remove bit_field_2_ from FunctionLiteral. R=verwaest@chromium.org BUG=v8:5209 Review-Url: https://codereview.chromium.org/2369293003 Cr-Commit-Position: refs/heads/master@{#39799}
-
- 26 Sep, 2016 5 commits
-
-
bmeurer authored
Revert of [compiler] Properly guard the speculative optimizations for instanceof. (patchset #3 id:40001 of https://codereview.chromium.org/2370693002/ ) Reason for revert: Tanks EarleyBoyer. Original issue's description: > [compiler] Properly guard the speculative optimizations for instanceof. > > Add a general feedback slot for instanceof similar to what we already have > for for-in, which basically has a fast (indicated by the uninitialized > sentinel) and a slow (indicated by the megamorphic sentinel) mode. Now > we can only take the fast path when the feedback slot says it hasn't > seen any funky inputs and nothing funky appeared in the prototype chain. > In the TurboFan code we also deoptimize whenever we see a funky object > (i.e. a proxy or an object that requires access checks) in the prototype > chain (similar to what Crankshaft already did). > > Drive-by-fix: Also make Crankshaft respect the mode and therefore > address the deopt loop in Crankshaft around instanceof. > > We might want to introduce an InstanceOfIC mechanism at some point and > track the map of the right-hand side. > > BUG=v8:5267 > R=mvstanton@chromium.org > > Committed: https://crrev.com/a0484bc6116ebc2b855de87d862945e2ae07169b > Cr-Commit-Position: refs/heads/master@{#39718} TBR=mvstanton@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5267 Review-Url: https://codereview.chromium.org/2365223003 Cr-Commit-Position: refs/heads/master@{#39736}
-
hablich authored
Reland of VariableProxy: when cloning, don't even think about creating dangling references. (patchset #1 id:1 of https://codereview.chromium.org/2368303002/ ) Reason for revert: wrong CL Original issue's description: > Revert of VariableProxy: when cloning, don't even think about creating dangling references. (patchset #1 id:1 of https://codereview.chromium.org/2368253002/ ) > > Reason for revert: > Needed for https://codereview.chromium.org/2373443003/ > > Original issue's description: > > VariableProxy: when cloning, don't even think about creating dangling references. > > > > The code path for cloning resolved VariableProxys (into a different > > Zone) was never hit, but if it was, it would create a dangling > > reference, since the Variable would stay in the original Zone. > > > > Kudos to verwaest@ for finding this! > > > > R=verwaest@chromium.org > > BUG= > > > > Committed: https://crrev.com/fd429bdb9e70cb8c4f8a4bbef0806e008c60440c > > Cr-Commit-Position: refs/heads/master@{#39723} > > TBR=verwaest@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/8edf2905693a2b486a97a0547ec53bb552f7db15 > Cr-Commit-Position: refs/heads/master@{#39726} TBR=verwaest@chromium.org,marja@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/2366373002 Cr-Commit-Position: refs/heads/master@{#39728}
-
hablich authored
Revert of VariableProxy: when cloning, don't even think about creating dangling references. (patchset #1 id:1 of https://codereview.chromium.org/2368253002/ ) Reason for revert: Needed for https://codereview.chromium.org/2373443003/ Original issue's description: > VariableProxy: when cloning, don't even think about creating dangling references. > > The code path for cloning resolved VariableProxys (into a different > Zone) was never hit, but if it was, it would create a dangling > reference, since the Variable would stay in the original Zone. > > Kudos to verwaest@ for finding this! > > R=verwaest@chromium.org > BUG= > > Committed: https://crrev.com/fd429bdb9e70cb8c4f8a4bbef0806e008c60440c > Cr-Commit-Position: refs/heads/master@{#39723} TBR=verwaest@chromium.org,marja@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/2368303002 Cr-Commit-Position: refs/heads/master@{#39726}
-
marja authored
The code path for cloning resolved VariableProxys (into a different Zone) was never hit, but if it was, it would create a dangling reference, since the Variable would stay in the original Zone. Kudos to verwaest@ for finding this! R=verwaest@chromium.org BUG= Review-Url: https://codereview.chromium.org/2368253002 Cr-Commit-Position: refs/heads/master@{#39723}
-
bmeurer authored
Add a general feedback slot for instanceof similar to what we already have for for-in, which basically has a fast (indicated by the uninitialized sentinel) and a slow (indicated by the megamorphic sentinel) mode. Now we can only take the fast path when the feedback slot says it hasn't seen any funky inputs and nothing funky appeared in the prototype chain. In the TurboFan code we also deoptimize whenever we see a funky object (i.e. a proxy or an object that requires access checks) in the prototype chain (similar to what Crankshaft already did). Drive-by-fix: Also make Crankshaft respect the mode and therefore address the deopt loop in Crankshaft around instanceof. We might want to introduce an InstanceOfIC mechanism at some point and track the map of the right-hand side. BUG=v8:5267 R=mvstanton@chromium.org Review-Url: https://codereview.chromium.org/2370693002 Cr-Commit-Position: refs/heads/master@{#39718}
-
- 22 Sep, 2016 1 commit
-
-
leszeks authored
This reverts commit b42ecda5. That commit introduced a allocator field to hashmap, which indirectly added a field to Scopes, where the field, effectively storing a Zone, is unnecessary because the Zone can be accessed in other ways. Review-Url: https://codereview.chromium.org/2351393003 Cr-Commit-Position: refs/heads/master@{#39623}
-
- 20 Sep, 2016 2 commits
-
-
mvstanton authored
Full code uses patching ICs for this feedback, and the interpreter uses the type feedback vector. It's a good idea to code the vector slots appropriately as ICs so that the runtime profiler can better gauge if the function is ready for tiering up from Ignition to TurboFan. As is, the feedback is stored in "general" slots which can't be characterized by the runtime profiler into feedback states. This CL addresses that problem. Note that it's also important to carefully exclude these slots from the profiler's consideration when determining if you want to optimize from Full code. BUG= Review-Url: https://codereview.chromium.org/2342853002 Cr-Commit-Position: refs/heads/master@{#39555}
-
leszeks authored
Moves the hashmap's allocator from being a parameter in the various hashmap functions, to being a field in the hashmap itself. This 1. Protects against incorrectly passed allocators, and 2. Cleans up the API so that e.g. callers don't have to store their allocator This is part of a wider set of changes discussed in: https://groups.google.com/forum/#!topic/v8-dev/QLsC0XPYLeM Review-Url: https://codereview.chromium.org/2345233003 Cr-Commit-Position: refs/heads/master@{#39538}
-
- 19 Sep, 2016 1 commit
-
-
heimbuef authored
BUG= Review-Url: https://codereview.chromium.org/2266493002 Cr-Commit-Position: refs/heads/master@{#39502}
-
- 09 Sep, 2016 2 commits
-
-
adamk authored
The array spread operator is now handled by desugaring in the parser. Review-Url: https://codereview.chromium.org/2324013002 Cr-Commit-Position: refs/heads/master@{#39317}
-
marja authored
TBR=bmeurer@chromium.org BUG=v8:5294 Review-Url: https://codereview.chromium.org/2324783002 Cr-Commit-Position: refs/heads/master@{#39304}
-
- 06 Sep, 2016 1 commit
-
-
bakkot authored
This introduces ClassLiteralProperty and a supertype LiteralProperty of it and ObjectLiteralProperty. It also splits the parsing of the two. This substiantially clarifies some logic, especially as classes continue to evolve, and is also about a 2% performance improvement to parsing either kind of property (since no work is wasted on logic only necessary for the other kind). Also, it saves a word on ObjectLiteralProperties. Review-Url: https://codereview.chromium.org/2302643002 Cr-Commit-Position: refs/heads/master@{#39219}
-
- 02 Sep, 2016 2 commits
-
-
adamk authored
This makes for slightly faster rebuilds when touching parser-base.h (which changes frequently!). Also takes care of an old TODO, moving CompileTimeValue into its own file under ast/, where it properly belongs. BUG=v8:5294 Review-Url: https://codereview.chromium.org/2305883002 Cr-Commit-Position: refs/heads/master@{#39141}
-
mvstanton authored
Our Type class has a semantic and representational dimension. Much code in src/ast, Crankshaft and Turbofan is based on it. Going forward in Turbofan we'd like to remove representational information entirely. To that end, new type AstType has been created to preserve existing behavior for the benefit of Crankshaft and the AST. BUG= Review-Url: https://codereview.chromium.org/2302283002 Cr-Commit-Position: refs/heads/master@{#39135}
-