Stop precisely tracking arguments and locals beyond a 1000 variable threshold, bug 735974. r=dvander
authorBrian Hackett <bhackett1024@gmail.com>
Sun, 15 Apr 2012 21:38:53 -0700
changeset 95055 67ca169a52d24cb370ebb01bc03eb16dc8453652
parent 95054 4597dcf0842ab6040039ca3c7eeab126a341ec98
child 95056 07f55ad76d8fe1368332f2082d4f710d8be11419
push id886
push userlsblakk@mozilla.com
push dateMon, 04 Jun 2012 19:57:52 +0000
treeherdermozilla-beta@bbd8d5efd6d1 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersdvander
bugs735974
milestone14.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Stop precisely tracking arguments and locals beyond a 1000 variable threshold, bug 735974. r=dvander
js/src/jsanalyze.h
--- a/js/src/jsanalyze.h
+++ b/js/src/jsanalyze.h
@@ -1137,17 +1137,17 @@ class ScriptAnalysis
     }
 
     /*
      * Whether we distinguish different writes of this variable while doing
      * SSA analysis. Escaping locals can be written in other scripts, and the
      * presence of NAME opcodes which could alias local variables or arguments
      * keeps us from tracking variable values at each point.
      */
-    bool trackSlot(uint32_t slot) { return !slotEscapes(slot) && canTrackVars; }
+    bool trackSlot(uint32_t slot) { return !slotEscapes(slot) && canTrackVars && slot < 1000; }
 
     const LifetimeVariable & liveness(uint32_t slot) {
         JS_ASSERT(script->compartment()->activeAnalysis);
         JS_ASSERT(!slotEscapes(slot));
         return lifetimes[slot];
     }
 
     /*