David Anderson
|
98306ccb74
|
Merge.
|
2008-08-27 16:09:17 -07:00 |
|
David Anderson
|
d0d64bbeff
|
Added LIR_qior/pior. Fixed more AMD64 page jumping bugs. Fixed some other AMD64 usage bugs in jstracer.
|
2008-08-27 16:08:59 -07:00 |
|
Andreas Gal
|
e8fcb3bd37
|
Merge.
|
2008-08-27 14:48:59 -07:00 |
|
Andreas Gal
|
3fb237f38c
|
Loops with a single iteration start tracing, but never complete since we immediately walk past the loop edge after the first iteration. At least try to complete the loop around it by walking past such thin inner loops when compiling the outer loop (452362).
|
2008-08-27 14:46:57 -07:00 |
|
Brendan Eich
|
4842b435c5
|
Oops, not enough copying...
|
2008-08-27 13:54:05 -07:00 |
|
Brendan Eich
|
510ec8bdce
|
Fix a bug Jesse reported: insufficient copy/paste from record_JSOP_CALL to record_JSOP_NEW.
|
2008-08-27 13:52:46 -07:00 |
|
Brendan Eich
|
9cb246a8fc
|
Fix another broken assert (452372).
|
2008-08-27 01:10:44 -07:00 |
|
Andreas Gal
|
7df899a9f5
|
Merge.
|
2008-08-26 21:46:21 -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 |
|
Brendan Eich
|
ae9605be38
|
Correct (but sadly a bit slower) property cache guarding (452140, r=shaver).
|
2008-08-26 21:26:10 -07:00 |
|
Brendan Eich
|
e326b78b55
|
Added knownNative for num_toString (bug 452340, r=dvander).
|
2008-08-26 20:00:11 -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 |
|
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 |
|
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
|
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 |
|
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 |
|
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 |
|
Andreas Gal
|
80088cd777
|
Fix warning about signed/unsigned comparison.
|
2008-08-21 11:40:56 -07: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
|
fd148818e1
|
Add split built-in, also sort knownNatives for my own sanity (should sort builtins.tbl and jsbuiltins.cpp by function while at it, but too tired).
|
2008-08-21 04:13:07 -07:00 |
|
Brendan Eich
|
147018b013
|
Merge, plus restore TraceRecorder::activeCallOrGlobalSlot.
|
2008-08-21 03:51:37 -07:00 |
|
Brendan Eich
|
9cd8e5a539
|
Upvar, v0.1 (limited to looking up from eval in a function, to the function's args and vars).
|
2008-08-21 03:47:33 -07:00 |
|
shaver@mozilla.org
|
35915d94ea
|
disable tracing with active call object pending perf fix
|
2008-08-21 03:19:17 -07:00 |
|
Andreas Gal
|
d9acfb10f0
|
Remove FastEval, broken by design (r=brendan).
|
2008-08-21 03:13:31 -07:00 |
|
Brendan Eich
|
324b9c7f4e
|
Remove lambda-replace built-in, it's not safe to record into a nested js_Interpret.
|
2008-08-21 01:39:16 -07:00 |
|
Andreas Gal
|
2e767b124c
|
Convert undefined to NULL on tree entry if the tree wants an object type.
|
2008-08-21 01:13:07 -07:00 |
|
shaver@mozilla.org
|
ed7fab1440
|
trace |new Array|, via the magic of copy and paste
|
2008-08-21 00:50:20 -07:00 |
|
Brendan Eich
|
321ae383ba
|
Merge.
|
2008-08-21 00:47:51 -07:00 |
|
Andreas Gal
|
fcd8670fec
|
If we expect a concrete value but see an undefined come into the trace, convert undefined to the concerete value.
|
2008-08-21 00:43:45 -07:00 |
|
Brendan Eich
|
9b56ca4984
|
Tidy up globalShape mismatch reporting.
|
2008-08-21 00:19:04 -07:00 |
|
Andreas Gal
|
e26e3234f4
|
Merge.
|
2008-08-20 23:40:24 -07:00 |
|