Go to file
svenpanne@chromium.org b17d131779 AST nodes have at most one bailout/typefeedback ID now, saving lots of memory.
This is basically https://codereview.chromium.org/569573002/ done right:

During construction, each node type tells its parent how many IDs it
needs in addition to the parent's ones. This is done all the way up in
the class hierarchy until a node's parent doesn't need any ID. At that
point we know how many IDs in summary are needed, and we reserve the
whole range at once, saving only the base ID of that range. All IDs
are now calculated via simple offsets to that base ID. To all
performaniacs: The C++ compiler simplifies the constant calculation to
a simple load and the addition of a single constant.

Note that the actual code is much simpler than all that prose above. :-)
It's basically how compilers for OO languages figure out vtable entries.

We still have lots of holes due to padding in the AST nodes, but this
will be addressed in a separate CL.

BUG=chromium:417697
LOG=y
R=mvstanton@chromium.org

Review URL: https://codereview.chromium.org/643633003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24524 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-10 10:52:31 +00:00
benchmarks Revert "Refactoring: Make gtest testsuite the default." 2014-09-02 09:17:26 +00:00
build MIPS: Improve runtime detection and compatibility wrt arch. revisions. 2014-10-09 09:39:23 +00:00
include Remove default NOP implementation of MonotonicallyIncreasingTime. 2014-10-09 10:44:30 +00:00
samples Reland 24052 - Require V8 to be explicitly initialized before an Isolate is created 2014-09-19 08:01:35 +00:00
src AST nodes have at most one bailout/typefeedback ID now, saving lots of memory. 2014-10-10 10:52:31 +00:00
test Keyed loads from super with numeric keys. 2014-10-10 10:40:29 +00:00
testing Add C++11 compatible base::hash function object. 2014-10-06 12:27:24 +00:00
tools Allow identifier code points from supplementary multilingual planes. 2014-10-10 07:13:46 +00:00
.clang-format Change clang-format config to allow for two empty lines between functions 2013-12-03 10:39:21 +00:00
.DEPS.git Add android tools to v8's deps. 2014-08-28 11:09:46 +00:00
.gitignore Update .gitignore with test/test262-es6/data. 2014-10-10 08:48:39 +00:00
AUTHORS Convert obj ToObject in Object.keys() 2014-10-09 13:19:02 +00:00
BUILD.gn Allow identifier code points from supplementary multilingual planes. 2014-10-10 07:13:46 +00:00
ChangeLog Sync change log file with trunk. 2014-05-19 15:29:29 +00:00
codereview.settings Add PROJECT to v8 2014-06-23 15:33:19 +00:00
DEPS Add android tools to v8's deps. 2014-08-28 11:09:46 +00:00
LICENSE Update LICENSE date. 2014-02-18 10:50:22 +00:00
LICENSE.strongtalk Add LICENSE.v8, LICENSE.strongtalk and LICENSE.valgrind to the v8 2011-02-03 07:10:06 +00:00
LICENSE.v8 Add LICENSE.v8, LICENSE.strongtalk and LICENSE.valgrind to the v8 2011-02-03 07:10:06 +00:00
LICENSE.valgrind Add LICENSE.v8, LICENSE.strongtalk and LICENSE.valgrind to the v8 2011-02-03 07:10:06 +00:00
Makefile Make asan and lsan make flags work like on the bots. 2014-10-06 15:21:37 +00:00
Makefile.android Update toolchain for Android mipsel, ia32, x87. 2014-08-19 11:20:42 +00:00
Makefile.nacl Use the pnacl-clang toolchain for (P)NaCL builds 2014-10-06 08:10:50 +00:00
OWNERS Add vogelheim@ to v8 OWNERS 2014-07-08 13:26:48 +00:00
PRESUBMIT.py Add a PRESUBMIT check that production code does not call test code 2014-09-23 08:14:06 +00:00
WATCHLISTS Add myself to a watchlist for the public API. 2013-10-10 11:37:48 +00:00