Title: [147933] trunk
Revision
147933
Author
fpi...@apple.com
Date
2013-04-08 10:48:28 -0700 (Mon, 08 Apr 2013)

Log Message

Source/_javascript_Core: REGRESSION(r146669): Assertion hit in JSC::DFG::SpeculativeJIT::fillSpeculateCell() running webgl tests
https://bugs.webkit.org/show_bug.cgi?id=114129
<rdar://problem/13594898>

Reviewed by Darin Adler.
        
The check to see if we need a cell check when simplifying a GetById or PutById needs to be hoisted to
above where we abstractly execute the instruction, since after we abstracting execute it, it will
seem like it no longer needs the cell check.

* dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):

LayoutTests: REGRESSION(r146669): Assertion hit in JSC::DFG::SpeculativeJIT::fillSpeculateCell() running webgl tests
https://bugs.webkit.org/show_bug.cgi?id=114129 and https://bugs.webkit.org/show_bug.cgi?id=90649
<rdar://problem/13594898> and <rdar://problem/11815727>

Reviewed by Darin Adler.
        
Unskip these tests because they give us DFG coverage and they are now passing.

* platform/mac/TestExpectations:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (147932 => 147933)


--- trunk/LayoutTests/ChangeLog	2013-04-08 17:46:55 UTC (rev 147932)
+++ trunk/LayoutTests/ChangeLog	2013-04-08 17:48:28 UTC (rev 147933)
@@ -1,3 +1,15 @@
+2013-04-08  Filip Pizlo  <fpi...@apple.com>
+
+        REGRESSION(r146669): Assertion hit in JSC::DFG::SpeculativeJIT::fillSpeculateCell() running webgl tests
+        https://bugs.webkit.org/show_bug.cgi?id=114129 and https://bugs.webkit.org/show_bug.cgi?id=90649
+        <rdar://problem/13594898> and <rdar://problem/11815727>
+
+        Reviewed by Darin Adler.
+        
+        Unskip these tests because they give us DFG coverage and they are now passing.
+
+        * platform/mac/TestExpectations:
+
 2013-04-08  Yi Shen  <max.hong.s...@gmail.com>
 
         Counter still gets incremented when counter-increment is set to none

Modified: trunk/LayoutTests/platform/mac/TestExpectations (147932 => 147933)


--- trunk/LayoutTests/platform/mac/TestExpectations	2013-04-08 17:46:55 UTC (rev 147932)
+++ trunk/LayoutTests/platform/mac/TestExpectations	2013-04-08 17:48:28 UTC (rev 147933)
@@ -844,10 +844,6 @@
 # https://bugs.webkit.org/show_bug.cgi?id=89845
 fast/forms/input-set-composition-scroll.html
 
-# https://bugs.webkit.org/show_bug.cgi?id=90649
-fast/canvas/webgl/tex-image-with-format-and-type.html
-fast/canvas/webgl/tex-sub-image-2d.html
-
 # https://bugs.webkit.org/show_bug.cgi?id=90706
 inspector/timeline/timeline-frames.html
 

Modified: trunk/Source/_javascript_Core/ChangeLog (147932 => 147933)


--- trunk/Source/_javascript_Core/ChangeLog	2013-04-08 17:46:55 UTC (rev 147932)
+++ trunk/Source/_javascript_Core/ChangeLog	2013-04-08 17:48:28 UTC (rev 147933)
@@ -1,3 +1,18 @@
+2013-04-08  Filip Pizlo  <fpi...@apple.com>
+
+        REGRESSION(r146669): Assertion hit in JSC::DFG::SpeculativeJIT::fillSpeculateCell() running webgl tests
+        https://bugs.webkit.org/show_bug.cgi?id=114129
+        <rdar://problem/13594898>
+
+        Reviewed by Darin Adler.
+        
+        The check to see if we need a cell check when simplifying a GetById or PutById needs to be hoisted to
+        above where we abstractly execute the instruction, since after we abstracting execute it, it will
+        seem like it no longer needs the cell check.
+
+        * dfg/DFGConstantFoldingPhase.cpp:
+        (JSC::DFG::ConstantFoldingPhase::foldConstants):
+
 2013-04-07  Oliver Hunt  <oli...@apple.com>
 
         Add bounds checking for WTF::Vector::operator[]

Modified: trunk/Source/_javascript_Core/dfg/DFGConstantFoldingPhase.cpp (147932 => 147933)


--- trunk/Source/_javascript_Core/dfg/DFGConstantFoldingPhase.cpp	2013-04-08 17:46:55 UTC (rev 147932)
+++ trunk/Source/_javascript_Core/dfg/DFGConstantFoldingPhase.cpp	2013-04-08 17:48:28 UTC (rev 147933)
@@ -152,6 +152,7 @@
                     break;
                 
                 bool needsWatchpoint = !m_state.forNode(child).m_currentKnownStructure.hasSingleton();
+                bool needsCellCheck = m_state.forNode(child).m_type & ~SpecCell;
                 
                 GetByIdStatus status = GetByIdStatus::computeFor(
                     globalData(), structure, codeBlock()->identifier(identifierNumber));
@@ -177,7 +178,7 @@
                     m_insertionSet.insertNode(
                         indexInBlock, SpecNone, StructureTransitionWatchpoint, codeOrigin,
                         OpInfo(structure), childEdge);
-                } else if (m_state.forNode(child).m_type & ~SpecCell) {
+                } else if (needsCellCheck) {
                     m_insertionSet.insertNode(
                         indexInBlock, SpecNone, Phantom, codeOrigin, childEdge);
                 }
@@ -216,6 +217,7 @@
                     break;
                 
                 bool needsWatchpoint = !m_state.forNode(child).m_currentKnownStructure.hasSingleton();
+                bool needsCellCheck = m_state.forNode(child).m_type & ~SpecCell;
                 
                 PutByIdStatus status = PutByIdStatus::computeFor(
                     globalData(),
@@ -240,7 +242,7 @@
                     m_insertionSet.insertNode(
                         indexInBlock, SpecNone, StructureTransitionWatchpoint, codeOrigin,
                         OpInfo(structure), childEdge);
-                } else if (m_state.forNode(child).m_type & ~SpecCell) {
+                } else if (needsCellCheck) {
                     m_insertionSet.insertNode(
                         indexInBlock, SpecNone, Phantom, codeOrigin, childEdge);
                 }
@@ -269,7 +271,7 @@
                         }
                     }
                 }
-
+                
                 Edge propertyStorage;
                 
                 if (isInlineOffset(status.offset()))
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to