commit | 8944d36fd57aa398a911c7f1e567baf6ddb14b24 | [log] [tgz] |
---|---|---|
author | zhengxing.li <zhengxing.li@intel.com> | Tue Feb 02 02:47:01 2016 |
committer | Commit bot <commit-bot@chromium.org> | Tue Feb 02 02:47:46 2016 |
tree | 48d5f1b9fa4ae3bd4da692b7144f102266f4699e | |
parent | 15da984326b184a3d60b4f437c081c4a25789822 [diff] |
X87: [builtins] Make Math.max and Math.min fast by default. port cb9b801069c432e745f0651cf00d65ef88cd7f06 (r33582) original commit message: The previous versions of Math.max and Math.min made it difficult to optimize those (that's why we already have custom code in Crankshaft), and due to lack of ideas what to do about the variable number of arguments, we will probably need to stick in special code in TurboFan as well; so inlining those builtins is off the table, hence there's no real advantage in having them around as "not quite JS" with extra work necessary in the optimizing compilers to still make those builtins somewhat fast in cases where we cannot inline them (also there's a tricky deopt loop in Crankshaft related to Math.min and Math.max, but that will be dealt with later). So to sum up: Instead of trying to make Math.max and Math.min semi-fast in the optimizing compilers with weird work-arounds support %_Arguments %_ArgumentsLength, we do provide the optimal code as native builtins instead and call it a day (which gives a nice performance boost on some benchmarks). BUG= Review URL: https://codereview.chromium.org/1659623003 Cr-Commit-Position: refs/heads/master@{#33652}
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://github.com/v8/v8/wiki
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/*
Please follow the instructions mentioned on the V8 wiki.