Title: [91156] trunk/Source/_javascript_Core
Revision
91156
Author
[email protected]
Date
2011-07-16 16:14:09 -0700 (Sat, 16 Jul 2011)

Log Message

DFG speculative JIT has dead code for slow calls for branches.
https://bugs.webkit.org/show_bug.cgi?id=64653

Patch by Filip Pizlo <[email protected]> on 2011-07-16
Reviewed by Gavin Barraclough.

Removed SpeculativeJIT::compilePeepHoleCall.

* dfg/DFGSpeculativeJIT.cpp:
* dfg/DFGSpeculativeJIT.h:

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (91155 => 91156)


--- trunk/Source/_javascript_Core/ChangeLog	2011-07-16 23:01:46 UTC (rev 91155)
+++ trunk/Source/_javascript_Core/ChangeLog	2011-07-16 23:14:09 UTC (rev 91156)
@@ -1,3 +1,15 @@
+2011-07-16  Filip Pizlo  <[email protected]>
+
+        DFG speculative JIT has dead code for slow calls for branches.
+        https://bugs.webkit.org/show_bug.cgi?id=64653
+
+        Reviewed by Gavin Barraclough.
+        
+        Removed SpeculativeJIT::compilePeepHoleCall.
+
+        * dfg/DFGSpeculativeJIT.cpp:
+        * dfg/DFGSpeculativeJIT.h:
+
 2011-07-15  Mark Rowe  <[email protected]>
 
         Fix the build.

Modified: trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT.cpp (91155 => 91156)


--- trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT.cpp	2011-07-16 23:01:46 UTC (rev 91155)
+++ trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT.cpp	2011-07-16 23:14:09 UTC (rev 91156)
@@ -380,37 +380,6 @@
         addBranch(m_jit.jump(), notTaken);
 }
 
-void SpeculativeJIT::compilePeepHoleCall(Node& node, NodeIndex branchNodeIndex, Z_DFGOperation_EJJ operation)
-{
-    Node& branchNode = m_jit.graph()[branchNodeIndex];
-    BlockIndex taken = m_jit.graph().blockIndexForBytecodeOffset(branchNode.takenBytecodeOffset());
-    BlockIndex notTaken = m_jit.graph().blockIndexForBytecodeOffset(branchNode.notTakenBytecodeOffset());
-
-    // The branch instruction will branch to the taken block.
-    // If taken is next, switch taken with notTaken & invert the branch condition so we can fall through.
-    JITCompiler::ResultCondition condition = JITCompiler::NonZero;
-    if (taken == (m_block + 1)) {
-        condition = JITCompiler::Zero;
-        BlockIndex tmp = taken;
-        taken = notTaken;
-        notTaken = tmp;
-    }
-
-    JSValueOperand op1(this, node.child1());
-    JSValueOperand op2(this, node.child2());
-    GPRReg op1GPR = op1.gpr();
-    GPRReg op2GPR = op2.gpr();
-    flushRegisters();
-
-    GPRResult result(this);
-    callOperation(operation, result.gpr(), op1GPR, op2GPR);
-    addBranch(m_jit.branchTest8(condition, result.gpr()), taken);
-
-    // Check for fall through, otherwise we need to jump.
-    if (notTaken != (m_block + 1))
-        addBranch(m_jit.jump(), notTaken);
-}
-
 // Returns true if the compare is fused with a subsequent branch.
 bool SpeculativeJIT::compare(Node& node, MacroAssembler::RelationalCondition condition, Z_DFGOperation_EJJ operation)
 {

Modified: trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT.h (91155 => 91156)


--- trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT.h	2011-07-16 23:01:46 UTC (rev 91155)
+++ trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT.h	2011-07-16 23:14:09 UTC (rev 91156)
@@ -171,7 +171,6 @@
 
     bool compare(Node&, MacroAssembler::RelationalCondition, Z_DFGOperation_EJJ);
     void compilePeepHoleIntegerBranch(Node&, NodeIndex branchNodeIndex, JITCompiler::RelationalCondition);
-    void compilePeepHoleCall(Node&, NodeIndex branchNodeIndex, Z_DFGOperation_EJJ);
 
     // Add a speculation check without additional recovery.
     void speculationCheck(MacroAssembler::Jump jumpToFail)
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to