Title: [144991] trunk/Source/_javascript_Core
Revision
144991
Author
[email protected]
Date
2013-03-06 15:14:02 -0800 (Wed, 06 Mar 2013)

Log Message

Unreviewed, roll out http://trac.webkit.org/changeset/144989
        
I think we want the assertion that I removed.

* dfg/DFGAbstractState.cpp:
(JSC::DFG::AbstractState::merge):
(JSC::DFG::AbstractState::mergeVariableBetweenBlocks):
* dfg/DFGAbstractState.h:
(AbstractState):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (144990 => 144991)


--- trunk/Source/_javascript_Core/ChangeLog	2013-03-06 23:08:35 UTC (rev 144990)
+++ trunk/Source/_javascript_Core/ChangeLog	2013-03-06 23:14:02 UTC (rev 144991)
@@ -1,5 +1,17 @@
 2013-03-06  Filip Pizlo  <[email protected]>
 
+        Unreviewed, roll out http://trac.webkit.org/changeset/144989
+        
+        I think we want the assertion that I removed.
+
+        * dfg/DFGAbstractState.cpp:
+        (JSC::DFG::AbstractState::merge):
+        (JSC::DFG::AbstractState::mergeVariableBetweenBlocks):
+        * dfg/DFGAbstractState.h:
+        (AbstractState):
+
+2013-03-06  Filip Pizlo  <[email protected]>
+
         DFG::AbstractState::merge() is still more complicated than it needs to be
         https://bugs.webkit.org/show_bug.cgi?id=111619
 

Modified: trunk/Source/_javascript_Core/dfg/DFGAbstractState.cpp (144990 => 144991)


--- trunk/Source/_javascript_Core/dfg/DFGAbstractState.cpp	2013-03-06 23:08:35 UTC (rev 144990)
+++ trunk/Source/_javascript_Core/dfg/DFGAbstractState.cpp	2013-03-06 23:14:02 UTC (rev 144991)
@@ -1697,17 +1697,13 @@
     bool changed = false;
     
     for (size_t argument = 0; argument < from->variablesAtTail.numberOfArguments(); ++argument) {
-        changed |= mergeVariableBetweenBlocks(
-            to->valuesAtHead.argument(argument),
-            from->valuesAtTail.argument(argument),
-            to->variablesAtHead.argument(argument));
+        AbstractValue& destination = to->valuesAtHead.argument(argument);
+        changed |= mergeVariableBetweenBlocks(destination, from->valuesAtTail.argument(argument), to->variablesAtHead.argument(argument), from->variablesAtTail.argument(argument));
     }
     
     for (size_t local = 0; local < from->variablesAtTail.numberOfLocals(); ++local) {
-        changed |= mergeVariableBetweenBlocks(
-            to->valuesAtHead.local(local),
-            from->valuesAtTail.local(local),
-            to->variablesAtHead.local(local));
+        AbstractValue& destination = to->valuesAtHead.local(local);
+        changed |= mergeVariableBetweenBlocks(destination, from->valuesAtTail.local(local), to->variablesAtHead.local(local), from->variablesAtTail.local(local));
     }
 
     if (!to->cfaHasVisited)
@@ -1761,12 +1757,15 @@
     }
 }
 
-inline bool AbstractState::mergeVariableBetweenBlocks(AbstractValue& destination, AbstractValue& source, Node* destinationNode)
+inline bool AbstractState::mergeVariableBetweenBlocks(AbstractValue& destination, AbstractValue& source, Node* destinationNode, Node* sourceNode)
 {
-    // This is the only liveness pruning that we do. We can always rely on the liveness at head to be preserved.
     if (!destinationNode)
         return false;
     
+    ASSERT_UNUSED(sourceNode, sourceNode);
+    
+    // FIXME: We could do some sparse conditional propagation here!
+    
     return destination.merge(source);
 }
 

Modified: trunk/Source/_javascript_Core/dfg/DFGAbstractState.h (144990 => 144991)


--- trunk/Source/_javascript_Core/dfg/DFGAbstractState.h	2013-03-06 23:08:35 UTC (rev 144990)
+++ trunk/Source/_javascript_Core/dfg/DFGAbstractState.h	2013-03-06 23:14:02 UTC (rev 144991)
@@ -234,7 +234,7 @@
     
     bool mergeStateAtTail(AbstractValue& destination, AbstractValue& inVariable, Node*);
     
-    static bool mergeVariableBetweenBlocks(AbstractValue& destination, AbstractValue& source, Node* destinationNode);
+    static bool mergeVariableBetweenBlocks(AbstractValue& destination, AbstractValue& source, Node* destinationNode, Node* sourceNode);
     
     enum BooleanResult {
         UnknownBooleanResult,
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to