Bug 8285

Summary: Implement "TreeCode" based javascript interpreter
Product: WebKit Reporter: Eric Seidel (no email) <eric>
Component: JavaScriptCoreAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: darin, eric, ggaren, ian, mjs
Priority: P2 Keywords: InRadar
Version: 420+   
Hardware: Mac   
OS: OS X 10.4   
Bug Depends on:    
Bug Blocks: 10928    
Attachments:
Description Flags
First stab a treecode based JavaScript interpreter none

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.