Commit Graph

772 Commits

Author SHA1 Message Date
David Anderson
2098f14d9f Fixed regression where lazy imports could happen in JSOP_ARGUMENTS conditional branch (bug 535474, r=gal). 2009-12-16 18:58:47 -08:00
Andreas Gal
79103c3e59 Eliminate call snooping in the FuncFilter (534364, r=dvander). 2009-12-11 19:48:14 -08:00
David Anderson
e72392a667 Lazily import stack and global slots (bug 515749, original patch and r=gal). 2009-12-11 19:10:36 -08:00
Andreas Gal
142909c3dd Avoid slow linear growth of Queues used in the JIT (534168, r=dvander). 2009-12-11 16:12:48 -08:00
David Anderson
8fb72a7a12 Get rid of TreeInfo and inline its members into TreeFragment (bug 525371, r=gal,lw) 2009-12-04 19:59:55 -08:00
Boris Zbarsky
2e2e3eeb0c Bug 521423. Make JSString 4 words instead of 2; make substring() and company never have to copy. r=brendan 2009-12-03 14:39:42 -05:00
Brendan Eich
05f85209b1 Trace JSOP_ENUMELEM, for the group-assignment special case of destructuring assignment (532043, r=gal). 2009-12-02 21:50:04 -08:00
David Anderson
b7f7a14f13 Backed out changeset 0082849624a5, potential orange. 2009-12-01 16:32:45 -08:00
David Anderson
c80f627585 Remove TreeInfo (bug 525371, r=lw). 2009-12-01 13:32:02 -08:00
Andreas Gal
2579df36c1 -r 2009-11-24 19:35:17 -08:00
Andreas Gal
58b9ca067f Avoid frequent reallocs in Queue::ensure (530936, r=luke). 2009-11-24 17:04:24 -08:00
Jason Orendorff
3f11018c72 Bug 519719 - TM: crash [@ JS_GetFrameThis] - SynthesizeFrame passes partly-uninitialized JSStackFrame to callHook. r=mrbkap. 2009-11-13 11:04:23 -06:00
David Anderson
003e66b4ad Use INS_CONSTOBJ instead of INS_CONSTWORD for kshape guard (bug 528048, r=gal). 2009-11-16 18:44:58 -05:00
Luke Wagner
12ec57f335 Bug 520636 - sideExits holds dangling pointer on failed compilation (r=dvander) 2009-11-13 15:47:08 -08:00
Luke Wagner
5edaaf4c39 Bug 517174 - trace js_Invoke calls from natives (r=dvander) 2009-11-12 18:34:24 -08:00
David Anderson
db7ed2cb48 Reorganized the fragment class hierarchy (bug 524620, r=gal). 2009-11-05 15:04:54 -08:00
Luke Wagner
7e9e13723a Bug 525120 - move native stack off the C stack (fixes native global frame alignment) (r=dvander)
--HG--
extra : rebase_source : 88fd7104fd77507c7c6ffd3dd0464cc6954f90c0
2009-10-28 16:44:44 -07:00
Luke Wagner
fe59499ad3 Bug 523515 - pretty up TraceRecorder (r=dvander) 2009-10-26 13:06:17 -07:00
Luke Wagner
f723becfb6 Remove execute permissions on source files 2009-10-22 10:41:19 -07:00
David Anderson
5a9f22f10c Fixed return value propagation and demotion bugs in recursion (bug 521447, r=gal). 2009-10-21 15:14:01 -07:00
David Anderson
20d18679cc Backed out changeset 31a4c08387f1 (orange). 2009-10-21 13:54:15 -07:00
David Anderson
ee7110502b Fixed return value propagation and demotion bugs in recursion (bug 521447, r=gal). 2009-10-20 20:17:51 -07:00
Graydon Hoare
a32e357aaa Bug 522587 - clean up variadic macro avoidance code, r=gal. 2009-10-15 16:04:55 -07:00
David Anderson
f7c7c124a8 Eagerly release frame marks during recursion (bug 521476, r=brendan). 2009-10-13 15:14:46 -07:00
Andreas Gal
9d03f17cd2 Avoid JSArena as temp buffer in TraceRecorder::snapshot (variation of patch in bug 521880, r=me). 2009-10-12 22:41:08 -07:00
Andreas Gal
1eadb6d958 Backed out changeset 1a747dd43904 (bug 521880). 2009-10-12 18:00:48 -07:00
Andreas Gal
8f9daae9e4 Avoid JSArena as temp buffer in TraceRecorder::snapshot (521880, r=luke). 2009-10-12 14:40:06 -07:00
Luke Wagner
b290332e93 Bug 521081 - nested tree call guard checks the wrong state (r=gal) 2009-10-07 14:20:06 -07:00
David Mandelin
42af5f9b94 Backed out changeset 9cc88d291fc0 2009-10-05 18:31:10 -07:00
David Mandelin
e7d37eba3d Bug 495331: trace JSOP_LAMBDA for non-null, non-heavyweight case, r=jorendorff,igor 2009-09-28 13:51:46 -07:00
Makoto Kato
2dc0ebc45c Bug 515545 - Add EXECUTE_TREE_TIMER code for Windows x64. r=dvander 2009-10-04 17:03:18 +09:00
David Anderson
ab2f179aab Static analysis fixes, recursion fallout (bug 520320, r=gal). 2009-10-02 17:55:57 -07:00
David Anderson
b21e218905 Fixed js_PopInterpFrame breaking arena LIFO requirement (bug 520210, r=brendan). 2009-10-02 13:52:54 -07:00
Robert Sayre
cea0319379 Merge mozilla-central to tracemonkey. 2009-10-01 14:08:25 -07:00
David Anderson
3e3b3a2362 Trace recursive function calls (bug 459301, r=gal). 2009-09-30 15:28:00 -07:00
David Anderson
5aeb5cef7e Internalize and memoize FrameInfo pointers (bug 501398, r=brendan). 2009-09-30 13:00:16 -07:00
Brendan Eich
4bf4354638 High-level CSE for shape guards (518448, r=jorendorff). 2009-09-29 19:05:19 -07:00
David Anderson
019e8e15ce Backed out changeset 911d01b21463 2009-09-29 16:24:59 -07:00
David Anderson
a64d9ec66a Internalize and memoize FrameInfo structures (bug 501398, r=brendan). 2009-09-29 14:33:43 -07:00
Nicholas Nethercote
c70f7763f4 Bug 519156 - TM: fix the Tracker. r=gal. 2009-09-29 11:12:46 +10:00
Graydon Hoare
ce8212d362 Bug 518744 - TM: mark and rewind dataAlloc, r=gal.
--HG--
extra : rebase_source : fd9eac329fc70879ad5b45a267152937fed693fb
2009-09-25 17:20:01 -07:00
Luke Wagner
1fbbde3ae1 Bug 519004 - make deep abort danger more clear and present (r=dvander) 2009-09-28 09:03:21 -07:00
Robert Sayre
7e3d716d38 Backed out changeset f5ea964eb493sdf 2009-09-26 18:55:25 -07:00
Brendan Eich
69fd06459c High-level CSE for shape guards (518448, r=jorendorff). 2009-09-25 14:07:08 -07:00
Robert Sayre
14ef91c61f Merge mozilla-central to tracemonkey. 2009-09-25 11:55:38 -07:00
Nicholas Nethercote
7ca135d39f Bug 518747 - NJ merge: get rid of NJ_LOG2_PAGE_SIZE et al. r=graydon. 2009-09-25 16:01:55 +10:00
Luke Wagner
668372111c Bug 517973 - remove deep abort, fix blacklisting bug 2009-09-23 18:21:41 -07:00
Graydon Hoare
f0b694edca Bug 517083 - Fix performance regression, r=dvander.
--HG--
extra : rebase_source : 57e132434da8c652c41ffa889aa2002eeeb4698c
2009-09-23 15:12:58 -07:00
David Mandelin
99fb23d064 Bug 511695: Fix JS warnings in MSVC8, r=brendan 2009-09-23 11:16:30 -07:00
Graydon Hoare
a18f57ecfd Bug 495734 - NJ: don't store non-LIR data in LIR buffers, r=gal.
--HG--
extra : rebase_source : 4a73fd251f3077fe3623ef1341a8aa3729a4e8bf
2009-09-22 16:06:52 -07:00
Graydon Hoare
ccc6ad4904 Bug 517083 - TM: introduce a temp allocator for allocations during recording and compilation, r=gal. 2009-09-22 12:36:20 -07:00
David Mandelin
10e9f4f6b8 Bug 517633: printf that can be called from trace, r=lw
--HG--
extra : rebase_source : 7bf61fae910feab40ef706717420e883ccafc4da
2009-09-22 15:02:50 -07:00
Graydon Hoare
e102fc5e1c Bug 517299 - Allocator mismatch (calloc+delete) for class TraceRecorder and LirWriter, r=gal. 2009-09-21 14:06:42 -07:00
Graydon Hoare
963fd74e53 Bug 516620 - Kill off residue of MMgc, r=gal.
--HG--
extra : rebase_source : 1bd814f499014507fb60ad554687b12b9fe09a3e
2009-09-10 16:29:36 -07:00
Julian Seward
b214130415 Bug 503424 - Add built-in support for compiled-trace and -guard profiling, r=graydon. 2009-09-15 15:05:53 -07:00
Graydon Hoare
2521578c2d Backed out changeset 35777195800a, perf regression. 2009-09-14 21:07:57 -07:00
Graydon Hoare
5d33edd2e9 Bug 516620 - Kill off residue of MMgc, r=gal. 2009-09-10 16:29:36 -07:00
Brendan Eich
eaabbf253c Bug 516075 - Move shape into JSObjectMap from JSScope, const-ipate and use LIR_ldc* to get to it (r=jorendorff). 2009-09-14 20:29:46 -04:00
Andreas Gal
72c92b196f Use a single code cache for the JIT and the RegExp compiler (515852, r=dmandelin). 2009-09-12 23:04:27 -07:00
Brendan Eich
1f562c224a Bug 516069 - Common the side exit used with shape guards (r=gal). 2009-09-11 15:44:30 -07:00
Benjamin Smedberg
124c9c8007 Bug 517278 - JS_REQUIRES_STACK errors (jsobj.cpp and jstracer.cpp), r=jorendorff 2009-09-18 09:36:51 -04:00
David Mandelin
0fcb7aaa76 Bug 500857: show JIT reset events in tracevis, r=nnethercote
--HG--
extra : rebase_source : a9be775abf15badf980e3be3535e99b30ce5c235
2009-09-10 16:06:34 -07:00
David Anderson
fdcaf63219 Greatly improved tracer x64 compliance and compatibility (bug 513844, r=gal). 2009-09-10 15:38:18 -07:00
Andreas Gal
bd58a78c21 Set nativeVp immediately before the native call (514999, r=mrbkap). 2009-09-09 17:38:07 -07:00
David Mandelin
a8c3972f23 Bug 504797: give arguments objects created on trace a private value that can be used to look up argument values in the native stack, r=gal 2009-09-09 11:40:21 -07:00
David Anderson
7b69388035 Fixed a hack that created temporarily ill-typed LIR, i2f(i2f) (bug 503427, r=gal). 2009-09-08 16:47:55 -07:00
Igor Bukanov
6bfe4771cc bug 513190 - avoiding jsint tagging of the private slot data. r=jorendorff 2009-09-05 19:59:11 +04:00
Andreas Gal
27381a9ab1 Reset nativeVp only after the native call returns (513981, r=mrbkap). 2009-09-04 17:00:08 -07:00
Luke Wagner
6bfe9f9329 Bug 460904 - rename/tweak JSTraceableFunction (take 2) 2009-09-04 13:44:31 -07:00
Luke Wagner
3087376a4d Backed out changeset 94da2f68afdb 2009-09-04 11:35:52 -07:00
Luke Wagner
52d822b6d2 Bug 460904 - rename/tweak JSTraceableFunction (r=jorendorff) 2009-09-03 11:57:14 -07:00
Brendan Eich
cce4dce512 Join lambdas assigned or initialized as methods to the compiler-created function object if we can, with a read barrier to clone on method value extractions other than call expressions (471214, r=jorendorff). 2009-09-03 14:41:19 -07:00
Nicholas Nethercote
e409ab2bb3 Bug 512596 - TM: improve TMFLAGS=help message. r=jseward. 2009-09-01 10:08:46 +10:00
Andreas Gal
4394dfd752 Don't allocate in Queue constructor by default (513497, r=shaver). 2009-08-29 18:57:57 -07:00
Andreas Gal
c85b53a42a Backout bug 512617. 2009-08-29 18:46:27 -07:00
Andreas Gal
64328a8e94 Consolidate object creation on trace (512617, r=jorendorff). 2009-08-29 12:36:00 -07:00
Andreas Gal
14813a11f4 Remove some TM-only fields from nanojit (513187, r=dvander). 2009-08-28 14:36:37 -07:00
Igor Bukanov
b919139e8d bug 511425 - removal of JSObjectOps.(get|set)RequiredSlot. r=brendan 2009-08-28 09:53:26 +04:00
Andreas Gal
317b5f2e3a Remove explicitSavedRegs and loop hacks from nanojit (513139, r=dvander). 2009-08-27 18:46:45 -07:00
David Mandelin
368b225d78 Bug 505591: trace JSOP_NAME for returned closures, r=dvander
--HG--
extra : rebase_source : 496a99feeb0fee876cd72b24e1e753d9b41ea51f
2009-08-27 15:40:37 -07:00
David Mandelin
a086bb3ab9 Bug 510642: traverse scope chain correctly for traced JSOP_BINDNAME, r=jimb 2009-08-27 15:07:46 -07:00
Luke Wagner
a5b9103165 Bug 419743 - Add JSOP_CONCATN (r=waldo) 2009-08-18 15:43:17 -07:00
Jason Orendorff
092787084d Bug 507683 part 2 - Avoid lookup on trace when calling a native getter with no slot. r=gal.
--HG--
extra : rebase_source : 38c552c3c1daad34bda66fc9ced2ec31d954eef0
2009-08-25 15:02:58 -07:00
Jason Orendorff
c45d09492c Bug 507683 part 1 - Trace native getters. r=gal.
--HG--
extra : rebase_source : f73754b7946e3d525b11f5973c61e22bd2f56dba
2009-08-25 15:01:29 -07:00
David Anderson
bed67e910c Removed callee from FrameInfo, and fixed upvar bugs in stack reconstruction (bug 510300, r=dmandelin,brendan). 2009-08-21 08:09:47 -07:00
Graydon Hoare
503c025d90 Bug 511309 - Delete class Fragmento and all uses of it, r=dvander.
--HG--
extra : rebase_source : 47047589288ac0758e0068307b5a8f393db97606
2009-08-20 17:22:47 -07:00
Graydon Hoare
ebe9c3f20b Bug 511237 - Remove primary use of Fragmento from jsregexp, r=dmandelin. 2009-08-18 15:32:54 -07:00
David Mandelin
6e0758faf2 Trailing whitespace cleanup, no_r=me 2009-08-20 15:21:14 -07:00
David Anderson
57bffd92e3 Consolidated inner global typemap completion logic and fixed a bug when extending nested exits (bug 510518, r=gal,sayrer). 2009-08-20 13:06:27 -07:00
David Anderson
16fa18ade6 Added trace tree visualizer (bug 506714, r=gal). 2009-08-19 16:11:59 -07:00
Jason Orendorff
5d4cab246e Bug 507446 - TM: use return values instead of outparams for box_jsval, unbox_jsval. r=dmandelin.
--HG--
extra : rebase_source : e49f886c1723d90064cd11da0959f4a1e0fe23f4
2009-08-19 17:00:18 -05:00
Nicholas Nethercote
c035e918c7 Bug 511012 - TM: don't use addName() and insStorei() together. r=gal. 2009-08-18 09:27:48 +10:00
David Mandelin
46854c2304 Bug 509599: on trace, call putArguments when returning from JS function via either return or stop, r=jorendorff 2009-08-17 15:29:09 -07:00
Andreas Gal
5d82186f20 Don't flush the code cache every time we GC (506117, r=brendan). 2009-08-17 14:50:57 -07:00
David Mandelin
184e8b155d Backed out changeset 238e8b557e4f: causing tjss orange
--HG--
extra : rebase_source : 49cfd40e67221067c45c85a5b96db39d22be1f67
2009-08-14 19:17:00 -07:00
David Mandelin
a5a7e420d0 Bug 505591: trace JSOP_NAME for returned closures, r=dvander 2009-08-14 16:02:47 -07:00
Jason Orendorff
56b69d0816 Bug 508051 part 1 - Avoid imacros for JSOP_SETELEM. Re-landing per comment 8. r=gal. 2009-08-14 15:47:04 -05:00
Andreas Gal
25b9ed2a98 Backed out bug 508051. Fails trace-test/mandelbrot. 2009-08-13 04:08:34 -07:00
Jason Orendorff
cc37757a20 Bug 508051 part 1 - Avoid imacros for JSOP_SETELEM. r=gal. 2009-08-12 15:27:01 -05:00
David Anderson
869bf43660 Cleaned up and refactored AttemptToStabilizeTree (bug 509089, r=gal). 2009-08-10 22:15:52 -07:00
David Mandelin
86609aa9f8 Bug 508187: do stack push after all guards when tracing JSOP_INCNAME et al, r=gal 2009-08-10 13:03:50 -07:00
Graydon Hoare
b8154cc364 Bug 504462 - Merge tamarin's CodeAlloc into tracemonkey, r=gal. 2009-07-15 16:50:01 -07:00
David Anderson
829a35875e Cleanup of deduceTypeStability and closeLoop, take two (bug 497948, r=gal+sayrer). 2009-08-07 14:08:23 -07:00
David Mandelin
c1486b955e Bug 508178: guard that arguments object refers to the same frame if used on trace, r=jorendorff 2009-08-05 12:39:10 -07:00
David Mandelin
bcef71432b Bug 507449: Trace JSOP_GETXPROP, r=gal 2009-08-04 11:01:13 -07:00
Jason Orendorff
2df7b71611 Bug 507665 - Avoid imacros for JSOP_GETELEM and JSOP_CALLELEM. r=gal. 2009-08-03 11:38:28 -05:00
David Mandelin
bac4a5e107 Bug 495330: trace JSOP_INCNAME and related ops for closures, r=gal 2009-07-31 17:52:30 -07:00
Graydon Hoare
2e92fcbbe3 Backed out changeset d0be9284ea67 2009-07-30 14:28:26 -07:00
Mark Steele
ff339aa3b6 Bug 497999: collect context-specific TraceVis data in JS objects, r=jorendorff 2009-07-30 11:48:02 -07:00
David Mandelin
f7a94971a0 Bug 507053: fix on-trace scope chain computation for JSOP_BINDNAME, r=gal 2009-07-30 11:34:35 -07:00
Jason Orendorff
9a9d7d84d3 Bug 507156 - JSOP_TABLESWITCH always aborts, sometimes without an abort message. r=dmandelin. 2009-07-30 13:06:15 -05:00
Graydon Hoare
caf3859643 Bug 504462 - Merge tamarin's CodeAlloc into tracemonkey, r=gal. 2009-07-15 16:50:01 -07:00
Jason Orendorff
f0ca3c8bd9 Bug 506982 - Fix up jstracer style. r=Waldo. 2009-07-29 11:58:19 -05:00
David Mandelin
cfb0d1fd1b Bug 506821: clean up trailing whitespace, r=brendan 2009-07-27 18:40:12 -07:00
Jason Orendorff
08e0a53af4 Bug 503408 - Trace native setters. r=brendan. 2009-07-27 16:47:34 -05:00
David Mandelin
e8a3e752f8 Bug 496240: trace JSOP_NAME for active (on-stack) closures, r=gal 2009-07-21 16:22:36 -07:00
Robert Sayre
53d13821c6 Merge mozilla-central to tracemonkey. 2009-07-16 11:46:05 -04:00
Neil Rashbrook
7d7253ddaa Bug 501609 Make js/src build with VC7.1 r=graydon 2009-07-15 20:31:26 +01:00
Wesley W. Garland
ee6d0ceed7 Bug 504119 - jstracer.h no longer compiles debug builds on gcc < 4. r=jorendorff.
--HG--
extra : rebase_source : 4ea454201e93f26d87a5707d5b91c295e828cd2f
2009-07-14 19:15:23 -05:00
Robert Sayre
d2f01e78db merge backout 2009-07-14 00:26:05 -04:00
Robert Sayre
663a2781d7 Backed out changeset b6a8110a858f 2009-07-14 00:25:35 -04:00
Blake Kaplan
d142d70ad5 Bug 503286 - Use the right sp for sp_adj to account for tree calls fiddling with state.sp after we've deep bailed. r=jorendorff
--HG--
extra : rebase_source : 2d3e2237ef82d4ea5980b4ece9b484344f450036
2009-07-13 15:44:33 -07:00
David Anderson
3afb790b55 Refactored deduceTypeStability/closeLoop for a general cleanup needed for recursion (bug 497948, r=gal+sayrer). 2009-07-13 13:26:27 -07:00
David Mandelin
975f74c278 Bug 453730: trace JSOP_ARGUMENTS, r=gal 2009-07-08 11:16:41 -07:00
Jason Orendorff
e0ee1845cf Give the LIR instruction for loading obj->map the name "map" in debug output. r=brendan in bug 498565 comment 18.
--HG--
extra : rebase_source : 3c7954123b4b89d0f38b7e6c2397749a9156e342
2009-07-07 06:20:22 -05:00
Andreas Gal
16a60091ed Shortcut lookup flag calculation when on trace (bug 502145, r=igor). 2009-07-06 06:42:13 +02:00
David Anderson
cf5bda02f1 Nits to Queue<T>, assert valid index and support 0 starting size (bug 500554, r=gal). 2009-06-25 17:14:54 -07:00
Jeff Walden
2d9f80b8df Windows bustage fix, r=foopy
--HG--
extra : rebase_source : 3e6a65cb262f12fe73b3ef7657a1f38c9673ad99
2009-06-25 16:36:25 -07:00
Jeff Walden
8b7bef6dd0 Bug 497207 - Define |enum JSTraceType| and stop overloading JSVAL_* for trace-time types. r=jorendorff
--HG--
extra : rebase_source : bb72ca3ad8fab4d0b2affca611630bf5a9559531
2009-06-10 16:58:02 -07:00
David Anderson
3d4b953291 Avoid pedantic errors about trailing commas in lists (build bustage fix). 2009-06-25 16:02:29 -07:00
David Anderson
b6436e2572 Print exit names instead of numbers (bug 500522, r=gal). 2009-06-25 15:32:50 -07:00
Julian Seward
b96eed42da Bug 494864 - Make nanojit debug output easier to follow, r=graydon. 2009-06-24 20:32:00 -07:00
Graydon Hoare
0f04cb5c35 Bug 496674 - Replace FORALL macros with template functions and visitors, take 2, r=gal. 2009-06-19 18:48:05 -07:00
Andreas Gal
6e96f166d2 Check for end of proto chain when walking it (499169, r=mrbkap). 2009-06-23 19:22:54 -07:00
Graydon Hoare
859a94d6ec Backed out changeset 5e1b444c803c, broke static analysis tinderbox. 2009-06-23 16:58:30 -07:00
Graydon Hoare
c8b2433196 Bug 496674 - Replace FORALL macros with template functions and visitors, r=gal. 2009-06-19 18:48:05 -07:00
Nicholas Nethercote
e2a97e3f4c Bug 496448: TraceVis TraceMonkey performance visualization, r=brendan 2009-06-16 09:30:01 +01:00
Jason Orendorff
52fe5a97ba Bug 497618 - Change JSString macros to methods. r=Waldo. 2009-06-10 20:29:44 -05:00
Andreas Gal
659a7a9b6c Implement oracle-based speculative fmod/fdiv/fmul demotion (474443, r=graydon,dvander). 2009-06-12 08:33:32 -07:00
David Mandelin
3db63853e3 Bug 496922: do upvars correctly when the function defining the upvar was called with extra args, r=brendan,gal 2009-06-09 11:49:53 -07:00
David Mandelin
344e868872 Bug 496251: use up-to-date typemap when getting upvar from trace entry native frame, r=gal 2009-06-08 10:48:18 -07:00
Andreas Gal
3882ad59b6 Merge. 2009-06-04 20:12:44 -07:00
Andreas Gal
7d8559c586 Backed out changeset 2ad658e9f42a (bug 495958, re-opened). 2009-06-04 20:12:31 -07:00
David Mandelin
80a97eb5d3 Bug 496319: correctly unpack FrameInfo::argc, r=mrbkap 2009-06-04 15:19:59 -07:00
Andreas Gal
9ded7b0c3e Capture missing globals from current environment, not the tree entry map when extending a side exit (495958, r=graydon). 2009-06-03 12:43:38 -07:00
David Mandelin
a90aee411c Bug 494269: trace JSOP_LAMBDA_FC, r=brendan,gal 2009-06-03 11:19:20 -07:00
David Mandelin
5baa8fe491 Bug 495773: include trace entry JSStackFrame in upvar search, also remove obsolete union from FrameInfo, r=gal 2009-06-01 14:50:02 -07:00
David Mandelin
504424ebf3 Bug 495566: fix stack offset calculations for traces that start at top level, r=gal 2009-05-29 18:50:35 -07:00
David Mandelin
9af4ca2612 Bug 493512: correcting native stack navigation arithmetic, r=gal 2009-05-20 18:57:42 -07:00
Andreas Gal
0d2b989430 Update JSSLOT_ARRAY_COUNT when emitting array constructor code on trace (493255, r=jorendorff). 2009-05-18 15:56:11 -07:00
Andreas Gal
40284299a7 Fix compiler warning (493345, r=brendan). 2009-05-15 21:01:22 -07:00
Blake Kaplan
774d6933f4 Bug 492912 - Clean up the way that TraceRecorder::elem interacts with the rest of the world. r=gal 2009-05-15 15:41:41 -07:00
David Mandelin
112ce8b24b Bug 458838: enable tracing of upvar accesses that go outside the current trace to interpreter state, r=gal 2009-05-11 18:05:44 -07:00
Andreas Gal
4778325174 Ensure that cx->interpState is always accurate by maintaing a stack (490776, r=jorendorff). 2009-05-11 17:25:38 -07:00
David Mandelin
d6c2eeddf4 Bug 491620: make traces specialized for argc, r=gal 2009-05-11 15:57:28 -07:00
Andreas Gal
5f2681ef36 Bug 489836 - TM: chiptune causes Assertion failure: \!ti->typeMap.matches(ti_other->typeMap) 2009-05-11 12:20:41 -04:00
jorendorff
93c6d226d3 Record all calls to native functions (487134, r=gal, brendan). 2009-05-05 14:26:06 -07:00
Jim Blandy
56af1e088d Bug 488018: Propagate errors from tracer to interpreter. r=igor
Rename JSMonitorRecordingStatus to JSRecordingStatus.  The JSMRS_
prefix becomes JSRS_, accordingly.

Make 'record_' functions return JSRecordingStatus, not bool.  'false'
becomes 'JSRS_STOP'; 'true' becomes 'JSRS_CONTINUE'.  Since subsequent
patches will begin to use more than two values (the next assigns
meaning to JSRS_IMACRO), take care to propagate values to callers
accurately.

Define a new recording status, JSRS_ERROR.  Return it from recording
functions when appropriate.  Check for it at appropriate bottlenecks
in tracer and interpreter.

ABORT_TRACE becomes one of:
. ABORT_TRACE, for when we're simply aborting the recording process
. ABORT_TRACE_ERROR, for aborting due to an error
. ABORT_TRACE_CV, for producing an error message and returning something
  other than JSRS_STOP --- some contexts require boolean values.

Conditionally provide an alternative definition for the
JSRecordingStatus type that cannot be converted to 'bool', so that we
can use the C++ compiler to catch improperly converted code.

Use recording function return value for imacro invocation.  Eliminate
the JSFRAME_IMACRO_START frame flag.  Instead, return JSRS_IMACRO
directly from recording functions.
2009-04-30 17:30:46 -07:00
Andreas Gal
cafa156d52 We don't cache access to shared properties in the property cache (490666, r=igor,brendan). 2009-04-30 15:52:13 -07:00
Andreas Gal
776395aee0 Eliminate test_property_cache_direct_hit (490370, r=jorendorff). 2009-04-27 16:01:52 -07:00
Andreas Gal
a89bbaad23 Stay on trace when reading holes from dense arrays (489899, r=brendan). 2009-04-24 16:28:21 -07:00
Andreas Gal
a51f22dbdf Need an API exposed to control code cache size (474497, r=bent,brendan, sr=mrbkap). 2009-04-22 16:52:59 -07:00
Andreas Gal
c5c7bd2f6c Trace getting String.length (484332, r=brendan). 2009-04-21 18:56:24 -07:00
Jeff Walden
c9680230c4 Bug 473117 - Rejigger how guards use side exits, and fix an erroneous comment. r=graydon 2009-04-18 16:47:23 -07:00
Jason Orendorff
4dd9ad09ef Bug 487845 - TM: After deep-bailing, we can lirbuf->rewind() and then return to a dead code page. r=gal.
--HG--
extra : rebase_source : b7de71b526d45c7caed1982fba80c65763a0a9c6
2009-04-15 09:47:02 -05:00
Andreas Gal
c11974bb60 Backed out changeset 4c157cfe2289 (bug 487845). 2009-04-14 21:28:40 -07:00
Jason Orendorff
0616f91d10 Bug 487845 - TM: After deep-bailing, we can lirbuf->rewind() and then return to a dead code page. r=gal. 2009-04-14 08:45:37 -05:00
Brendan Eich
26a5b7f3fc Bug 487563 - Crash [@ js_Interpret] (r=mrbkap). 2009-04-09 18:44:54 -07:00
Jason Orendorff
b5d4ba583e Bug 487676 - Nesting deep-aborting trace calls don't work. r=gal.
--HG--
extra : rebase_source : 436164485bd5e981e5ae8997eed2c371f3ecd77b
2009-04-09 18:07:00 -05:00
Jason Orendorff
a613c0d579 Backout changeset 143e997c858e (bug 484693) because it caused crashes on Mac tinderboxen. 2009-04-07 17:07:11 -05:00
Graydon Hoare
163d74068e Bug 484693 - Remove uses of alloca, r=gal. 2009-04-07 13:47:36 -07:00
Brendan Eich
ec9f3ae4a0 Another static analysis patch (I hope the last; for 452498). 2009-04-05 21:51:42 -07:00
Brendan Eich
962b187fe5 upvar2, aka the big one take 2 (452598, r=mrbkap). 2009-04-05 21:17:22 -07:00
Andreas Gal
fa2e6466b2 Bug 479110 - TM: avoid frequent mismatch exits. r=brendan 2009-04-04 17:23:34 -04:00
Andreas Gal
3c19b8b7fc Merge. 2009-04-04 10:15:04 -07:00
Andreas Gal
706120c0fb Backed out changeset 972c44aa9d1f (bug 452598). 2009-04-04 10:14:52 -07:00
Brendan Eich
7485baa00c Merge. 2009-04-04 10:07:44 +01:00
Brendan Eich
5f4d9ff474 upvar2, aka the big one (452598, r=mrbkap). 2009-04-04 10:05:49 +01:00
Andreas Gal
8787072e96 Backed out changeset b512be855093 (bug 484693). See bug for details. 2009-04-04 01:06:04 -07:00
Graydon Hoare
a2d4d5a779 Bug 484693 - Remove uses of alloca, r=gal. 2009-04-03 16:30:46 -07:00
Andreas Gal
a4f3bf56a6 Don't try to abort tracing after a successful compilation (486436, r=brendan). 2009-04-02 14:47:57 -07:00
Graydon Hoare
5689ffc3f8 Bug 474529 - Avoid artificial OOM conditions, r=gal. 2009-03-31 20:51:01 -07:00
Andreas Gal
78ced670dd specialize code for a specific global object, not just a global object shape (480905, r=graydon). 2009-03-31 11:49:44 -07:00
Andreas Gal
bd810801e3 maintain globalShape in VMFragment only (486049, r=graydon). 2009-03-31 11:43:30 -07:00
Igor Bukanov
a8094a7903 bug 437325 - JSThread is no longer shared between JSRuntime instances. r=brendan 2009-03-24 13:07:35 +01:00
Jeff Walden
136daf85e6 Bug 484495 - new String(obj) asserts when tracing. r=brendan, r=gal 2009-03-22 12:49:15 -07:00
Igor Bukanov
f28d80b499 Backed out changeset e117c22cc1d1 - the landed patch for bug 437325 has a shutdown leak. 2009-03-22 10:15:27 +01:00
Igor Bukanov
a61176553e bug 437325 - JSThread is no longer shared between JSRuntime instances. r=brendan 2009-03-22 10:07:14 +01:00
Andreas Gal
47a36bca0d Property close loops even in the presence of partially constant loop conditions (482800, r=brendan). 2009-03-21 01:07:51 -07:00
Andreas Gal
43feef625d Support calling arbitrary JSFastNatives from trace (463238, r=brendan). 2009-03-20 18:52:11 -07:00
Vladimir Vukicevic
d317d0075d b=480796; detect whether ARM chip has VFP and/or v6t2 instructions; r=gal 2009-03-20 15:53:33 -07:00
Andreas Gal
65c3cf58a6 Backed out changeset e71cb3993380 (bug 479110). 2009-03-17 21:50:57 -07:00
Andreas Gal
771582b7b4 Extend tree when unboxing returns a different type (479110, r=jwalden). 2009-03-17 20:00:10 -07:00
Andreas Gal
1af13483ea Eliminate separate global frame and merge it with InterpState (482377, r=brendan). 2009-03-17 17:29:58 -07:00
Andreas Gal
7da88f37bd Backed out changeset 186ae511d5f2 (static analysis annotation only, no bug). 2009-03-17 15:55:06 -07:00
Andreas Gal
43debacfae Remove unnecessary JS_REQUIRES_STACK from guardNotGlobalObject (rs=brendan). 2009-03-17 15:44:50 -07:00
Andreas Gal
210b2d31e2 Try harder to trace array access with non-int / non-string index (478525, r=brendan). 2009-03-17 15:39:42 -07:00
Jim Blandy
debdb32ef3 Bug 480132: Clone lexical blocks only when needed. r=igor
Terminology:

A "script block" is an object of class Block allocated by the byte
compiler and associated with a script.  Script blocks are never
modified, and may be used as a prototype for a "closure block":

A "closure block" is an object of class Block that holds variables
that have been closed over (although we actually leave the variables
on the stack until we leave their dynamic scope).  A closure block is
a clone of a script block (its prototype is a script block).

Adjust the meanings of fp->blockChain and fp->scopeChain:

  fp->blockChain is always the innermost script block in whose static
  scope we're executing.

  fp->scopeChain is the current scope chain, including 'call' objects
  and closure blocks for those function calls and blocks in whose
  static scope we are currently executing, and 'with' objects for with
  statements; the chain is typically terminated by a global object.
  However, as an optimization, the young end of the chain omits block
  objects we have not yet needed to clone.

Closures need fully reified scope chains, so have js_GetScopeChain
reify any closure blocks missing from the young end of fp->scopeChain
by cloning script blocks as needed from fp->blockChain.  Thus, if we
never actually close over a particular block, we never place a closure
block for it on fp->scopeChain.

Have JSOP_ENTERBLOCK and JSOP_LEAVEBLOCK always keep fp->blockChain
current.  When JSOP_LEAVEBLOCK pops a block from fp->blockChain that
has been cloned on fp->scopeChain, pop fp->scopeChain as well.

Remove the JSFRAME_POP_BLOCKS flag, as it is no longer needed.

Ensure that the JIT won't have to create closure blocks or call
js_PutBlockObject; it can't handle those things yet.  Note our current
script block when we begin recording.  Abort recording if we leave
that block; we can't tell in advance whether it will need to be "put"
in future trace invocations.  Leave trace if we call js_GetScopeChain
while in the static scope of lexical blocks.  Remove JIT tests based
on JSFRAME_POP_BLOCKS.

Verify that generators capture the correct value for blockChain.

Add a constructor to JSAutoTempValueRooter for rooting JSObject
pointers.
2009-03-16 09:55:06 -07:00
Jim Blandy
74847db9cd Back out 480132: orange on Linux (http://tinderbox.mozilla.org/showlog.cgi?log=TraceMonkey/1237017748.1237029269.2403.gz&fulltext=1) 2009-03-14 08:19:58 -07:00
Jim Blandy
bed3611385 Bug 480132: Clone lexical blocks only when needed. r=igor
Terminology:

A "script block" is an object of class Block allocated by the byte
compiler and associated with a script.  Script blocks are never
modified, and may be used as a prototype for a "closure block":

A "closure block" is an object of class Block that holds variables
that have been closed over (although we actually leave the variables
on the stack until we leave their dynamic scope).  A closure block is
a clone of a script block (its prototype is a script block).

Adjust the meanings of fp->blockChain and fp->scopeChain:

  fp->blockChain is always the innermost script block in whose static
  scope we're executing.

  fp->scopeChain is the current scope chain, including 'call' objects
  and closure blocks for those function calls and blocks in whose
  static scope we are currently executing, and 'with' objects for with
  statements; the chain is typically terminated by a global object.
  However, as an optimization, the young end of the chain omits block
  objects we have not yet needed to clone.

Closures need fully reified scope chains, so have js_GetScopeChain
reify any closure blocks missing from the young end of fp->scopeChain
by cloning script blocks as needed from fp->blockChain.  Thus, if we
never actually close over a particular block, we never place a closure
block for it on fp->scopeChain.

Have JSOP_ENTERBLOCK and JSOP_LEAVEBLOCK always keep fp->blockChain
current.  When JSOP_LEAVEBLOCK pops a block from fp->blockChain that
has been cloned on fp->scopeChain, pop fp->scopeChain as well.

Remove the JSFRAME_POP_BLOCKS flag, as it is no longer needed.

Ensure that the JIT won't have to create closure blocks or call
js_PutBlockObject; it can't handle those things yet.  Note our current
script block when we begin recording.  Abort recording if we leave
that block; we can't tell in advance whether it will need to be "put"
in future trace invocations.  Leave trace if we call js_GetScopeChain
while in the static scope of lexical blocks.  Remove JIT tests based
on JSFRAME_POP_BLOCKS.

Verify that generators capture the correct value for blockChain.

Add a constructor to JSAutoTempValueRooter for rooting JSObject
pointers.
2009-03-14 00:58:27 -07:00