Commit Graph

2991 Commits

Author SHA1 Message Date
Andreas Gal
4f51cac33e Add test case for decaying inner loops that sometimes are not executed at all since the condition fails pre-entry. 2008-08-26 21:45:53 -07:00
Andreas Gal
418b15eadd Flag a side exit as loop exit only if the underlying loop condition actually targets the current loop header, otherwise treat it as a branch exit. This is required for inner loops where we unroll the first iteration but the loop condition immediately fails. If we report such exits as loop exits, no branch gets ever attached to them and we keep side-exiting over and over. 2008-08-26 21:43:59 -07:00
David Anderson
357f1d4e64 Test case for bug 452340. 2008-08-26 20:02:59 -07:00
Brendan Eich
e326b78b55 Added knownNative for num_toString (bug 452340, r=dvander). 2008-08-26 20:00:11 -07:00
Robert Sayre
4bd48080dc Add some tests for loops that should exit trace. 2008-08-26 18:46:50 -04:00
Andreas Gal
c4af944fe9 Merge. 2008-08-26 13:26:05 -07:00
Andreas Gal
40796f4154 For global code assume that no slots are below the current frame. 2008-08-26 13:25:40 -07:00
Brendan Eich
7adb43eaa6 Align test order with mozilla-central to avoid merge conflicts (I hope). 2008-08-26 12:50:01 -07:00
Andreas Gal
795f7ae426 Merge. 2008-08-26 01:01:24 -07:00
Andreas Gal
eb0c261390 When extending an outer tree from its nesting guard, the guard we actually exited on determines the typemap for the current frame and all inlined frames, whereas the nesting guard is consulted for all type information frames below the current frame. 2008-08-26 01:00:53 -07:00
Brendan Eich
a7cdb3ddb2 Fix warning. 2008-08-25 23:22:20 -07:00
Andreas Gal
4bb68b852c Rename lr->anchor in AttemptToExtendTree() 2008-08-25 23:19:00 -07:00
Andreas Gal
24b663fd61 Determine the tree we have to grow from the side exit we attach to in AttemptToExtendTree() instead of passing the parameter in. 2008-08-25 23:17:38 -07:00
Brendan Eich
43b25b3c09 Rename gcDontBlock to runningJittedCode, and assert it's false on entry to js_Interpret (for 451657, but not the fix, just prolog). 2008-08-25 23:08:21 -07:00
Andreas Gal
e86ad8730d Merge. 2008-08-25 22:11:23 -07:00
Andreas Gal
d00742c962 Add an assert checking that celldepth is zero upon loop exit side exits and better verbose diagnostic for trace exits. 2008-08-25 22:11:04 -07:00
Andreas Gal
c86c7d09fb Generate an always taken LOOP_EXIT guard when an inner loop encounters a break statement. When returning from such an inner tree, make sure the recorder resumes at the target address of the goto the break was emitted as, otherwise the outer tree confuses the location with a break in its own loop. Disabled outerlining (this patch subsumes it, but we might enable it later since it might handle some cases more efficiently, currently off for debugging through). fasta currently asserts, and fannkuch hits a perf regression. These are probably bugs this change exposed. 2008-08-25 17:24:49 -07:00
Blake Kaplan
48d275806e Bug 451785 - Trace == and != involving booleans. r=gal 2008-08-25 16:58:18 -07:00
Blake Kaplan
298caaa80f Bug 451782 - Trace Math.ceil. r=brendan 2008-08-25 16:54:02 -07:00
Brendan Eich
70173fadfb Merge. 2008-08-25 16:38:38 -07:00
Brendan Eich
9d19499490 Oops, forgot to make Print set *vp to undefined when I made it a FastNative. 2008-08-25 16:36:57 -07:00
David Anderson
e4ef2c3451 Merge. 2008-08-25 16:06:17 -07:00
Brendan Eich
b385e456d9 Fixed cases where argc varied between recording time and execution time (bug 451727). 2008-08-25 16:04:10 -07:00
Andreas Gal
99505fce2e Merge. 2008-08-25 15:18:12 -07:00
Andreas Gal
fc5667ef13 Split closeLoop() and compile() and add endLoop(), which omits an always-exit guard (will be used for break statements.) 2008-08-25 15:17:46 -07:00
Robert Sayre
7fd9b9c91b Merge 2008-08-25 17:38:42 -04:00
Andreas Gal
8a6d79d6b6 Annotate gotos that are emitted for break statements with SRC_BREAK (452122, r=mrbkap). 2008-08-25 14:34:26 -07:00
Robert Sayre
8ce085e0c6 Add test of (attempted) trace recording with an active call object 2008-08-25 17:12:41 -04:00
Brendan Eich
eb8bbd11d2 Cope with sub-optimal JSOP_FORNAME instead of JSOP_FORVAR inside a with, or similar (eval-created locals; 451806). 2008-08-24 08:18:17 -07:00
Andreas Gal
e944751f2e Merge. 2008-08-23 15:13:55 -07:00
Andreas Gal
71b12b53fe Enable outlining. If a loop doesn't connect back to its own header (i.e. break inside the loop), see if the outer loop path can be attached to the inner loop (outerlining). Added test case (failure mode is high number of activated traces in trace-test.js). This test exposes a regression in access-fannkuch. Committing so we can diagnose that separately. 2008-08-23 15:11:38 -07:00
Brendan Eich
d28554f3cc Remove over-eager gvar optimization for JSOP_DEFFUN (451678, r=shaver). 2008-08-22 18:07:32 -07:00
David Anderson
04ab3326c8 Merge. 2008-08-22 17:36:37 -07:00
David Anderson
e88386ec38 Fixed bogus assertion in debug mode. 2008-08-22 17:32:45 -07:00
Andreas Gal
f5462e1c0a Merge. 2008-08-22 17:32:01 -07:00
Andreas Gal
454b252c63 If the outer loop has a value in a float register but the inner tree expects an int, tell the oracle that we want doubles in that slot in the inner tree and trash the inner tree so it gets re-compiled with a matching layout (451673). 2008-08-22 17:31:23 -07:00
Andreas Gal
2fb04231fe Allocate nanojit code cache incrementally (bug 443111). 2008-08-22 16:37:37 -07:00
David Anderson
36ea645fbe Bug 451743 - On x86 processors, only use SSE2 if the processor supports it, otherwise default back to x87 FPU (r=gal, sr=mrbkap) 2008-08-22 12:21:27 -07:00
David Anderson
f0606ee551 Fixed x86_64 build issue (accidentally trying to build 32-bit nanojit). 2008-08-21 18:07:26 -07:00
Andreas Gal
1b29fd53e4 Merge. 2008-08-21 16:50:57 -07:00
Andreas Gal
666aeff29e Fix builtins that were accidentally flagged as CSE/FOLD but really aren't (Math.random i.e.) 2008-08-21 16:49:51 -07:00
Andreas Gal
7da39648cf Cleanup spacing in builtins.tbl 2008-08-21 16:35:05 -07:00
Blake Kaplan
26c3cd4ea9 Fixed js_String_p_split passing in an undersized array. 2008-08-21 15:17:47 -07:00
Andreas Gal
2563d2bd3d Merge. 2008-08-21 11:42:03 -07:00
Andreas Gal
80088cd777 Fix warning about signed/unsigned comparison. 2008-08-21 11:40:56 -07:00
Robert Sayre
c6a7088bae Bug 451580, fix string split assertions and return values. Tests fail with JIT on for other reasons, it seems. r=shaver 2008-08-21 14:06:42 -04:00
Andreas Gal
ee5f8e441f Merge. 2008-08-21 05:21:37 -07:00
Andreas Gal
8f6bbaaa5f Abort recording when an error occurs. 2008-08-21 05:21:01 -07:00
Brendan Eich
d62ee36613 Fix script->owner maintenance; also fix warning. 2008-08-21 05:04:20 -07:00
Brendan Eich
b1e05f4fc9 JSThread is not zeroed when allocated, grrr. 2008-08-21 04:51:46 -07:00