Commit Graph

76 Commits

Author SHA1 Message Date
Brian Hackett
475556195e [INFER] Fix warnings. 2011-08-15 11:41:52 -07:00
Brian Hackett
06268c9f02 Merge MC -> JM 2011-08-14 19:51:16 -07:00
Shu-yu Guo
bf65fbecb4 [INFER] Fold integer values across TOID. r=bhackett 2011-08-10 16:06:36 -07:00
Shu-yu Guo
552db1b86a [INFER] Have DUP/DUP2 propagate correct SSA values. r=bhackett 2011-08-10 12:30:34 -07:00
Brian Hackett
2b67b73ad5 [INFER] Watch out for incorrect SSA use chains in scripts where LOCAL ops alias stack values, bug 677635. 2011-08-09 19:02:24 -07:00
Brian Hackett
beb3e0531e [INFER] Reduce inference-related script overhead, bug 674609. 2011-07-28 09:16:53 -07:00
Jason Orendorff
75a71f51e8 Merge from mozilla-central to jsdbg2 branch. 2011-07-27 18:23:16 -05:00
Shu-yu Guo
263a4c38d2 [INFER] Fix more assertions, bug 673705. r=bhackett
--HG--
rename : js/src/jit-test/tests/basic/bug673705.js => js/src/jit-test/tests/basic/bug673705-1.js
2011-07-26 14:16:59 -07:00
Shu-yu Guo
bd2fa16e79 [INFER] Fix assertion failure, bug 673705. r=bhackett 2011-07-25 11:02:44 -07:00
Shu-yu Guo
1704d2eeb1 [INFER] Fix bug in previous fix for bug 673341. r=bhackett 2011-07-22 12:47:16 -07:00
Shu-yu Guo
8383c08735 [INFER] Kill warning. 2011-07-22 12:15:15 -07:00
Shu-yu Guo
4ed56d317b [INFER] Fix liveness analysis for try block, bug 673341. r=bhackett 2011-07-22 11:53:18 -07:00
Brian Hackett
dda30fa4b2 Merge MC -> JM 2011-07-21 18:53:37 -07:00
Jason Orendorff
ca0b6c2b6b Bug 648175 - Remove JSOP_FOR*. Second second landing, to coin a phrase. r=dvander.
--HG--
extra : rebase_source : f893091e91a5b409c38ba08ddccfa0a6aa0a92c8
2011-07-19 11:00:43 -05:00
Brian Hackett
4126309311 [INFER] Fix busted jstests. 2011-07-19 07:21:33 -07:00
Brian Hackett
b69580a796 [INFER] Decompose property inc/dec ops for JM and TI, bug 647624. 2011-07-16 08:25:22 -07:00
Shu-yu Guo
8453d326d9 Add swap and pick support to TI. bug 668353. r=bhackett 2011-07-05 22:54:19 -07:00
Brian Hackett
9e5b330883 [INFER] Watch for non-closed local names aliased by XML QNAME opcodes, bug 665812. 2011-07-02 07:08:55 -07:00
Brian Hackett
b8e377a445 [INFER] Mark locals/args which are aliased by NAME opcodes as escaping, bug 651966. 2011-06-08 17:35:11 -07:00
Jason Orendorff
6367a9c217 Automatically turn debug mode on/off when adding/removing debuggees.
This allows most of the tests to run without the -d command-line flag.

Now a compartment is in debug mode if
 * JSD1 wants debug mode on, thanks to a JS_SetDebugMode* call; OR
 * JSD2 wants debug mode on, because a live Debug object has a debuggee
   global in that compartment.

Since this patch only adds the second half of the rule, JSD1 should be
unaffected.

The new rule has three issues:

1. When removeDebuggee is called, it can cause debug mode to be turned
   off for a compartment. If any scripts from that compartment are on
   the stack, and the methodjit is enabled, returning to those stack
   frames will crash.

2. When a Debug object is GC'd, it can cause debug mode to be turned off
   for one or more compartments. This causes the same problem with
   returning to deleted methodjit code, but the fix is different: such
   Debug objects simply should not be GC'd.

3. Setting .enabled to false still does not turn off debug mode
   anywhere, so it does not reduce overhead as much as it should.

A possible fix for issue #1 would be to make such removeDebuggee calls
throw; a different possibility is to turn off debug mode but leave all
the scripts alone, accepting the performance loss (as we do for JSD1 in
JSCompartment::setDebugModeFromC).  The fix to issues #2 and #3 is to
tweak the rule--and to tweak the rule for Debug object GC-reachability.

--HG--
rename : js/src/jit-test/tests/debug/Debug-ctor.js => js/src/jit-test/tests/debug/Debug-ctor-01.js
2011-06-02 21:58:46 -05:00
Brian Hackett
621ab68f21 [INFER] Optimize arguments accesses, bug 658638. 2011-05-26 12:28:19 -07:00
Brian Hackett
1980510060 [INFER] Fix trap handling around loop heads, bug 659043, bug 659233. 2011-05-25 08:15:34 -07:00
Brian Hackett
24c7b0eb7c [INFER] Don't treat GETLOCAL as dead when followed by POP with incoming jumps, bug 658579. 2011-05-20 23:24:09 -07:00
Brian Hackett
79674e33bc [INFER] Audit uses of PC in analysis and inference for UntrapOpcode, bug 657975, bug 657979, bug 657984. 2011-05-19 10:09:17 -07:00
Brian Hackett
ea07081537 [INFER] Fixes for OOM handling, bug 657633. 2011-05-18 13:15:38 -07:00
Jeff Walden
d255c9a807 Bug 660438 - Update tracer for changed [[DefaultValue]] semantics to fall back for not-callable, not for not-primitive. r=luke 2011-05-31 11:10:19 -07:00
Brian Hackett
4b32973a89 [INFER] Fix memory leaks. 2011-05-15 23:32:21 -07:00
Brian Hackett
f4e191294e [INFER] Improved robustness and tracking of 'new' object properties across scripts, bug 653962. 2011-05-12 20:07:23 -07:00
Brian Hackett
efa5cac9d0 [INFER] Don't fold CALLPROP pushed value in SSA analysis, force out entries for popped values when returning from inlined calls, bug 653962. 2011-05-10 13:21:44 -07:00
Brian Hackett
a47edd60c2 [INFER] Allow call inlining and LICM to work together, bug 653962. 2011-05-05 13:59:29 -07:00
Brian Hackett
838352f9db Merge TM -> JM 2011-04-28 13:02:47 -07:00
Brian Hackett
f13ebb4bef [INFER] Analyses for eliminating integer overflow guards, bug 652520. 2011-04-27 23:28:54 -07:00
Brian Hackett
af83908117 [INFER] Propagate SSA stack eagerly to targets in switch and try blocks, bug 652646. 2011-04-26 14:32:52 -07:00
Brian Hackett
9ca69400c4 [INFER] Don't track SSA values for locals in scripts containing 'with', bug 652422. 2011-04-24 09:26:37 -07:00
Brian Hackett
6386e77480 [INFER] Allow empty SSA stack values for scripts with switch and try blocks, bug 652314. 2011-04-23 22:36:43 -07:00
Brian Hackett
43c276be4a [INFER] Bytecode SSA analysis, bug 650715. 2011-04-22 07:59:45 -07:00
Brian Hackett
2f7eb61a86 [INFER] Remove compound JSOP*PROP opcodes, bug 647626. 2011-04-19 15:24:09 -07:00
Brian Hackett
a6c4770037 [INFER] Add loop tail lifetimes when variables are killed in the middle of loops, bug 643805. 2011-04-19 06:39:49 -07:00
Brian Hackett
06a24a58ed [INFER] LICM and bounds check hoisting for x.length, bug 649693. 2011-04-16 06:54:01 -07:00
Brian Hackett
30b794a8a2 [INFER] Patch unsynced local types when expanding inline frames, bug 648567. 2011-04-08 17:57:58 -07:00
Brian Hackett
52950bca44 [INFER] Loop invariant code motion for array slot pointers, bug 618692. 2011-04-07 16:12:37 -07:00
Brian Hackett
ac1a9b0c9c [INFER] Always track active loop in liveness analysis, bug 643829. 2011-04-06 14:04:24 -07:00
Brian Hackett
4226ea1e6e [INFER] Array bounds check hoisting, cleanup, bug 618690. 2011-04-05 18:12:03 -07:00
Brian Hackett
aa6b5e0e2f [INFER] Check for heavyweight functions when deciding to inline, bug 645645. 2011-03-29 06:39:09 -07:00
Alon Zakai
2f4274045c Bug 644241, part 1 - Remove script stack quota. r=igor 2011-06-03 17:54:26 -07:00
Brian Hackett
02df7e9a1d [INFER] Wait for code to get hot before inlining calls, bug 639099. 2011-03-27 07:48:03 -07:00
Brian Hackett
74bba0be53 [INFER] Inline scripted calls, bug 639099. 2011-03-26 19:07:13 -07:00
Brian Hackett
c738c5d025 [INFER] Fold FrameState closed vars/args analysis into analyze::Script, bug 642569. 2011-03-20 08:23:27 -07:00
Brian Hackett
d639ada378 Merge TM -> JM 2011-03-09 09:58:49 -08:00
Brian Hackett
41091b1bb6 [INFER] Fix OOM handling in type inference, convert inference to runtime option, bug 637674. 2011-03-03 14:07:48 -08:00