1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 15:38:10 +00:00

JSSpecCompiler: Add control flow graph simplification pass

It removes empty `BasicBlock`s with an unconditional jump continuation
and then removes unreferenced blocks from the graph.
This commit is contained in:
Dan Klishch 2023-08-19 16:20:04 -04:00 committed by Andrew Kaster
parent 475ef6965a
commit 12072dbac5
7 changed files with 215 additions and 1 deletions

View file

@ -31,6 +31,16 @@ void NodeSubtreePointer::replace_subtree(Badge<RecursiveASTVisitor>, NullableTre
});
}
Vector<BasicBlockRef*> ControlFlowJump::references()
{
return { &m_block };
}
Vector<BasicBlockRef*> ControlFlowBranch::references()
{
return { &m_then, &m_else };
}
Vector<NodeSubtreePointer> BinaryOperation::subtrees()
{
return { { &m_left }, { &m_right } };