Title: [245030] trunk/Source
Revision
245030
Author
rmoris...@apple.com
Date
2019-05-07 13:46:43 -0700 (Tue, 07 May 2019)

Log Message

WTF::BitVector should have an isEmpty() method
https://bugs.webkit.org/show_bug.cgi?id=197637

Reviewed by Keith Miller.

Source/_javascript_Core:

Just replaces some comparison of bitCount() to 0 by calls to isEmpty()

* b3/air/AirAllocateRegistersByGraphColoring.cpp:

Source/WTF:

* wtf/BitVector.cpp:
(WTF::BitVector::isEmptySlow const):
* wtf/BitVector.h:
(WTF::BitVector::isEmpty const):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (245029 => 245030)


--- trunk/Source/_javascript_Core/ChangeLog	2019-05-07 20:32:04 UTC (rev 245029)
+++ trunk/Source/_javascript_Core/ChangeLog	2019-05-07 20:46:43 UTC (rev 245030)
@@ -1,3 +1,14 @@
+2019-05-07  Robin Morisset  <rmoris...@apple.com>
+
+        WTF::BitVector should have an isEmpty() method
+        https://bugs.webkit.org/show_bug.cgi?id=197637
+
+        Reviewed by Keith Miller.
+
+        Just replaces some comparison of bitCount() to 0 by calls to isEmpty()
+
+        * b3/air/AirAllocateRegistersByGraphColoring.cpp:
+
 2019-05-07  Commit Queue  <commit-qu...@webkit.org>
 
         Unreviewed, rolling out r244978.

Modified: trunk/Source/_javascript_Core/b3/air/AirAllocateRegistersByGraphColoring.cpp (245029 => 245030)


--- trunk/Source/_javascript_Core/b3/air/AirAllocateRegistersByGraphColoring.cpp	2019-05-07 20:32:04 UTC (rev 245029)
+++ trunk/Source/_javascript_Core/b3/air/AirAllocateRegistersByGraphColoring.cpp	2019-05-07 20:46:43 UTC (rev 245030)
@@ -324,7 +324,7 @@
     void assignColors()
     {
         ASSERT(m_simplifyWorklist.isEmpty());
-        ASSERT(!m_spillWorklist.bitCount());
+        ASSERT(m_spillWorklist.isEmpty());
 
         // Reclaim as much memory as possible.
         m_interferenceEdges.clear();
@@ -669,7 +669,7 @@
                 assertInvariants();
             }
 
-            if (m_spillWorklist.bitCount()) {
+            if (!m_spillWorklist.isEmpty()) {
                 selectSpill();
                 changed = true;
                 ASSERT(m_simplifyWorklist.size() == 1);
@@ -678,7 +678,7 @@
 
         if (!ASSERT_DISABLED) {
             ASSERT(!m_simplifyWorklist.size());
-            ASSERT(!m_spillWorklist.bitCount());
+            ASSERT(m_spillWorklist.isEmpty());
             IndexType firstNonRegIndex = m_lastPrecoloredRegisterIndex + 1;
             for (IndexType i = firstNonRegIndex; i < m_degrees.size(); ++i)
                 ASSERT(hasBeenSimplified(i));
@@ -992,7 +992,7 @@
                 coalesce();
             else if (!m_freezeWorklist.isEmpty())
                 freeze();
-            else if (m_spillWorklist.bitCount())
+            else if (!m_spillWorklist.isEmpty())
                 selectSpill();
 
             if (traceDebug) {
@@ -999,7 +999,7 @@
                 dataLog("After Graph simplification iteration\n");
                 dumpWorkLists(WTF::dataFile());
             }
-        } while (!m_simplifyWorklist.isEmpty() || !m_worklistMoves.isEmpty() || !m_freezeWorklist.isEmpty() || m_spillWorklist.bitCount());
+        } while (!m_simplifyWorklist.isEmpty() || !m_worklistMoves.isEmpty() || !m_freezeWorklist.isEmpty() || !m_spillWorklist.isEmpty());
 
         assignColors();
     }

Modified: trunk/Source/WTF/ChangeLog (245029 => 245030)


--- trunk/Source/WTF/ChangeLog	2019-05-07 20:32:04 UTC (rev 245029)
+++ trunk/Source/WTF/ChangeLog	2019-05-07 20:46:43 UTC (rev 245030)
@@ -1,3 +1,15 @@
+2019-05-07  Robin Morisset  <rmoris...@apple.com>
+
+        WTF::BitVector should have an isEmpty() method
+        https://bugs.webkit.org/show_bug.cgi?id=197637
+
+        Reviewed by Keith Miller.
+
+        * wtf/BitVector.cpp:
+        (WTF::BitVector::isEmptySlow const):
+        * wtf/BitVector.h:
+        (WTF::BitVector::isEmpty const):
+
 2019-05-07  Brent Fulgham  <bfulg...@apple.com>
 
         Correct JSON parser to address unterminated escape character

Modified: trunk/Source/WTF/wtf/BitVector.cpp (245029 => 245030)


--- trunk/Source/WTF/wtf/BitVector.cpp	2019-05-07 20:32:04 UTC (rev 245029)
+++ trunk/Source/WTF/wtf/BitVector.cpp	2019-05-07 20:46:43 UTC (rev 245030)
@@ -181,6 +181,17 @@
     return result;
 }
 
+bool BitVector::isEmptySlow() const
+{
+    ASSERT(!isInline());
+    const OutOfLineBits* bits = outOfLineBits();
+    for (unsigned i = bits->numWords(); i--;) {
+        if (bits->bits()[i])
+            return false;
+    }
+    return true;
+}
+
 bool BitVector::equalsSlowCase(const BitVector& other) const
 {
     bool result = equalsSlowCaseFast(other);

Modified: trunk/Source/WTF/wtf/BitVector.h (245029 => 245030)


--- trunk/Source/WTF/wtf/BitVector.h	2019-05-07 20:32:04 UTC (rev 245029)
+++ trunk/Source/WTF/wtf/BitVector.h	2019-05-07 20:46:43 UTC (rev 245030)
@@ -235,6 +235,13 @@
             return bitCount(cleanseInlineBits(m_bitsOrPointer));
         return bitCountSlow();
     }
+
+    bool isEmpty() const
+    {
+        if (isInline())
+            return !cleanseInlineBits(m_bitsOrPointer);
+        return isEmptySlow();
+    }
     
     size_t findBit(size_t index, bool value) const
     {
@@ -453,6 +460,7 @@
     WTF_EXPORT_PRIVATE void excludeSlow(const BitVector& other);
     
     WTF_EXPORT_PRIVATE size_t bitCountSlow() const;
+    WTF_EXPORT_PRIVATE bool isEmptySlow() const;
     
     WTF_EXPORT_PRIVATE bool equalsSlowCase(const BitVector& other) const;
     bool equalsSlowCaseFast(const BitVector& other) const;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to