Changeset 160328 in webkit
- Timestamp:
- Dec 9, 2013, 2:02:46 PM (12 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r160325 r160328 1 2013-12-08 Filip Pizlo <fpizlo@apple.com> 2 3 CSE should work in SSA 4 https://bugs.webkit.org/show_bug.cgi?id=125430 5 6 Reviewed by Oliver Hunt and Mark Hahnenberg. 7 8 * dfg/DFGCSEPhase.cpp: 9 (JSC::DFG::CSEPhase::run): 10 (JSC::DFG::CSEPhase::performNodeCSE): 11 * dfg/DFGPlan.cpp: 12 (JSC::DFG::Plan::compileInThreadImpl): 13 1 14 2013-12-09 Joseph Pecoraro <pecoraro@apple.com> 2 15 -
trunk/Source/JavaScriptCore/dfg/DFGCSEPhase.cpp
r160295 r160328 49 49 bool run() 50 50 { 51 ASSERT((cseMode == NormalCSE) == (m_graph.m_fixpointState == FixpointNotConverged));52 51 ASSERT(m_graph.m_fixpointState != BeforeFixpoint); 53 52 … … 56 55 m_graph.clearReplacements(); 57 56 58 for (unsigned blockIndex = 0; blockIndex < m_graph.numBlocks(); ++blockIndex) 59 performBlockCSE(m_graph.block(blockIndex)); 57 if (m_graph.m_form == SSA) { 58 Vector<BasicBlock*> depthFirst; 59 m_graph.getBlocksInDepthFirstOrder(depthFirst); 60 for (unsigned i = 0; i < depthFirst.size(); ++i) 61 performBlockCSE(depthFirst[i]); 62 } else { 63 for (unsigned blockIndex = 0; blockIndex < m_graph.numBlocks(); ++blockIndex) 64 performBlockCSE(m_graph.block(blockIndex)); 65 } 60 66 61 67 return m_changed; … … 1016 1022 m_graph.performSubstitution(node); 1017 1023 1018 if (node->op() == SetLocal) 1024 if (node->containsMovHint()) { 1025 ASSERT(node->op() != ZombieHint); 1019 1026 node->child1()->mergeFlags(NodeRelevantToOSR); 1027 } 1020 1028 1021 1029 switch (node->op()) { … … 1121 1129 1122 1130 case Flush: { 1131 if (m_graph.m_form == SSA) { 1132 // FIXME: Enable Flush store elimination in SSA form. 1133 // https://bugs.webkit.org/show_bug.cgi?id=125429 1134 break; 1135 } 1123 1136 VariableAccessData* variableAccessData = node->variableAccessData(); 1124 1137 VirtualRegister local = variableAccessData->local(); -
trunk/Source/JavaScriptCore/dfg/DFGPlan.cpp
r160292 r160328 270 270 performCFA(dfg); 271 271 performLICM(dfg); 272 performCSE(dfg); 272 273 performLivenessAnalysis(dfg); 273 274 performCFA(dfg);
Note:
See TracChangeset
for help on using the changeset viewer.