From 36ec1bc6c023811235d9f5fb664feff09bc7b4f7 Mon Sep 17 00:00:00 2001 From: FICTURE7 Date: Sat, 12 Sep 2020 19:32:53 +0400 Subject: Relax block ordering constraints (#1535) * Relax block ordering constraints Before `block.Next` had to follow `block.ListNext`, now it does not. Instead `CodeGenerator` will now emit the necessary jump instructions to ensure control flow. This makes control flow and block order modifications easier. It also eliminates some simple cases of redundant branches. * Set PPTC version --- ARMeilleure/Diagnostics/IRDumper.cs | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) (limited to 'ARMeilleure/Diagnostics') diff --git a/ARMeilleure/Diagnostics/IRDumper.cs b/ARMeilleure/Diagnostics/IRDumper.cs index 0f0d72c1..90eb2300 100644 --- a/ARMeilleure/Diagnostics/IRDumper.cs +++ b/ARMeilleure/Diagnostics/IRDumper.cs @@ -57,17 +57,20 @@ namespace ARMeilleure.Diagnostics { DumpBlockName(block); - if (block.Next != null) + if (block.SuccessorCount > 0) { - _builder.Append(" (next "); - DumpBlockName(block.Next); - _builder.Append(')'); - } + _builder.Append(" ("); + + for (int i = 0; i < block.SuccessorCount; i++) + { + DumpBlockName(block.GetSuccessor(i)); + + if (i < block.SuccessorCount - 1) + { + _builder.Append(", "); + } + } - if (block.Branch != null) - { - _builder.Append(" (branch "); - DumpBlockName(block.Branch); _builder.Append(')'); } -- cgit v1.2.3