Title: [125964] trunk/Source/_javascript_Core
- Revision
- 125964
- Author
- [email protected]
- Date
- 2012-08-17 23:01:33 -0700 (Fri, 17 Aug 2012)
Log Message
DFG CSE should be more honest about when it changed the IR
https://bugs.webkit.org/show_bug.cgi?id=94408
Reviewed by Geoffrey Garen.
The CSE phase now always returns true if it changed the IR.
* dfg/DFGCSEPhase.cpp:
(JSC::DFG::CSEPhase::setReplacement):
(JSC::DFG::CSEPhase::eliminate):
(JSC::DFG::CSEPhase::performNodeCSE):
Modified Paths
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (125963 => 125964)
--- trunk/Source/_javascript_Core/ChangeLog 2012-08-18 03:46:20 UTC (rev 125963)
+++ trunk/Source/_javascript_Core/ChangeLog 2012-08-18 06:01:33 UTC (rev 125964)
@@ -1,5 +1,19 @@
2012-08-17 Filip Pizlo <[email protected]>
+ DFG CSE should be more honest about when it changed the IR
+ https://bugs.webkit.org/show_bug.cgi?id=94408
+
+ Reviewed by Geoffrey Garen.
+
+ The CSE phase now always returns true if it changed the IR.
+
+ * dfg/DFGCSEPhase.cpp:
+ (JSC::DFG::CSEPhase::setReplacement):
+ (JSC::DFG::CSEPhase::eliminate):
+ (JSC::DFG::CSEPhase::performNodeCSE):
+
+2012-08-17 Filip Pizlo <[email protected]>
+
DFG is still too pessimistic about what constitutes a side-effect on array accesses
https://bugs.webkit.org/show_bug.cgi?id=94309
Modified: trunk/Source/_javascript_Core/dfg/DFGCSEPhase.cpp (125963 => 125964)
--- trunk/Source/_javascript_Core/dfg/DFGCSEPhase.cpp 2012-08-18 03:46:20 UTC (rev 125963)
+++ trunk/Source/_javascript_Core/dfg/DFGCSEPhase.cpp 2012-08-18 06:01:33 UTC (rev 125964)
@@ -843,6 +843,8 @@
// At this point we will eliminate all references to this node.
m_replacements[m_compileIndex] = replacement;
+ m_changed = true;
+
return true;
}
@@ -856,6 +858,8 @@
ASSERT(node.refCount() == 1);
ASSERT(node.mustGenerate());
node.setOpAndDefaultFlags(Phantom);
+
+ m_changed = true;
}
void eliminate(NodeIndex nodeIndex, NodeType phantomType = Phantom)
@@ -867,6 +871,8 @@
return;
ASSERT(node.mustGenerate());
node.setOpAndDefaultFlags(phantomType);
+
+ m_changed = true;
}
void performNodeCSE(Node& node)
@@ -982,7 +988,7 @@
case GetLocalUnlinked: {
NodeIndex relevantLocalOpIgnored;
- m_changed |= setReplacement(getLocalLoadElimination(node.unlinkedLocal(), relevantLocalOpIgnored, true));
+ setReplacement(getLocalLoadElimination(node.unlinkedLocal(), relevantLocalOpIgnored, true));
break;
}
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes