Title: [173244] trunk/Source/_javascript_Core
Revision
173244
Author
fpi...@apple.com
Date
2014-09-03 17:28:50 -0700 (Wed, 03 Sep 2014)

Log Message

CallEdgeProfile::visitWeak() shouldn't attempt to despecify empty profiles
https://bugs.webkit.org/show_bug.cgi?id=136511

Reviewed by Geoffrey Garen.

* bytecode/CallEdgeProfile.cpp:
(JSC::CallEdgeProfile::worthDespecifying):
(JSC::CallEdgeProfile::visitWeak):
(JSC::CallEdgeProfile::mergeBack):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (173243 => 173244)


--- trunk/Source/_javascript_Core/ChangeLog	2014-09-04 00:26:42 UTC (rev 173243)
+++ trunk/Source/_javascript_Core/ChangeLog	2014-09-04 00:28:50 UTC (rev 173244)
@@ -1,3 +1,15 @@
+2014-09-03  Filip Pizlo  <fpi...@apple.com>
+
+        CallEdgeProfile::visitWeak() shouldn't attempt to despecify empty profiles
+        https://bugs.webkit.org/show_bug.cgi?id=136511
+
+        Reviewed by Geoffrey Garen.
+
+        * bytecode/CallEdgeProfile.cpp:
+        (JSC::CallEdgeProfile::worthDespecifying):
+        (JSC::CallEdgeProfile::visitWeak):
+        (JSC::CallEdgeProfile::mergeBack):
+
 2014-09-03  David Kilzer  <ddkil...@apple.com>
 
         REGRESSION (r167325): (null) entry added to Xcode project file when JSBoundFunction.h was removed

Modified: trunk/Source/_javascript_Core/bytecode/CallEdgeProfile.cpp (173243 => 173244)


--- trunk/Source/_javascript_Core/bytecode/CallEdgeProfile.cpp	2014-09-04 00:26:42 UTC (rev 173243)
+++ trunk/Source/_javascript_Core/bytecode/CallEdgeProfile.cpp	2014-09-04 00:28:50 UTC (rev 173244)
@@ -95,17 +95,23 @@
     if (m_closuresAreDespecified)
         return false;
     
-    if (!!m_primaryCallee && !JSC::worthDespecifying(m_primaryCallee))
-        return false;
+    bool didSeeEntry = false;
     
+    if (!!m_primaryCallee) {
+        didSeeEntry = true;
+        if (!JSC::worthDespecifying(m_primaryCallee))
+            return false;
+    }
+    
     if (m_otherCallees) {
         for (unsigned i = m_otherCallees->m_processed.size(); i--;) {
+            didSeeEntry = true;
             if (!JSC::worthDespecifying(m_otherCallees->m_processed[i].callee()))
                 return false;
         }
     }
     
-    return true;
+    return didSeeEntry;
 }
 
 void CallEdgeProfile::visitWeak()
@@ -131,7 +137,7 @@
         }
         
         Vector<CallSpectrum::KeyAndCount> list = newSpectrum.buildList();
-        ASSERT(list.size());
+        RELEASE_ASSERT(list.size());
         m_primaryCallee = list.last().key;
         m_numCallsToPrimary = list.last().count;
         
@@ -207,8 +213,8 @@
 {
     ConcurrentJITLocker locker(m_lock);
     
-    ASSERT(m_otherCallees);
-    ASSERT(m_otherCallees->m_temporarySpectrum);
+    RELEASE_ASSERT(m_otherCallees);
+    RELEASE_ASSERT(m_otherCallees->m_temporarySpectrum);
     
     if (!!m_primaryCallee)
         m_otherCallees->m_temporarySpectrum->add(m_primaryCallee, m_numCallsToPrimary);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to