commit | 4b122b7504ab458faa4132c338809b40147751bf | [log] [tgz] |
---|---|---|
author | svenpanne <svenpanne@chromium.org> | Thu Apr 30 09:10:21 2015 |
committer | Commit bot <commit-bot@chromium.org> | Thu Apr 30 09:10:28 2015 |
tree | 413ba7b56c0ab23448f1ef88f34b42eb997a0320 | |
parent | ab25d39349d5a0ecbaeee4299e9d749fd77bbef1 [diff] |
Detect simple tail calls This CL contains the first steps towards tail call optimization: * Structurally detect tail calls during instruction selection, looking for special return/call combinations. * Added new architecture-specific instructions for tail calls which jump instead of call and take care of frame adjustment. * Moved some code around. Currently we restrict tail calls to callees which only use registers for arguments/return value and to call sites which are explicitly marked as being OK for tail calls. This excludes, among other things, call sites in sloppy JS functions and our IC machinery (both need in general to be able to access the caller's frame). All this is behind a flag --turbo-tail-calls, which is currently off by default, so it can easily be toggled. Review URL: https://codereview.chromium.org/1108563002 Cr-Commit-Position: refs/heads/master@{#28150}
V8 is Google's open source JavaScript engine.
V8 implements ECMAScript as specified in ECMA-262.
V8 is written in C++ and is used in Google Chrome, the open source browser from Google.
V8 can run standalone, or can be embedded into any C++ application.
V8 Project page: https://code.google.com/p/v8/
Checkout depot tools, and run
fetch v8
This will checkout V8 into the directory v8
and fetch all of its dependencies. To stay up to date, run
git pull origin gclient sync
For fetching all branches, add the following into your remote configuration in .git/config
:
fetch = +refs/branch-heads/*:refs/remotes/branch-heads/* fetch = +refs/tags/*:refs/tags/*