aboutsummaryrefslogtreecommitdiff
path: root/ARMeilleure
diff options
context:
space:
mode:
authorAndrey Sukharev <SukharevAndrey@users.noreply.github.com>2022-12-05 16:47:39 +0300
committerGitHub <noreply@github.com>2022-12-05 14:47:39 +0100
commit4da44e09cb2a32f69b4a6b47221117b78e4618dc (patch)
treec3648a09202374dabff6fac472fe341bf9e1f0ee /ARMeilleure
parentae13f0ab4da5b371bba746c1bd6598baaa44585d (diff)
Make structs readonly when applicable (#4002)
* Make all structs readonly when applicable. It should reduce amount of needless defensive copies * Make structs with trivial boilerplate equality code record structs * Remove unnecessary readonly modifiers from TextureCreateInfo * Make BitMap structs readonly too
Diffstat (limited to 'ARMeilleure')
-rw-r--r--ARMeilleure/CodeGen/RegisterAllocators/AllocationResult.cs2
-rw-r--r--ARMeilleure/CodeGen/RegisterAllocators/CopyResolver.cs2
-rw-r--r--ARMeilleure/CodeGen/RegisterAllocators/HybridAllocator.cs2
-rw-r--r--ARMeilleure/CodeGen/RegisterAllocators/RegisterMasks.cs2
-rw-r--r--ARMeilleure/CodeGen/X86/IntrinsicInfo.cs2
-rw-r--r--ARMeilleure/Decoders/InstDescriptor.cs2
-rw-r--r--ARMeilleure/Decoders/OpCodeTable.cs2
-rw-r--r--ARMeilleure/Diagnostics/Symbols.cs2
-rw-r--r--ARMeilleure/IntermediateRepresentation/PhiOperation.cs2
-rw-r--r--ARMeilleure/IntermediateRepresentation/Register.cs2
-rw-r--r--ARMeilleure/Translation/Cache/CacheEntry.cs2
-rw-r--r--ARMeilleure/Translation/Cache/CacheMemoryAllocator.cs2
-rw-r--r--ARMeilleure/Translation/CompilerContext.cs2
-rw-r--r--ARMeilleure/Translation/RegisterUsage.cs2
-rw-r--r--ARMeilleure/Translation/Translator.cs2
15 files changed, 15 insertions, 15 deletions
diff --git a/ARMeilleure/CodeGen/RegisterAllocators/AllocationResult.cs b/ARMeilleure/CodeGen/RegisterAllocators/AllocationResult.cs
index 94ac6991..43e5c7e2 100644
--- a/ARMeilleure/CodeGen/RegisterAllocators/AllocationResult.cs
+++ b/ARMeilleure/CodeGen/RegisterAllocators/AllocationResult.cs
@@ -1,6 +1,6 @@
namespace ARMeilleure.CodeGen.RegisterAllocators
{
- struct AllocationResult
+ readonly struct AllocationResult
{
public int IntUsedRegisters { get; }
public int VecUsedRegisters { get; }
diff --git a/ARMeilleure/CodeGen/RegisterAllocators/CopyResolver.cs b/ARMeilleure/CodeGen/RegisterAllocators/CopyResolver.cs
index df4b6db1..587b1a02 100644
--- a/ARMeilleure/CodeGen/RegisterAllocators/CopyResolver.cs
+++ b/ARMeilleure/CodeGen/RegisterAllocators/CopyResolver.cs
@@ -11,7 +11,7 @@ namespace ARMeilleure.CodeGen.RegisterAllocators
{
private class ParallelCopy
{
- private struct Copy
+ private readonly struct Copy
{
public Register Dest { get; }
public Register Source { get; }
diff --git a/ARMeilleure/CodeGen/RegisterAllocators/HybridAllocator.cs b/ARMeilleure/CodeGen/RegisterAllocators/HybridAllocator.cs
index de084026..25952c77 100644
--- a/ARMeilleure/CodeGen/RegisterAllocators/HybridAllocator.cs
+++ b/ARMeilleure/CodeGen/RegisterAllocators/HybridAllocator.cs
@@ -11,7 +11,7 @@ namespace ARMeilleure.CodeGen.RegisterAllocators
{
class HybridAllocator : IRegisterAllocator
{
- private struct BlockInfo
+ private readonly struct BlockInfo
{
public bool HasCall { get; }
diff --git a/ARMeilleure/CodeGen/RegisterAllocators/RegisterMasks.cs b/ARMeilleure/CodeGen/RegisterAllocators/RegisterMasks.cs
index 9652224e..5b11aac2 100644
--- a/ARMeilleure/CodeGen/RegisterAllocators/RegisterMasks.cs
+++ b/ARMeilleure/CodeGen/RegisterAllocators/RegisterMasks.cs
@@ -3,7 +3,7 @@ using System;
namespace ARMeilleure.CodeGen.RegisterAllocators
{
- struct RegisterMasks
+ readonly struct RegisterMasks
{
public int IntAvailableRegisters { get; }
public int VecAvailableRegisters { get; }
diff --git a/ARMeilleure/CodeGen/X86/IntrinsicInfo.cs b/ARMeilleure/CodeGen/X86/IntrinsicInfo.cs
index b1af352b..302bf4d3 100644
--- a/ARMeilleure/CodeGen/X86/IntrinsicInfo.cs
+++ b/ARMeilleure/CodeGen/X86/IntrinsicInfo.cs
@@ -1,6 +1,6 @@
namespace ARMeilleure.CodeGen.X86
{
- struct IntrinsicInfo
+ readonly struct IntrinsicInfo
{
public X86Instruction Inst { get; }
public IntrinsicType Type { get; }
diff --git a/ARMeilleure/Decoders/InstDescriptor.cs b/ARMeilleure/Decoders/InstDescriptor.cs
index 29966d6d..577ff394 100644
--- a/ARMeilleure/Decoders/InstDescriptor.cs
+++ b/ARMeilleure/Decoders/InstDescriptor.cs
@@ -2,7 +2,7 @@ using ARMeilleure.Instructions;
namespace ARMeilleure.Decoders
{
- struct InstDescriptor
+ readonly struct InstDescriptor
{
public static InstDescriptor Undefined => new InstDescriptor(InstName.Und, InstEmit.Und);
diff --git a/ARMeilleure/Decoders/OpCodeTable.cs b/ARMeilleure/Decoders/OpCodeTable.cs
index f44c1540..caa93099 100644
--- a/ARMeilleure/Decoders/OpCodeTable.cs
+++ b/ARMeilleure/Decoders/OpCodeTable.cs
@@ -11,7 +11,7 @@ namespace ARMeilleure.Decoders
private const int FastLookupSize = 0x1000;
- private struct InstInfo
+ private readonly struct InstInfo
{
public int Mask { get; }
public int Value { get; }
diff --git a/ARMeilleure/Diagnostics/Symbols.cs b/ARMeilleure/Diagnostics/Symbols.cs
index 17764f7e..6bde62f5 100644
--- a/ARMeilleure/Diagnostics/Symbols.cs
+++ b/ARMeilleure/Diagnostics/Symbols.cs
@@ -6,7 +6,7 @@ namespace ARMeilleure.Diagnostics
{
static class Symbols
{
- private struct RangedSymbol
+ private readonly struct RangedSymbol
{
public readonly ulong Start;
public readonly ulong End;
diff --git a/ARMeilleure/IntermediateRepresentation/PhiOperation.cs b/ARMeilleure/IntermediateRepresentation/PhiOperation.cs
index f2430882..d2a3cf21 100644
--- a/ARMeilleure/IntermediateRepresentation/PhiOperation.cs
+++ b/ARMeilleure/IntermediateRepresentation/PhiOperation.cs
@@ -3,7 +3,7 @@ using static ARMeilleure.IntermediateRepresentation.Operand.Factory;
namespace ARMeilleure.IntermediateRepresentation
{
- struct PhiOperation
+ readonly struct PhiOperation
{
private readonly Operation _operation;
diff --git a/ARMeilleure/IntermediateRepresentation/Register.cs b/ARMeilleure/IntermediateRepresentation/Register.cs
index 745b3153..241e4d13 100644
--- a/ARMeilleure/IntermediateRepresentation/Register.cs
+++ b/ARMeilleure/IntermediateRepresentation/Register.cs
@@ -2,7 +2,7 @@ using System;
namespace ARMeilleure.IntermediateRepresentation
{
- struct Register : IEquatable<Register>
+ readonly struct Register : IEquatable<Register>
{
public int Index { get; }
diff --git a/ARMeilleure/Translation/Cache/CacheEntry.cs b/ARMeilleure/Translation/Cache/CacheEntry.cs
index fce984c3..dc5503b1 100644
--- a/ARMeilleure/Translation/Cache/CacheEntry.cs
+++ b/ARMeilleure/Translation/Cache/CacheEntry.cs
@@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis;
namespace ARMeilleure.Translation.Cache
{
- struct CacheEntry : IComparable<CacheEntry>
+ readonly struct CacheEntry : IComparable<CacheEntry>
{
public int Offset { get; }
public int Size { get; }
diff --git a/ARMeilleure/Translation/Cache/CacheMemoryAllocator.cs b/ARMeilleure/Translation/Cache/CacheMemoryAllocator.cs
index 3111e886..4c22de40 100644
--- a/ARMeilleure/Translation/Cache/CacheMemoryAllocator.cs
+++ b/ARMeilleure/Translation/Cache/CacheMemoryAllocator.cs
@@ -6,7 +6,7 @@ namespace ARMeilleure.Translation.Cache
{
class CacheMemoryAllocator
{
- private struct MemoryBlock : IComparable<MemoryBlock>
+ private readonly struct MemoryBlock : IComparable<MemoryBlock>
{
public int Offset { get; }
public int Size { get; }
diff --git a/ARMeilleure/Translation/CompilerContext.cs b/ARMeilleure/Translation/CompilerContext.cs
index cfe5ad1e..510dec58 100644
--- a/ARMeilleure/Translation/CompilerContext.cs
+++ b/ARMeilleure/Translation/CompilerContext.cs
@@ -2,7 +2,7 @@ using ARMeilleure.IntermediateRepresentation;
namespace ARMeilleure.Translation
{
- struct CompilerContext
+ readonly struct CompilerContext
{
public ControlFlowGraph Cfg { get; }
diff --git a/ARMeilleure/Translation/RegisterUsage.cs b/ARMeilleure/Translation/RegisterUsage.cs
index 775fa3ab..3ec0a7b4 100644
--- a/ARMeilleure/Translation/RegisterUsage.cs
+++ b/ARMeilleure/Translation/RegisterUsage.cs
@@ -14,7 +14,7 @@ namespace ARMeilleure.Translation
private const int RegsCount = 32;
private const int RegsMask = RegsCount - 1;
- private struct RegisterMask : IEquatable<RegisterMask>
+ private readonly struct RegisterMask : IEquatable<RegisterMask>
{
public long IntMask => Mask.GetElement(0);
public long VecMask => Mask.GetElement(1);
diff --git a/ARMeilleure/Translation/Translator.cs b/ARMeilleure/Translation/Translator.cs
index c50b1c3d..2edbe401 100644
--- a/ARMeilleure/Translation/Translator.cs
+++ b/ARMeilleure/Translation/Translator.cs
@@ -293,7 +293,7 @@ namespace ARMeilleure.Translation
}
}
- private struct Range
+ private readonly struct Range
{
public ulong Start { get; }
public ulong End { get; }