mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 04:17:35 +00:00
LibJS: Don't try to merge blocks not ending in Jumps
This commit is contained in:
parent
192897c269
commit
186237aec8
1 changed files with 4 additions and 0 deletions
|
@ -30,6 +30,9 @@ void MergeBlocks::perform(PassPipelineExecutable& executable)
|
|||
if (executable.exported_blocks->contains(*entry.value.begin()))
|
||||
continue;
|
||||
|
||||
if (entry.key->terminator()->type() != Instruction::Type::Jump)
|
||||
continue;
|
||||
|
||||
{
|
||||
InstructionStreamIterator it { entry.key->instruction_stream() };
|
||||
auto& first_instruction = *it;
|
||||
|
@ -95,6 +98,7 @@ void MergeBlocks::perform(PassPipelineExecutable& executable)
|
|||
auto it = blocks_to_merge.begin();
|
||||
auto const* current_block = *it;
|
||||
blocks_to_merge.remove(it);
|
||||
|
||||
Vector<BasicBlock const*> successors { current_block };
|
||||
for (;;) {
|
||||
auto const* last = successors.last();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue