Bug 8285 - Implement "TreeCode" based javascript interpreter
Summary: Implement "TreeCode" based javascript interpreter
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 420+
Hardware: Mac OS X 10.4
: P2 Normal
Assignee: Nobody
URL:
Keywords: InRadar
Depends on:
Blocks: 10928
  Show dependency treegraph
 
Reported: 2006-04-09 22:46 PDT by Eric Seidel (no email)
Modified: 2008-06-08 20:45 PDT (History)
5 users (show)

See Also:


Attachments
First stab a treecode based JavaScript interpreter (259.66 KB, patch)
2006-04-09 22:50 PDT, Eric Seidel (no email)
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Eric Seidel (no email) 2006-04-09 22:46:17 PDT
ggaren and I got a little carried away last weekend and well... implemented treecode.

<rdar://problem/4409156>
Comment 1 Eric Seidel (no email) 2006-04-09 22:50:14 PDT
Created attachment 7610 [details]
First stab a treecode based JavaScript interpreter

First of all, this patch passes *ALL* javascript test cases, but it should not be considered a finished product.  We've come a long way, but we have a little ways left to go.
Currently the TreeCode interpreter is a little slower than TOT, however there is a lot of fat left to trim.
This patch is here to facilitate discussion, as I'm sure at least Maciej and Darin will have a number of thoughts on the issue.
Comment 2 Eric Seidel (no email) 2006-04-10 00:11:48 PDT
FYI: on my MacBookPro the current numbers show nearly a 50% performance regression.  Again, there is a lot of fat left to trim.

% compare-timing-files -c 5 old.times latest-treecode.times

===== old.times =====
average of fastest 5 runs: 726.8
range of fastest 5 runs: 0.69% (5)

===== latest-treecode.times =====
average of fastest 5 runs: 1052.2
range of fastest 5 runs: 0.38% (4)

performance LOSS of 44.77% (325.4 / 726.8)
Comment 3 Geoffrey Garen 2006-04-10 07:13:56 PDT
In some unit tests, the current numbers are only a 2% regression. It's likely that the js-ibench numbers reflect the fact that we haven't integrated function calls yet, so a function call starts up a nested version of the interpreter loop.
Comment 4 Darin Adler 2006-04-13 01:01:24 PDT
Comment on attachment 7610 [details]
First stab a treecode based JavaScript interpreter

This is going well, on a branch. But this patch is obsolete and we won't be reviewing it.
Comment 5 Cameron Zwarich (cpst) 2008-06-08 20:45:41 PDT
We did this with SquirrelFish.