void performBlockCFA(BasicBlock* block) { if (!block) return; if (!block->cfaShouldRevisit) return; if (m_verbose) dataLog(" Block ", *block, ":\n"); m_state.beginBasicBlock(block); if (m_verbose) { dataLog(" head vars: ", block->valuesAtHead, "\n"); if (m_graph.m_form == SSA) dataLog(" head regs: ", mapDump(block->ssa->valuesAtHead), "\n"); } for (unsigned i = 0; i < block->size(); ++i) { if (m_verbose) { Node* node = block->at(i); dataLogF(" %s @%u: ", Graph::opName(node->op()), node->index()); if (!safeToExecute(m_state, m_graph, node)) dataLog("(UNSAFE) "); dataLog(m_state.variables(), " ", m_interpreter); dataLogF("\n"); } if (!m_interpreter.execute(i)) { if (m_verbose) dataLogF(" Expect OSR exit.\n"); break; } } if (m_verbose) { dataLogF(" tail regs: "); m_interpreter.dump(WTF::dataFile()); dataLogF("\n"); } m_changed |= m_state.endBasicBlock(); if (m_verbose) { dataLog(" tail vars: ", block->valuesAtTail, "\n"); if (m_graph.m_form == SSA) dataLog(" head regs: ", mapDump(block->ssa->valuesAtTail), "\n"); } }
void AvailabilityMap::dump(PrintStream& out) const { out.print("{locals = ", m_locals, "; heap = ", mapDump(m_heap), "}"); }