Commit Graph

238259 Commits

Author SHA1 Message Date
Jim Blandy
8243d96f08 Bug 501908: Avoid O(n^2) behavior when recycling large trees. r=igor
It turns out that the careful effort RecycleTree and NewOrRecycledNode make
to disassemble the recycled tree lazily is wasted: every recycling call
ends up calling UnlinkFunctionBoxes and walking the entire parse node tree
to fix up funbox and method links. There's no locality; you might as well
queue up the parse nodes while you're at it. And the stack doesn't stay
shallow.

This patch replaces the (very clever) lazy recycling with eager recycling,
using a work stack chained through the nodes themselves to avoid creating
deep C++ stacks when recycling deep parse trees. We put off cleaning up the
method lists and funbox tree until just before function analysis, at which
point we do so in a single linear pass. Putting this off to the end avoids
quadratic behavior, as noted in the comments.

The patch localizes the process of adding nodes to the free list in a
single function, ensuring that we don't recycle used/defn nodes. It also
poisons newly freed nodes.

The patch also more clearly distinguishes between function nodes that have
been fully deleted, and function nodes that have been mutated (by
js_FoldConstants) into other kinds of nodes. See the comments before
Parser::cleanFunctionList.

I believe the patch also improves the care with which we handle nodes that
cannot be recycled immediately (those that appear in JSAtomLists, or are
referred to by JSFunctionBoxes). In some cases, those nodes may be picked
up and fiddled with later, so it is important that they not refer to nodes
around them that did get recycled.
2011-01-14 18:09:09 -08:00
Jim Blandy
780bba0f9f Bug 501908: Pass a JSTreeContext to analyzeFunctions, not bits and pieces. r=igor
Proper function recycling may mean eliminating the tree context's entire
function list; it's misleading to pass in the function list, rather than
side-effecting the tc in place.

Let analyzeFunctions take care of testing whether we have any functions to
analyze, instead of making each caller do it. In the next patch in the
series, we won't know whether the function list is really clear or not in
the callers anyway.

Avoid passing tcflags around by non-const reference; SpiderMonkey style is
to use pointers for parameters the callee may mutate, to make call sites
more evidently potential mutations.
2011-01-14 18:09:09 -08:00
Andreas Gal
f5c9522e86 Make Shark work with 64-bit MacOSX builds and rename to start/stopProfiling() (bug 625962, r=sayrer). 2011-01-14 17:58:40 -08:00
David Anderson
232e3ee3c3 Merge backout. 2011-01-14 17:49:43 -08:00
David Anderson
1343e908cb Backed out changeset 121ac4c0d553 2011-01-14 17:48:42 -08:00
Blake Kaplan
4f05b0d1e1 Fix DumpJSStack on dummy frames to not try to treat arbitrary memory as the |this| value. r=gal NPOTB 2011-01-14 17:28:53 -08:00
David Anderson
08b7658fb4 Get rid of value snapshotting in value iterators (bug 624421, r=luke,gal). 2011-01-14 17:15:21 -08:00
David Anderson
0dca4cbca5 Fix PunboxAssembler interface returning wrong labels (bug 625757, r=cdleary). 2011-01-14 15:42:42 -08:00
Jason Orendorff
2c574f0bc2 Bug 559653 - Record assignment before the interpreter goes, mostly. This reduces record_SetPropHit to a narrower callback, record_AddProperty. r=brendan.
--HG--
rename : js/src/jsapi-tests/testSetPropertyWithNativeGetterStubSetter.cpp => js/src/jsapi-tests/testSetProperty.cpp
2011-01-14 16:18:53 -06:00
Chris Leary
3641a2424b Merge from m-c to fix last bustage. 2011-01-14 12:43:05 -08:00
Chris Leary
ac34fb9cee Merge tracemonkey changeset. 2011-01-14 12:35:20 -08:00
Chris Leary
19ed1e45c7 Merge last good mozilla-central revision into tracemonkey. 2011-01-14 12:34:23 -08:00
David Anderson
0a0981d8fc Update NativeIterators properly in the method JIT (bug 625377, r=luke). 2011-01-14 12:16:53 -08:00
Benoit Jacob
b4361a8eb5 Bug 582053 - gl-teximage passes now, remove from failing-tests list - r+a=bustage 2011-01-14 14:21:15 -05:00
Gavin Sharp
431793362b Back out 6419e802aab0 (bug 624588) due to test failures, a=orange 2011-01-14 14:00:21 -05:00
Vladimir Vukicevic
60b63f3bd0 b=625503; convert NaN correctly with typed array array conversion; r=waldo, a=dvander 2011-01-14 10:46:22 -08:00
Benoit Jacob
7c9342e180 Bug 582053 - Integrate WebGL conformance suite as a mochitest - r=vlad, a=blocking2.0
--HG--
rename : content/canvas/test/webgl/failing_tests.txt => content/canvas/test/webgl/failing_tests_linux.txt
2011-01-14 13:40:05 -05:00
Chris Leary
f0dec13d55 Merge mozilla-central into tracemonkey. (a=blockers) 2011-01-14 09:33:29 -08:00
Chris Leary
8faf09db9b Merge mozilla-central and tracemonkey. (a=blockers) 2011-01-14 09:29:15 -08:00
David Dahl
bb609580fb Bug 624588 - Change Panorama shortcut to Shift-Ctrl/Cmd-E r=dao a=final+ 2011-01-14 11:26:58 -06:00
Jacob Bramley
0f3cd6ceaf Bug 625701: Sensible fixed width branching. (r=cdleary) 2011-01-14 09:00:56 -08:00
timeless@mozdev.org
28c3bf0042 Bug 619330 Unknown error alert displayed when trying to print from computer that has no installed printer r=mats a=blocking
--HG--
extra : rebase_source : 25ce9cb89eb088aa915d5bccbedd4f191267fb31
2011-01-14 18:34:01 +02:00
tim.taubert@gmx.de
0a948d6bf7 Bug 484396 - XMLHttpRequest.open throws exception on empty string url parameter, r=smaug, a=bz
--HG--
extra : rebase_source : 73ce4b9fca63e9fd16acac65739fc71603ec843e
2011-01-14 18:11:25 +02:00
Boris Zbarsky
29354bf191 Bug 619220 followup. Nix unused member that was screwing things up. a=orange 2011-01-14 12:22:20 -05:00
Jonathan Protzenko
b5c31dda8a Move comment for nsTObserverArray near the start of the file, r=bz a=bz over IRC. DONTBUILD 2011-01-14 18:15:27 +01:00
Dão Gottwald
47aeb57be7 Bug 615890 - Reduce Firefox button height in non-maximized windows on Windows XP. r=gavin a=b 2011-01-14 17:22:32 +01:00
Brendan Eich
2c74ffd9ca Cope with localStorage reifying __iterator__ with null value, and the like (573875, r=gal). 2011-01-14 08:03:45 -08:00
Chris Leary
1a66e5bee4 Bug 625718: Correct SETPROP label offsets. (r=jbramley) 2011-01-14 07:49:59 -08:00
Mounir Lamouri
525143557c Bug 624187 - r=smaug a=blocking-beta
--HG--
extra : rebase_source : e8ed7004507dfcef58d7144d89eb5205d2b0b99c
2011-01-14 16:34:50 +01:00
Mounir Lamouri
a88195a9fc Bug 623482 - Present error page when someone tries to access remote XUL. r+a=sicking
--HG--
extra : rebase_source : 2786e51db70ca0c66f6388376711e74816828c2d
2011-01-14 16:33:57 +01:00
Chris Leary
056facaa7c Bug 625701: Fixed-width IC cmp/branch is required for x86. (r=dvander) 2011-01-14 02:57:21 -08:00
Chris Leary
4b37828aec Merge mozilla-central into tracemonkey. 2011-01-14 01:45:33 -08:00
Chris Leary
72a8c1a6b6 Bug 588021: Remove vestigial ifdefs. (r=dmandelin) 2011-01-13 22:42:48 -08:00
Chris Leary
d4f5d475e9 Bug 588021: Port ELEM PICs for ARM. (r=dmandelin) 2011-01-13 22:42:28 -08:00
Chris Leary
24d8b5461c Bug 588021: Port CALLPROP PIC for ARM. (r=dmandelin) 2011-01-13 22:42:07 -08:00
Chris Leary
cad74eb0f9 Bug 588021: Port SETPROP PIC for ARM. (r=dmandelin) 2011-01-13 22:41:42 -08:00
Jacob Bramley
40fdd878d3 Bug 588021: Port NAME PIC for ARM. (r=cdleary) 2011-01-13 22:41:16 -08:00
Jacob Bramley
19407e2b09 Bug 588021: Port BINDNAME PIC for ARM. (r=cdleary) 2011-01-13 22:40:58 -08:00
Chris Leary
8dc586ec63 Bug 588021: Port GETPROP PIC for ARM. (r=dmandelin) 2011-01-13 22:40:15 -08:00
Chris Leary
9e386e7eeb Bug 588021: Refactor MICs to work on ARM, ICRepatcher interface. (r=dmandelin, u=jbramley,cdleary) 2011-01-13 22:39:43 -08:00
Chris Leary
fc21ef8fcb Bug 588021: Cross-platform PIC labels. (r=dmandelin, u=cdleary,dvander,jbramley) 2011-01-13 22:39:11 -08:00
Jacob Bramley
2a3e7b6d4f Bug 588021: Make stub calls with stub veneer on ARM. (r=cdleary) 2011-01-13 22:38:52 -08:00
Philipp von Weitershausen
5af500f104 Bug 623795 follow-up: forgot to apply my own review comments. r=me a=blocking-betaN 2011-01-13 22:08:57 -08:00
Philipp von Weitershausen
1ab4d81f48 Bug 622408 follow-up: forgot to apply my own review comments. r=me a=blocking-final 2011-01-13 21:52:55 -08:00
Richard Newman
523c19565a Bug 622408 - Sync layout issues on localized builds. r=philikon a=blocking-final 2011-01-13 21:43:35 -08:00
Richard Newman
fbf56820b5 Bug 623795 - Sync setup and Add a Device wizard should trigger master password dialog. r=philikon a=blocking-betaN 2011-01-13 21:43:25 -08:00
Philipp von Weitershausen
e4d2ecc139 Bug 624982 - Merge fx-sync to mozilla-central. a=blockers 2011-01-13 21:43:02 -08:00
Taras Glek
211f19c661 Bug 625478 - Fix first paint timestamp on OSX and Android r=tn a=Mossop 2011-01-13 20:03:42 -08:00
Nicholas Nethercote
39684e1437 Bug 625333 - tracer generated code reads stack memory it didn't write. r=lw. 2011-01-13 19:14:46 -08:00
Nicholas Nethercote
02b1116cec Backed out changeset 1548012fa682 due to leaks found by Valgrind. 2011-01-13 19:04:03 -08:00