aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Graphics.Shader/StructuredIr/GotoElimination.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Ryujinx.Graphics.Shader/StructuredIr/GotoElimination.cs')
-rw-r--r--src/Ryujinx.Graphics.Shader/StructuredIr/GotoElimination.cs39
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
+}