void BytecodeLivenessAnalysis::compute() { runLivenessFixpoint(m_graph); if (Options::dumpBytecodeLivenessResults()) dumpResults(); }
void BytecodeLivenessAnalysis::compute() { computeBytecodeBasicBlocks(m_codeBlock, m_basicBlocks); ASSERT(m_basicBlocks.size()); runLivenessFixpoint(); if (Options::dumpBytecodeLivenessResults()) dumpResults(); }
void run(UnlinkedCodeBlock* codeBlock, InstructionStreamWriter& instructions) { // Perform modified liveness analysis to determine which locals are live at the merge points. // This produces the conservative results for the question, "which variables should be saved and resumed?". runLivenessFixpoint(codeBlock, instructions, m_generatorification.graph()); for (YieldData& data : m_generatorification.yields()) data.liveness = getLivenessInfoAtBytecodeOffset(codeBlock, instructions, m_generatorification.graph(), m_generatorification.instructions().at(data.point).next().offset()); }
void run() { // Perform modified liveness analysis to determine which locals are live at the merge points. // This produces the conservative results for the question, "which variables should be saved and resumed?". runLivenessFixpoint(m_generatorification.graph()); for (YieldData& data : m_generatorification.yields()) data.liveness = getLivenessInfoAtBytecodeOffset(m_generatorification.graph(), data.point + opcodeLength(op_yield)); }