diff options
| author | Andrey Sukharev <SukharevAndrey@users.noreply.github.com> | 2022-12-05 16:47:39 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-12-05 14:47:39 +0100 |
| commit | 4da44e09cb2a32f69b4a6b47221117b78e4618dc (patch) | |
| tree | c3648a09202374dabff6fac472fe341bf9e1f0ee /ARMeilleure | |
| parent | ae13f0ab4da5b371bba746c1bd6598baaa44585d (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.cs | 2 | ||||
| -rw-r--r-- | ARMeilleure/CodeGen/RegisterAllocators/CopyResolver.cs | 2 | ||||
| -rw-r--r-- | ARMeilleure/CodeGen/RegisterAllocators/HybridAllocator.cs | 2 | ||||
| -rw-r--r-- | ARMeilleure/CodeGen/RegisterAllocators/RegisterMasks.cs | 2 | ||||
| -rw-r--r-- | ARMeilleure/CodeGen/X86/IntrinsicInfo.cs | 2 | ||||
| -rw-r--r-- | ARMeilleure/Decoders/InstDescriptor.cs | 2 | ||||
| -rw-r--r-- | ARMeilleure/Decoders/OpCodeTable.cs | 2 | ||||
| -rw-r--r-- | ARMeilleure/Diagnostics/Symbols.cs | 2 | ||||
| -rw-r--r-- | ARMeilleure/IntermediateRepresentation/PhiOperation.cs | 2 | ||||
| -rw-r--r-- | ARMeilleure/IntermediateRepresentation/Register.cs | 2 | ||||
| -rw-r--r-- | ARMeilleure/Translation/Cache/CacheEntry.cs | 2 | ||||
| -rw-r--r-- | ARMeilleure/Translation/Cache/CacheMemoryAllocator.cs | 2 | ||||
| -rw-r--r-- | ARMeilleure/Translation/CompilerContext.cs | 2 | ||||
| -rw-r--r-- | ARMeilleure/Translation/RegisterUsage.cs | 2 | ||||
| -rw-r--r-- | ARMeilleure/Translation/Translator.cs | 2 |
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; } |
