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/Translation/RegisterUsage.cs | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) (limited to 'ARMeilleure/Translation/RegisterUsage.cs') diff --git a/ARMeilleure/Translation/RegisterUsage.cs b/ARMeilleure/Translation/RegisterUsage.cs index d5124285..6a21ae2a 100644 --- a/ARMeilleure/Translation/RegisterUsage.cs +++ b/ARMeilleure/Translation/RegisterUsage.cs @@ -171,14 +171,9 @@ namespace ARMeilleure.Translation RegisterMask inputs = localInputs[block.Index]; - if (block.Next != null) + for (int i = 0; i < block.SuccessorCount; i++) { - inputs |= globalInputs[block.Next.Index]; - } - - if (block.Branch != null) - { - inputs |= globalInputs[block.Branch.Index]; + inputs |= globalInputs[block.GetSuccessor(i).Index]; } inputs &= ~globalCmnOutputs[block.Index]; -- cgit v1.2.3