- 28 Nov, 2016 1 commit
-
-
bmeurer authored
This code is no longer used by full-codegen since all functions which use new.target, rest parameters or the internal this function binding now grow through Ignition first, and never tier up to fullcodegen. BUG=v8:5657 R=rmcilroy@chromium.org Review-Url: https://codereview.chromium.org/2528293002 Cr-Commit-Position: refs/heads/master@{#41298}
-
- 25 Nov, 2016 2 commits
-
-
rmcilroy authored
This code is no longer used in full-codegen or ast-graph-builder since all functions which have class literals go through Ignition first. BUG=v8:5657 Review-Url: https://codereview.chromium.org/2534463002 Cr-Commit-Position: refs/heads/master@{#41282}
-
mstarzinger authored
This removes support for try-catch as well as try-finally constructs from the {FullCodeGenerator}. Consequently optimized code containing such constructs must use the {BytecodeGraphBuilder} and can no longer use the {AstGraphBuilder} for graph building. R=jarin@chromium.org BUG=v8:5657 Review-Url: https://codereview.chromium.org/2521233002 Cr-Commit-Position: refs/heads/master@{#41279}
-
- 24 Nov, 2016 1 commit
-
-
rmcilroy authored
This code is no longer used by full-codegen since all functions which use with statments, call eval or have lookup variable access now go through Ignition first. BUG=v8:5657 Review-Url: https://codereview.chromium.org/2514393002 Cr-Commit-Position: refs/heads/master@{#41276}
-
- 22 Nov, 2016 1 commit
-
-
neis authored
TBR=littledan@chromium.org BUG= Review-Url: https://codereview.chromium.org/2517143003 Cr-Commit-Position: refs/heads/master@{#41180}
-
- 21 Nov, 2016 1 commit
-
-
mstarzinger authored
This removes the deprecated generator support for resumable functions from {FullCodeGenerator}. The existing {AstNumbering} heuristic already triggers Ignition for most resumable functions, with this change we make said heuristic a hard choice and remove the deprecated code. This also has the advantage that any suspended {JSGeneratorObject} instance on the heap is guaranteed to have code based on a bytecode array. R=bmeurer@chromium.org Review-Url: https://codereview.chromium.org/2504223002 Cr-Commit-Position: refs/heads/master@{#41135}
-
- 18 Nov, 2016 1 commit
-
-
ishell authored
This is a next step towards removing names table from type feedback metadata. BUG=chromium:576312, v8:5561 Review-Url: https://codereview.chromium.org/2507143003 Cr-Commit-Position: refs/heads/master@{#41106}
-
- 10 Nov, 2016 1 commit
-
-
mythria authored
FullCodeGen does not include CallICs in the total ic count. Fix it by making calls to CallIC to go through CallIC function, which keeps track of the total number of ICs. BUG= Review-Url: https://codereview.chromium.org/2451703002 Cr-Commit-Position: refs/heads/master@{#40889}
-
- 02 Nov, 2016 1 commit
-
-
bmeurer authored
All vector ICs use the TypeFeedbackVector::ComputeCounts method now, while the remaining patching ICs still use the traditional way of counting on the TypeFeedbackInfo hanging off the fullcodegen code object. This fixes the problem that counts were sometimes off. Drive-by-fix: Move FullCodeGenerator::CallIC to fullcodegen.cc. R=yangguo@chromium.org Review-Url: https://codereview.chromium.org/2472653002 Cr-Commit-Position: refs/heads/master@{#40690}
-
- 24 Oct, 2016 2 commits
-
-
rmcilroy authored
CL https://codereview.chromium.org/2177273002 changed FastNewFunctionContextStub to take a number of slots parameter and in-doing so removed the maximum slot count for FastNewFunctionContextStub. This made it possible to create a closure which is larger than kMaxRegularHeapObjectSize and so can't be allocated by FastNewFunctionContextStub. Reintroduce FastNewFunctionContextStub::kMaxSlots (but make the limit much larger) to ensure we call the runtime for contexts which need to be allocated in the LO space. BUG=chromium:655573 Review-Url: https://codereview.chromium.org/2445703002 Cr-Commit-Position: refs/heads/master@{#40541}
-
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 2 commits
-
-
bmeurer authored
These intrinsics are unused now, and so we can drop all the code in fullcodegen and Crankshaft that deals with those. TurboFan and Ignition never tried to optimize those. R=mstarzinger@chromium.org BUG=v8:5049 Review-Url: https://codereview.chromium.org/2427673004 Cr-Commit-Position: refs/heads/master@{#40401}
-
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}
-
- 12 Oct, 2016 1 commit
-
-
bmeurer authored
This is the next step to unify the Call/Construct feedback collection and prepare it to be able to collect SharedFunctionInfo feedback. This also reduces the CallICStub overhead quite a bit since we only need one stub per mode (and tail call mode), not also one per call arity. R=mvstanton@chromium.org BUG=v8:2206 NOTRY=true Review-Url: https://codereview.chromium.org/2412453005 Cr-Commit-Position: refs/heads/master@{#40206}
-
- 11 Oct, 2016 1 commit
-
-
bmeurer authored
In fullcodegen we used to count CallICs as patching ICs, and thus the heuristics are currently off by the number of calls in a code object. R=mvstanton@chromium.org Review-Url: https://codereview.chromium.org/2408103002 Cr-Commit-Position: refs/heads/master@{#40163}
-
- 07 Oct, 2016 3 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}
-
- 06 Oct, 2016 1 commit
-
-
tebbi authored
BUG=v8:5431 Review-Url: https://codereview.chromium.org/2372113004 Cr-Commit-Position: refs/heads/master@{#40051}
-
- 28 Sep, 2016 1 commit
-
-
bmeurer authored
As of https://codereview.chromium.org/2348493003 there are no users of this intrinsic left in the code, and we don't want to have any new users of it. The runtime function remains as it serves as a fallback for the optimized code (Crankshaft code actually). BUG=v8:5049 R=mstarzinger@chromium.org Review-Url: https://codereview.chromium.org/2378693002 Cr-Commit-Position: refs/heads/master@{#39822}
-
- 26 Sep, 2016 2 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}
-
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}
-
- 24 Sep, 2016 1 commit
-
-
ishell authored
BUG=v8:5408 Review-Url: https://codereview.chromium.org/2367693002 Cr-Commit-Position: refs/heads/master@{#39707}
-
- 23 Sep, 2016 3 commits
-
-
machenbach authored
Reland of [fullcodegen] Refactor code that calls store ICs. (patchset #1 id:1 of https://codereview.chromium.org/2363123002/ ) Reason for revert: Didn't help Original issue's description: > Revert of [fullcodegen] Refactor code that calls store ICs. (patchset #1 id:20001 of https://codereview.chromium.org/2363513003/ ) > > Reason for revert: > race suspect: > https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/11893 > > Original issue's description: > > [fullcodegen] Refactor code that calls store ICs. > > > > Make FCG::CallStoreIC() load slot and name and make FCG::CallKeyedStoreIC() load > > slot according to store IC calling convention (StoreDescriptor). > > > > BUG=v8:5407 > > > > Committed: https://crrev.com/12918397b4af7b2bede8b29e1e9b1940d5d5ad3b > > Cr-Commit-Position: refs/heads/master@{#39679} > > TBR=mvstanton@chromium.org,ishell@chromium.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=v8:5407 > > Committed: https://crrev.com/51fa56d1b8e9e320f7442682415e9df50ab19591 > Cr-Commit-Position: refs/heads/master@{#39682} TBR=mvstanton@chromium.org,ishell@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5407 Review-Url: https://codereview.chromium.org/2361393005 Cr-Commit-Position: refs/heads/master@{#39683}
-
machenbach authored
Revert of [fullcodegen] Refactor code that calls store ICs. (patchset #1 id:20001 of https://codereview.chromium.org/2363513003/ ) Reason for revert: race suspect: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/11893 Original issue's description: > [fullcodegen] Refactor code that calls store ICs. > > Make FCG::CallStoreIC() load slot and name and make FCG::CallKeyedStoreIC() load > slot according to store IC calling convention (StoreDescriptor). > > BUG=v8:5407 > > Committed: https://crrev.com/12918397b4af7b2bede8b29e1e9b1940d5d5ad3b > Cr-Commit-Position: refs/heads/master@{#39679} TBR=mvstanton@chromium.org,ishell@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5407 Review-Url: https://codereview.chromium.org/2363123002 Cr-Commit-Position: refs/heads/master@{#39682}
-
ishell authored
Make FCG::CallStoreIC() load slot and name and make FCG::CallKeyedStoreIC() load slot according to store IC calling convention (StoreDescriptor). BUG=v8:5407 Review-Url: https://codereview.chromium.org/2363513003 Cr-Commit-Position: refs/heads/master@{#39679}
-
- 20 Sep, 2016 1 commit
-
-
klaasb authored
Refactors CodeStubAssembler::AllocateJSArray to share code. BUG=chromium:608675 Review-Url: https://codereview.chromium.org/2304573004 Cr-Commit-Position: refs/heads/master@{#39550}
-
- 16 Sep, 2016 1 commit
-
-
bakkot authored
This is one part of a WIP implementation of the stage-2 proposal to add fields to classes: https://github.com/tc39/proposal-class-public-fields See design doc: https://docs.google.com/document/d/1WRtNm3ZLNJT1WVr8aq4RJuByYgfuAFAhj20LwTW6JVE/ This adds support for parsing fields in classes, including infrastructure. In particular, it adds: * Two booleans on function literal AST nodes * Two compiler hints on SharedFunctionInfos representing said bools * A new type of ClassLiteralProperty, FIELD * Parser support for the syntax * Syntax tests * A flag to enable it. Currently the fields are parsed and then droppped. Subsequent patches will add semantics, mostly by desugaring in the parser and the remainder in the non-crankshaft backends. BUG=v8:5367 Review-Url: https://codereview.chromium.org/2315733003 Cr-Commit-Position: refs/heads/master@{#39459}
-
- 14 Sep, 2016 1 commit
-
-
bmeurer authored
Add a notion of "invocation count" to the baseline compilers, which increment a special slot in the TypeFeedbackVector for each invocation of a given function (the optimized code doesn't currently collect this information). Use this invocation count to relativize the call counts on the call sites within the function, so that the inlining heuristic has a view of relative importance of a call site rather than some absolute numbers with unclear meaning for the current function. Also apply the call site frequency as a factor to all frequencies in the inlinee by passing this to the graph builders so that the importance of a call site in an inlinee is relative to the topmost optimized function. Note that all functions that neither have literals nor need type feedback slots will share a single invocation count cell in the canonical empty type feedback vector, so their invocation count is meaningless, but that doesn't matter since we only use the invocation count to relativize call counts within the function, which we only have if we have at least one type feedback vector (the CallIC slot). See the design document for additional details on this change: https://docs.google.com/document/d/1VoYBhpDhJC4VlqMXCKvae-8IGuheBGxy32EOgC2LnT8 BUG=v8:5267,v8:5372 R=mvstanton@chromium.org,rmcilroy@chromium.org,mstarzinger@chromium.org Review-Url: https://codereview.chromium.org/2337123003 Cr-Commit-Position: refs/heads/master@{#39410}
-
- 09 Sep, 2016 1 commit
-
-
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}
-
- 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}
-
- 05 Sep, 2016 1 commit
-
-
ishell authored
Review-Url: https://codereview.chromium.org/2316453002 Cr-Commit-Position: refs/heads/master@{#39178}
-
- 02 Sep, 2016 1 commit
-
-
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}
-
- 01 Sep, 2016 1 commit
-
-
ishell authored
Review-Url: https://codereview.chromium.org/2299973002 Cr-Commit-Position: refs/heads/master@{#39078}
-
- 31 Aug, 2016 2 commits
-
-
adamk authored
The only remaining use of this VariableMode is for the names of sloppy named function expressions. This patch instead uses CONST for such bindings (just as we do in strict mode) and instead marks those Variables specially. During code generation a new helper method, Variable::throw_on_const_assignment(), is called to decide whether to throw or silently ignore the assignment. Review-Url: https://codereview.chromium.org/2233673003 Cr-Commit-Position: refs/heads/master@{#39052}
-
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}
-
- 30 Aug, 2016 1 commit
-
-
jochen authored
Instead of creating them on demand all over the place. I plan to link ScopeInfos together, and having one place where all ScopeInfos are created will make this easier. R=verwaest@chromium.org,adamk@chromium.org TBR=mstarzinger@chromium.org BUG=v8:5215 Review-Url: https://codereview.chromium.org/2281073002 Cr-Commit-Position: refs/heads/master@{#39003}
-
- 29 Aug, 2016 2 commits
-
-
verwaest authored
This additionally gets rid of old approach to global shortcuts. BUG=v8:5209 Review-Url: https://codereview.chromium.org/2287173002 Cr-Commit-Position: refs/heads/master@{#38980}
-
bmeurer authored
These JavaScript operators were special hacks to ensure that we always operate on Smis for the magic for-in index variable, but this never really worked in the OSR case, because the OsrValue for the index variable didn't have the proper information (that we have for the JSForInPrepare in the non-OSR case). Now that we have loop induction variable analysis and binary operation hints, we can just use JSLessThan and JSAdd instead with appropriate Smi hints, which handle the OSR case by inserting Smi checks (that are always true). Thanks to OSR deconstruction and loop peeling these Smi checks will be hoisted so they don't hurt the OSR case too much. Drive-by-change: Rename the ForInDone bytecode to ForInContinue, since we have to lower it to JSLessThan to get the loop induction variable goodness. R=epertoso@chromium.org BUG=v8:5267 Review-Url: https://codereview.chromium.org/2289613002 Cr-Commit-Position: refs/heads/master@{#38968}
-