21f26b41d7e3e73eb75bbc366e369191c42b798c: Merge.
Andreas Gal <gal@mozilla.com> - Mon, 18 Aug 2008 12:55:09 -0700 - rev 18222
Push 1 by root at Tue, 26 Apr 2011 22:38:44 +0000
Merge.
1afa227e9b73020c6bf70287b6280381f90fc418: Make sure to trasm the vmprivate of dependent trees as well.
Andreas Gal <gal@mozilla.com> - Mon, 18 Aug 2008 12:53:38 -0700 - rev 18221
Push 1 by root at Tue, 26 Apr 2011 22:38:44 +0000
Make sure to trasm the vmprivate of dependent trees as well.
069a7b6f1012f58808f2370cc3002e46b738a0ce: Updated nanojit for the AMD64 patch.
David Anderson <danderson@mozilla.com> - Mon, 18 Aug 2008 12:32:14 -0700 - rev 18220
Push 1 by root at Tue, 26 Apr 2011 22:38:44 +0000
Updated nanojit for the AMD64 patch.
1d0574db83207d6850eef938288142212b0aa110: Tighter fencepost in getTop, don't overshoot the stack (450997).
Andreas Gal <gal@mozilla.com> - Mon, 18 Aug 2008 10:09:24 -0700 - rev 18219
Push 1 by root at Tue, 26 Apr 2011 22:38:44 +0000
Tighter fencepost in getTop, don't overshoot the stack (450997).
98adb85d1f02abbb33bab45e45eb51ddfd28e799: Doh. Deep bailots are pretty rare and js_SynthesizeFrame already uses the fairly slow js_ReconstructStackDepth helper internally, so anotherone to avoid counting stack slots via spbase can't hurt.
Andreas Gal <gal@mozilla.com> - Mon, 18 Aug 2008 10:04:03 -0700 - rev 18218
Push 1 by root at Tue, 26 Apr 2011 22:38:44 +0000
Doh. Deep bailots are pretty rare and js_SynthesizeFrame already uses the fairly slow js_ReconstructStackDepth helper internally, so anotherone to avoid counting stack slots via spbase can't hurt.
48501e6d56bcc4238beedfe0cba4df3254bec7ed: Merge.
Andreas Gal <gal@mozilla.com> - Mon, 18 Aug 2008 08:03:51 -0700 - rev 18217
Push 1 by root at Tue, 26 Apr 2011 22:38:44 +0000
Merge.
16ae20bd96ae0c0fe121dcd252adcdbb78398ad4: Add a method to type map that captures missing slots (which have been lazily added to the slot list since the type map was created.)
Andreas Gal <gal@mozilla.com> - Mon, 18 Aug 2008 07:32:42 -0700 - rev 18216
Push 1 by root at Tue, 26 Apr 2011 22:38:44 +0000
Add a method to type map that captures missing slots (which have been lazily added to the slot list since the type map was created.)
cda21775af056796c734c545ac5668f1e9b6fd49: Fix missing paren in comment; also s/scope/frame/ in same comment.
Brendan Eich <brendan@mozilla.org> - Sun, 17 Aug 2008 12:04:33 -0700 - rev 18215
Push 1 by root at Tue, 26 Apr 2011 22:38:44 +0000
Fix missing paren in comment; also s/scope/frame/ in same comment.
6c1e358ce7a913f529a9e968b2adc28c5e9cff48: Extend the globalTypeMap import(), not in the caller, since we missed extending it in case of re-reading registers after a tree call.
Andreas Gal <gal@mozilla.com> - Sun, 17 Aug 2008 11:38:49 -0700 - rev 18214
Push 1 by root at Tue, 26 Apr 2011 22:38:44 +0000
Extend the globalTypeMap import(), not in the caller, since we missed extending it in case of re-reading registers after a tree call.
629fae5234d803ffd3754abc5d38d39bcb78897f: If RecordTree is triggered, create a new peer fragment (or recycle and unused one) if we already have a tree for this location.
Andreas Gal <gal@mozilla.com> - Sun, 17 Aug 2008 00:49:59 -0700 - rev 18213
Push 1 by root at Tue, 26 Apr 2011 22:38:44 +0000
If RecordTree is triggered, create a new peer fragment (or recycle and unused one) if we already have a tree for this location.
c874c018538966ead950158c0b3190b7ea11de1b: Try to execute the tree first, and if that fails worry about counting and triggering compilation. This speeds up trace activiation by a tiny bit, but makes code that we can't trace a little bit slower. We use a micro optimization to bypass the call to js_ExecuteTree when its clear that it wouldn't find a tree to executed to reduce this overhead. This change is necessary for multiple trees per bytecode location.
Andreas Gal <gal@mozilla.com> - Sun, 17 Aug 2008 00:30:36 -0700 - rev 18212
Push 1 by root at Tue, 26 Apr 2011 22:38:44 +0000
Try to execute the tree first, and if that fails worry about counting and triggering compilation. This speeds up trace activiation by a tiny bit, but makes code that we can't trace a little bit slower. We use a micro optimization to bypass the call to js_ExecuteTree when its clear that it wouldn't find a tree to executed to reduce this overhead. This change is necessary for multiple trees per bytecode location.
2ad80e2e356d27296fa7f1b99e96da182975222c: Give root fragments a treeInfo decorator only if the trace was successfully compiled. Otherwise just keep a reference in the recorder and delete it when the recorder is destroyed. Review welcome. The involved state machine is a bit complex. Added lots of asserts as safety net.
Andreas Gal <gal@mozilla.com> - Sat, 16 Aug 2008 23:43:49 -0700 - rev 18211
Push 1 by root at Tue, 26 Apr 2011 22:38:44 +0000
Give root fragments a treeInfo decorator only if the trace was successfully compiled. Otherwise just keep a reference in the recorder and delete it when the recorder is destroyed. Review welcome. The involved state machine is a bit complex. Added lots of asserts as safety net.
c651b4e5c5284c0c1ab77bc8bc72165a2dea39aa: Only capture the shape of the global object in a tree once that tree tries to access a global, and only check the stored global shape in trees against the current global shape if the tree actually uses globals (which also doesn't trash trees when global variables are added if that tree doesn't actually use globals.) This is approx. a 1% win for sunspider.
Andreas Gal <gal@mozilla.com> - Sat, 16 Aug 2008 21:05:03 -0700 - rev 18210
Push 1 by root at Tue, 26 Apr 2011 22:38:44 +0000
Only capture the shape of the global object in a tree once that tree tries to access a global, and only check the stored global shape in trees against the current global shape if the tree actually uses globals (which also doesn't trash trees when global variables are added if that tree doesn't actually use globals.) This is approx. a 1% win for sunspider.
c072d3b7af1f236dd48654804dd14f0c6eb807b3: Change interface of js_ExecuteTree to indicate which of the peer fragments it really executed (since we soon will have more than one tree that could be activated for that particular bytecode location).
Andreas Gal <gal@mozilla.com> - Sat, 16 Aug 2008 15:45:48 -0700 - rev 18209
Push 1 by root at Tue, 26 Apr 2011 22:38:44 +0000
Change interface of js_ExecuteTree to indicate which of the peer fragments it really executed (since we soon will have more than one tree that could be activated for that particular bytecode location).
a5e518ad4bad36185331e9743c3b3e74be91b0fe: Add a ->first pointer to all fragments that points to the first fragment in the peer list. This is the fragment we do JIT throttling/blacklisting on.
Andreas Gal <gal@mozilla.com> - Sat, 16 Aug 2008 15:41:21 -0700 - rev 18208
Push 1 by root at Tue, 26 Apr 2011 22:38:44 +0000
Add a ->first pointer to all fragments that points to the first fragment in the peer list. This is the fragment we do JIT throttling/blacklisting on.
98d0efcc53566f5cfc446798747f05a889d55cde: Append peer fragments at the end of the list (so f->blacklist() always counts against the same fragment).
Andreas Gal <gal@mozilla.com> - Sat, 16 Aug 2008 11:42:38 -0700 - rev 18207
Push 1 by root at Tue, 26 Apr 2011 22:38:44 +0000
Append peer fragments at the end of the list (so f->blacklist() always counts against the same fragment).
52e95353080a9db72d3762a7c72d818b04c3279c: Add a simple script that calculates an aggregate score over all tests running with the jit in t/*.
Andreas Gal <gal@mozilla.com> - Fri, 15 Aug 2008 20:26:45 -0700 - rev 18206
Push 1 by root at Tue, 26 Apr 2011 22:38:44 +0000
Add a simple script that calculates an aggregate score over all tests running with the jit in t/*.
2161a2f00ce89eb8ce93281ca8a38d51f4836fa6: Merge.
Andreas Gal <gal@mozilla.com> - Fri, 15 Aug 2008 20:16:46 -0700 - rev 18205
Push 1 by root at Tue, 26 Apr 2011 22:38:44 +0000
Merge.
bfcedf35495326f052a253dea7e9cb35fa0d5b92: Add the concept of peer fragments to nanojit. Each loop fragment can have a number of peer fragments, which we can use to have several different specialized variants of a loop (i.e. for different types). The makefile doesn't pick up the change to Fragmento.h, so make sure you clobber by hand or you will end up wasting an hour of your life in gdb (like me.)
Andreas Gal <gal@mozilla.com> - Fri, 15 Aug 2008 20:15:47 -0700 - rev 18204
Push 1 by root at Tue, 26 Apr 2011 22:38:44 +0000
Add the concept of peer fragments to nanojit. Each loop fragment can have a number of peer fragments, which we can use to have several different specialized variants of a loop (i.e. for different types). The makefile doesn't pick up the change to Fragmento.h, so make sure you clobber by hand or you will end up wasting an hour of your life in gdb (like me.)
8b85cfd576cdbef1c51c9f89c5073187748b4f69: Merge.
Brendan Eich <brendan@mozilla.org> - Fri, 15 Aug 2008 18:02:30 -0700 - rev 18203
Push 1 by root at Tue, 26 Apr 2011 22:38:44 +0000
Merge.
(0) -10000 -3000 -1000 -300 -100 -50 -20 +20 +50 +100 +300 +1000 +3000 +10000 +30000 +100000 +300000 tip