diff options
| author | FICTURE7 <FICTURE7@gmail.com> | 2020-09-12 19:32:53 +0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-09-12 12:32:53 -0300 |
| commit | 36ec1bc6c023811235d9f5fb664feff09bc7b4f7 (patch) | |
| tree | 98d74ad92cdce8294bb5116bf7cd06acb55ff9da /ARMeilleure/Translation/RegisterUsage.cs | |
| parent | 3d055da5fc77f462e9c7099e08570213c0220cd4 (diff) | |
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
Diffstat (limited to 'ARMeilleure/Translation/RegisterUsage.cs')
| -rw-r--r-- | ARMeilleure/Translation/RegisterUsage.cs | 9 |
1 files changed, 2 insertions, 7 deletions
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]; |
