summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/dfg/DFGStructureCheckHoistingPhase.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@nokia.com>2012-08-23 17:03:15 +0200
committerSimon Hausmann <simon.hausmann@nokia.com>2012-08-23 17:03:15 +0200
commita73d1c176f2f3e0458861de8590dc20321a501ae (patch)
treed897fc5974797c3cb300d7f5916f258df765401f /Source/JavaScriptCore/dfg/DFGStructureCheckHoistingPhase.cpp
parentc311cf639cc1d6570d67b0a80a8ba04dc992a658 (diff)
downloadqtwebkit-a73d1c176f2f3e0458861de8590dc20321a501ae.tar.gz
Imported WebKit commit a5ae8a56a48e44ebfb9b81aaa5488affaffdb175 (http://svn.webkit.org/repository/webkit/trunk@126420)
New snapshot with OS X 10.6 build fix
Diffstat (limited to 'Source/JavaScriptCore/dfg/DFGStructureCheckHoistingPhase.cpp')
-rw-r--r--Source/JavaScriptCore/dfg/DFGStructureCheckHoistingPhase.cpp44
1 files changed, 1 insertions, 43 deletions
diff --git a/Source/JavaScriptCore/dfg/DFGStructureCheckHoistingPhase.cpp b/Source/JavaScriptCore/dfg/DFGStructureCheckHoistingPhase.cpp
index 68627f95c..eb04a6747 100644
--- a/Source/JavaScriptCore/dfg/DFGStructureCheckHoistingPhase.cpp
+++ b/Source/JavaScriptCore/dfg/DFGStructureCheckHoistingPhase.cpp
@@ -98,7 +98,6 @@ public:
case GetByVal:
case PutByVal:
case PutByValAlias:
- case PutByValSafe:
case GetArrayLength:
case Phantom:
// Don't count these uses.
@@ -215,53 +214,12 @@ public:
}
case GetByVal:
- if (!node.prediction() || !m_graph[node.child1()].prediction() || !m_graph[node.child2()].prediction())
- break;
- if (!isActionableArraySpeculation(m_graph[node.child1()].prediction()) || !m_graph[node.child2()].shouldSpeculateInteger())
- clobber(live);
- break;
-
case PutByVal:
case PutByValAlias:
- case PutByValSafe: {
- Edge child1 = m_graph.varArgChild(node, 0);
- Edge child2 = m_graph.varArgChild(node, 1);
-
- if (!m_graph[child1].prediction() || !m_graph[child2].prediction())
- break;
- if (!m_graph[child2].shouldSpeculateInteger()
-#if USE(JSVALUE32_64)
- || m_graph[child1].shouldSpeculateArguments()
-#endif
- ) {
- clobber(live);
- break;
- }
- if (node.op() != PutByValSafe)
- break;
- if (m_graph[child1].shouldSpeculateArguments())
- break;
- if (m_graph[child1].shouldSpeculateInt8Array())
- break;
- if (m_graph[child1].shouldSpeculateInt16Array())
- break;
- if (m_graph[child1].shouldSpeculateInt32Array())
- break;
- if (m_graph[child1].shouldSpeculateUint8Array())
- break;
- if (m_graph[child1].shouldSpeculateUint8ClampedArray())
- break;
- if (m_graph[child1].shouldSpeculateUint16Array())
- break;
- if (m_graph[child1].shouldSpeculateUint32Array())
- break;
- if (m_graph[child1].shouldSpeculateFloat32Array())
- break;
- if (m_graph[child1].shouldSpeculateFloat64Array())
+ if (m_graph.byValIsPure(node))
break;
clobber(live);
break;
- }
case GetMyArgumentsLengthSafe:
case GetMyArgumentByValSafe: