diff options
Diffstat (limited to 'src/Ryujinx.Graphics.Shader/StructuredIr/GotoElimination.cs')
-rw-r--r-- | src/Ryujinx.Graphics.Shader/StructuredIr/GotoElimination.cs | 39 |
1 files changed, 19 insertions, 20 deletions
diff --git a/src/Ryujinx.Graphics.Shader/StructuredIr/GotoElimination.cs b/src/Ryujinx.Graphics.Shader/StructuredIr/GotoElimination.cs index 8bcf9d9c..3ca1266f 100644 --- a/src/Ryujinx.Graphics.Shader/StructuredIr/GotoElimination.cs +++ b/src/Ryujinx.Graphics.Shader/StructuredIr/GotoElimination.cs @@ -1,7 +1,6 @@ using Ryujinx.Graphics.Shader.IntermediateRepresentation; using System; using System.Collections.Generic; - using static Ryujinx.Graphics.Shader.StructuredIr.AstHelper; namespace Ryujinx.Graphics.Shader.StructuredIr @@ -110,16 +109,16 @@ namespace Ryujinx.Graphics.Shader.StructuredIr if (lLevel > rLevel) { - block = lBlock; + block = lBlock; blockLvl = lLevel; - other = rBlock; + other = rBlock; otherLvl = rLevel; } else /* if (rLevel > lLevel) */ { - block = rBlock; + block = rBlock; blockLvl = rLevel; - other = lBlock; + other = lBlock; otherLvl = lLevel; } @@ -144,7 +143,7 @@ namespace Ryujinx.Graphics.Shader.StructuredIr AstBlock[] path = BackwardsPath(block, ParentBlock(stmt.Label)); - AstBlock loopFirstStmt = path[path.Length - 1]; + AstBlock loopFirstStmt = path[^1]; if (loopFirstStmt.Type == AstBlockType.Else) { @@ -194,7 +193,7 @@ namespace Ryujinx.Graphics.Shader.StructuredIr loopBlock.AddAfter(child, stmt.Goto); - block = loopBlock; + block = loopBlock; gLevel = loopLevel; } } @@ -252,7 +251,7 @@ namespace Ryujinx.Graphics.Shader.StructuredIr for (int index = path.Length - 1; index >= 0; index--) { AstBlock child = path[index]; - AstBlock last = child; + AstBlock last = child; if (child.Type == AstBlockType.If) { @@ -265,7 +264,7 @@ namespace Ryujinx.Graphics.Shader.StructuredIr else if (child.Type == AstBlockType.Else) { // Modify the matching if condition to force the else to be entered by the goto. - if (!(Previous(child) is AstBlock ifBlock) || ifBlock.Type != AstBlockType.If) + if (Previous(child) is not AstBlock ifBlock || ifBlock.Type != AstBlockType.If) { throw new InvalidOperationException("Found an else without a matching if."); } @@ -332,7 +331,7 @@ namespace Ryujinx.Graphics.Shader.StructuredIr { AstBlock block = ParentBlock(stmt.Goto); - AstBlock newBlock = new AstBlock(AstBlockType.If, stmt.Condition); + AstBlock newBlock = new(AstBlockType.If, stmt.Condition); block.AddAfter(stmt.Goto, newBlock); @@ -340,11 +339,11 @@ namespace Ryujinx.Graphics.Shader.StructuredIr } private static AstBlock Enclose( - AstBlock block, + AstBlock block, AstBlockType type, - IAstNode cond, - IAstNode first, - IAstNode last = null) + IAstNode cond, + IAstNode first, + IAstNode last = null) { if (first == last) { @@ -367,7 +366,7 @@ namespace Ryujinx.Graphics.Shader.StructuredIr return first as AstBlock; } - AstBlock newBlock = new AstBlock(type, cond); + AstBlock newBlock = new(type, cond); block.AddBefore(first, newBlock); @@ -387,7 +386,7 @@ namespace Ryujinx.Graphics.Shader.StructuredIr private static bool BlockMatches(IAstNode node, AstBlockType type, IAstNode cond) { - if (!(node is AstBlock block)) + if (node is not AstBlock block) { return false; } @@ -399,7 +398,7 @@ namespace Ryujinx.Graphics.Shader.StructuredIr { if (lCond is AstOperation lCondOp && lCondOp.Inst == Instruction.LogicalNot) { - if (!(rCond is AstOperation rCondOp) || rCondOp.Inst != lCondOp.Inst) + if (rCond is not AstOperation rCondOp || rCondOp.Inst != lCondOp.Inst) { return false; } @@ -418,7 +417,7 @@ namespace Ryujinx.Graphics.Shader.StructuredIr return block.Parent; } - while (!(node is AstBlock)) + while (node is not AstBlock) { node = node.Parent; } @@ -430,7 +429,7 @@ namespace Ryujinx.Graphics.Shader.StructuredIr { AstBlock block = bottom; - List<AstBlock> path = new List<AstBlock>(); + List<AstBlock> path = new(); while (block != top) { @@ -456,4 +455,4 @@ namespace Ryujinx.Graphics.Shader.StructuredIr return level; } } -}
\ No newline at end of file +} |