From 11e0c078c467c82c6bee6aa95497c567e7a55e59 Mon Sep 17 00:00:00 2001 From: Isabelle Santin Date: Tue, 21 May 2024 11:31:41 -0500 Subject: [PATCH 01/16] Initial implementation of `IRSerializer` class --- Src/ILGPU/IR/IRSerializer.cs | 82 ++++++++++++++++++++++++++ Src/ILGPU/IR/Values/AlignValues.cs | 3 + Src/ILGPU/IR/Values/Arithmetic.cs | 21 +++++++ Src/ILGPU/IR/Values/ArrayValues.cs | 6 ++ Src/ILGPU/IR/Values/Atomic.cs | 11 ++++ Src/ILGPU/IR/Values/Cast.cs | 25 ++++++++ Src/ILGPU/IR/Values/Compare.cs | 7 +++ Src/ILGPU/IR/Values/Constants.cs | 17 ++++++ Src/ILGPU/IR/Values/Convert.cs | 4 ++ Src/ILGPU/IR/Values/Debug.cs | 3 + Src/ILGPU/IR/Values/DeviceConstants.cs | 21 +++++++ Src/ILGPU/IR/Values/HandleValue.cs | 3 + Src/ILGPU/IR/Values/IOValues.cs | 3 + Src/ILGPU/IR/Values/LanguageValues.cs | 3 + Src/ILGPU/IR/Values/Memory.cs | 14 +++++ Src/ILGPU/IR/Values/MethodCall.cs | 4 ++ Src/ILGPU/IR/Values/Parameter.cs | 3 + Src/ILGPU/IR/Values/PhiValue.cs | 9 +++ Src/ILGPU/IR/Values/PointerValues.cs | 16 +++++ Src/ILGPU/IR/Values/Predicate.cs | 3 + Src/ILGPU/IR/Values/StructureValues.cs | 14 +++++ Src/ILGPU/IR/Values/Terminators.cs | 13 ++++ Src/ILGPU/IR/Values/Threads.cs | 20 +++++++ Src/ILGPU/IR/Values/Undefined.cs | 3 + Src/ILGPU/IR/Values/Value.cs | 28 +++++++++ Src/ILGPU/IR/Values/View.cs | 7 +++ 26 files changed, 343 insertions(+) create mode 100644 Src/ILGPU/IR/IRSerializer.cs diff --git a/Src/ILGPU/IR/IRSerializer.cs b/Src/ILGPU/IR/IRSerializer.cs new file mode 100644 index 000000000..cd45e2a43 --- /dev/null +++ b/Src/ILGPU/IR/IRSerializer.cs @@ -0,0 +1,82 @@ +// --------------------------------------------------------------------------------------- +// ILGPU +// Copyright (c) 2024 ILGPU Project +// www.ilgpu.net +// +// File: IRSerializer.cs +// +// This file is part of ILGPU and is distributed under the University of Illinois Open +// Source License. See LICENSE.txt for details. +// --------------------------------------------------------------------------------------- + +using System; +using System.IO; +using System.Text; + +namespace ILGPU.IR +{ + /// + /// Wrapper class around for serializing IR types and values. + /// + public sealed partial class IRSerializer : IDisposable + { + private readonly BinaryWriter writer; + + /// + /// Wraps an instance of + /// around a given . + /// + /// + /// The instance to wrap. + /// + /// + /// The to use for + /// serializing values. + /// + public IRSerializer(Stream stream, Encoding encoding) + { + writer = new BinaryWriter(stream, encoding); + } + + /// + /// Serializes a 32-bit integer value to the stream. + /// + /// + /// The value to serialize. + /// + public void Serialize(int value) => + writer.Write(value); + + /// + /// Serializes a 64-bit integer value to the stream. + /// + /// + /// The value to serialize. + /// + public void Serialize(long value) => + writer.Write(value); + + /// + /// Serializes a string value to the stream. + /// + /// + /// The value to serialize. + /// + public void Serialize(string value) => + writer.Write(value); + + /// + /// Serializes an arbitrary value as a 32-bit integer, to the stream. + /// + /// + /// The value to serialize. + /// + public void Serialize(T value) where T : Enum => + writer.Write(Convert.ToInt32(value)); + + /// + /// Disposes of the wrapped instance. + /// + public void Dispose() => ((IDisposable)writer).Dispose(); + } +} diff --git a/Src/ILGPU/IR/Values/AlignValues.cs b/Src/ILGPU/IR/Values/AlignValues.cs index d823c3690..2209ebbc8 100644 --- a/Src/ILGPU/IR/Values/AlignValues.cs +++ b/Src/ILGPU/IR/Values/AlignValues.cs @@ -60,6 +60,9 @@ internal BaseAlignOperationValue( #region Methods + /// + protected internal override void Serialize(IRSerializer serializer) { } + /// /// Tries to determine an explicit alignment compile-time constant (primarily /// for compiler analysis purposes). If this alignment information could not be diff --git a/Src/ILGPU/IR/Values/Arithmetic.cs b/Src/ILGPU/IR/Values/Arithmetic.cs index c2b26a726..4adfdf9fc 100644 --- a/Src/ILGPU/IR/Values/Arithmetic.cs +++ b/Src/ILGPU/IR/Values/Arithmetic.cs @@ -189,6 +189,13 @@ protected internal override Value Rebuild( Kind, Flags); + /// + protected internal override void Serialize(IRSerializer serializer) + { + serializer.Serialize(Kind); + serializer.Serialize(Flags); + } + /// public override void Accept(T visitor) => visitor.Visit(this); @@ -321,6 +328,13 @@ protected internal override Value Rebuild( Kind, Flags); + /// + protected internal override void Serialize(IRSerializer serializer) + { + serializer.Serialize(Kind); + serializer.Serialize(Flags); + } + /// public override void Accept(T visitor) => visitor.Visit(this); @@ -450,6 +464,13 @@ protected internal override Value Rebuild( Kind, Flags); + /// + protected internal override void Serialize(IRSerializer serializer) + { + serializer.Serialize(Kind); + serializer.Serialize(Flags); + } + /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/ArrayValues.cs b/Src/ILGPU/IR/Values/ArrayValues.cs index 795e24980..5b5a0f805 100644 --- a/Src/ILGPU/IR/Values/ArrayValues.cs +++ b/Src/ILGPU/IR/Values/ArrayValues.cs @@ -153,6 +153,9 @@ protected internal override Value Rebuild( return builder.FinishNewArray(Location, Type, ref dimensions); } + /// + protected internal override void Serialize(IRSerializer serializer) { } + /// public override void Accept(T visitor) => visitor.Visit(this); @@ -237,6 +240,9 @@ protected internal override Value Rebuild( rebuilder.Rebuild(ArrayValue), rebuilder.Rebuild(Dimension)); + /// + protected internal override void Serialize(IRSerializer serializer) { } + /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Atomic.cs b/Src/ILGPU/IR/Values/Atomic.cs index 090546364..4c6bcff81 100644 --- a/Src/ILGPU/IR/Values/Atomic.cs +++ b/Src/ILGPU/IR/Values/Atomic.cs @@ -200,6 +200,13 @@ protected internal override Value Rebuild( Kind, Flags); + /// + protected internal override void Serialize(IRSerializer serializer) + { + serializer.Serialize(Kind); + serializer.Serialize(Flags); + } + /// public override void Accept(T visitor) => visitor.Visit(this); @@ -274,6 +281,10 @@ protected internal override Value Rebuild( rebuilder.Rebuild(CompareValue), Flags); + /// + protected internal override void Serialize(IRSerializer serializer) => + serializer.Serialize(Flags); + /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Cast.cs b/Src/ILGPU/IR/Values/Cast.cs index 12ddf48a1..729a5ee61 100644 --- a/Src/ILGPU/IR/Values/Cast.cs +++ b/Src/ILGPU/IR/Values/Cast.cs @@ -136,6 +136,9 @@ protected internal override Value Rebuild( Location, rebuilder.Rebuild(Value)); + /// + protected internal override void Serialize(IRSerializer serializer) { } + /// public override void Accept(T visitor) => visitor.Visit(this); @@ -210,6 +213,9 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Value), TargetBasicValueType); + /// + protected internal override void Serialize(IRSerializer serializer) { } + /// public override void Accept(T visitor) => visitor.Visit(this); @@ -322,6 +328,9 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Value), TargetElementType); + /// + protected internal override void Serialize(IRSerializer serializer) { } + /// public override void Accept(T visitor) => visitor.Visit(this); @@ -418,6 +427,10 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Value), TargetAddressSpace); + /// + protected internal override void Serialize(IRSerializer serializer) => + serializer.Serialize(TargetAddressSpace); + /// public override void Accept(T visitor) => visitor.Visit(this); @@ -497,6 +510,9 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Value), TargetElementType); + /// + protected internal override void Serialize(IRSerializer serializer) { } + /// public override void Accept(T visitor) => visitor.Visit(this); @@ -569,6 +585,9 @@ protected internal override Value Rebuild( Location, rebuilder.Rebuild(Value)); + /// + protected internal override void Serialize(IRSerializer serializer) { } + /// public override void Accept(T visitor) => visitor.Visit(this); @@ -699,6 +718,9 @@ protected internal override Value Rebuild( Location, rebuilder.Rebuild(Value)); + /// + protected internal override void Serialize(IRSerializer serializer) { } + /// public override void Accept(T visitor) => visitor.Visit(this); @@ -765,6 +787,9 @@ protected internal override Value Rebuild( Location, rebuilder.Rebuild(Value)); + /// + protected internal override void Serialize(IRSerializer serializer) { } + /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Compare.cs b/Src/ILGPU/IR/Values/Compare.cs index 7903b2dc1..1b25ffe81 100644 --- a/Src/ILGPU/IR/Values/Compare.cs +++ b/Src/ILGPU/IR/Values/Compare.cs @@ -273,6 +273,13 @@ protected internal override Value Rebuild( Kind, Flags); + /// + protected internal override void Serialize(IRSerializer serializer) + { + serializer.Serialize(Kind); + serializer.Serialize(Flags); + } + /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Constants.cs b/Src/ILGPU/IR/Values/Constants.cs index 9c79a7684..ae837d1a3 100644 --- a/Src/ILGPU/IR/Values/Constants.cs +++ b/Src/ILGPU/IR/Values/Constants.cs @@ -77,6 +77,9 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreateNull(Location, Type); + /// + protected internal override void Serialize(IRSerializer serializer) { } + /// public override void Accept(T visitor) => visitor.Visit(this); @@ -276,6 +279,13 @@ protected internal override Value Rebuild( BasicValueType, rawValue); + /// + protected internal override void Serialize(IRSerializer serializer) + { + serializer.Serialize(BasicValueType); + serializer.Serialize(rawValue); + } + /// public override void Accept(T visitor) => visitor.Visit(this); @@ -369,6 +379,13 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreatePrimitiveValue(Location, String); + /// + protected internal override void Serialize(IRSerializer serializer) + { + serializer.Serialize(Encoding.CodePage); + serializer.Serialize(String); + } + /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Convert.cs b/Src/ILGPU/IR/Values/Convert.cs index 641b02cf6..7a33db3c2 100644 --- a/Src/ILGPU/IR/Values/Convert.cs +++ b/Src/ILGPU/IR/Values/Convert.cs @@ -136,6 +136,10 @@ protected internal override Value Rebuild( Type, Flags); + /// + protected internal override void Serialize(IRSerializer serializer) => + serializer.Serialize(Flags); + /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Debug.cs b/Src/ILGPU/IR/Values/Debug.cs index ec55aae1c..5e3d76cd9 100644 --- a/Src/ILGPU/IR/Values/Debug.cs +++ b/Src/ILGPU/IR/Values/Debug.cs @@ -106,6 +106,9 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Condition), rebuilder.Rebuild(Message)); + /// + protected internal override void Serialize(IRSerializer serializer) { } + /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/DeviceConstants.cs b/Src/ILGPU/IR/Values/DeviceConstants.cs index d3166990b..629df6f50 100644 --- a/Src/ILGPU/IR/Values/DeviceConstants.cs +++ b/Src/ILGPU/IR/Values/DeviceConstants.cs @@ -71,6 +71,9 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreateAcceleratorTypeValue(Location); + /// + protected internal override void Serialize(IRSerializer serializer) { } + /// public override void Accept(T visitor) => visitor.Visit(this); @@ -138,6 +141,14 @@ internal DeviceConstantDimensionValue( #endregion + #region Methods + + /// + protected internal override void Serialize(IRSerializer serializer) => + serializer.Serialize(Dimension); + + #endregion + #region Object /// @@ -377,6 +388,9 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreateWarpSizeValue(Location); + /// + protected internal override void Serialize(IRSerializer serializer) { } + /// public override void Accept(T visitor) => visitor.Visit(this); @@ -425,6 +439,9 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreateLaneIdxValue(Location); + /// + protected internal override void Serialize(IRSerializer serializer) { } + /// public override void Accept(T visitor) => visitor.Visit(this); @@ -492,6 +509,10 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreateDynamicMemoryLengthValue(Location, ElementType, AddressSpace); + /// + protected internal override void Serialize(IRSerializer serializer) => + serializer.Serialize(AddressSpace); + /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/HandleValue.cs b/Src/ILGPU/IR/Values/HandleValue.cs index 84571842e..b6f053c31 100644 --- a/Src/ILGPU/IR/Values/HandleValue.cs +++ b/Src/ILGPU/IR/Values/HandleValue.cs @@ -63,6 +63,9 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreateRuntimeHandle(Location, Handle); + /// + protected internal override void Serialize(IRSerializer serializer) { } + /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/IOValues.cs b/Src/ILGPU/IR/Values/IOValues.cs index 7ae3d58fc..4f32951f2 100644 --- a/Src/ILGPU/IR/Values/IOValues.cs +++ b/Src/ILGPU/IR/Values/IOValues.cs @@ -269,6 +269,9 @@ protected internal override Value Rebuild( ref arguments); } + /// + protected internal override void Serialize(IRSerializer serializer) { } + /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/LanguageValues.cs b/Src/ILGPU/IR/Values/LanguageValues.cs index 1b489c5a8..c6643d774 100644 --- a/Src/ILGPU/IR/Values/LanguageValues.cs +++ b/Src/ILGPU/IR/Values/LanguageValues.cs @@ -165,6 +165,9 @@ protected internal override Value Rebuild( ref arguments); } + /// + protected internal override void Serialize(IRSerializer serializer) { } + /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Memory.cs b/Src/ILGPU/IR/Values/Memory.cs index d564da72d..405f649d5 100644 --- a/Src/ILGPU/IR/Values/Memory.cs +++ b/Src/ILGPU/IR/Values/Memory.cs @@ -139,6 +139,10 @@ protected internal override Value Rebuild( AddressSpace, rebuilder.Rebuild(ArrayLength)); + /// + protected internal override void Serialize(IRSerializer serializer) => + serializer.Serialize(AddressSpace); + /// public override void Accept(T visitor) => visitor.Visit(this); @@ -228,6 +232,10 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreateMemoryBarrier(Location, Kind); + /// + protected internal override void Serialize(IRSerializer serializer) => + serializer.Serialize(Kind); + /// public override void Accept(T visitor) => visitor.Visit(this); @@ -299,6 +307,9 @@ protected internal override Value Rebuild( Location, rebuilder.Rebuild(Source)); + /// + protected internal override void Serialize(IRSerializer serializer) { } + /// public override void Accept(T visitor) => visitor.Visit(this); @@ -378,6 +389,9 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Target), rebuilder.Rebuild(Value)); + /// + protected internal override void Serialize(IRSerializer serializer) { } + /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/MethodCall.cs b/Src/ILGPU/IR/Values/MethodCall.cs index 12bf0a2bb..516f387ad 100644 --- a/Src/ILGPU/IR/Values/MethodCall.cs +++ b/Src/ILGPU/IR/Values/MethodCall.cs @@ -150,6 +150,10 @@ protected internal override Value Rebuild( return call.Seal(); } + /// + protected internal override void Serialize(IRSerializer serializer) => + serializer.Serialize(Target.Id); + /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Parameter.cs b/Src/ILGPU/IR/Values/Parameter.cs index 7b64b24cf..7b59ea570 100644 --- a/Src/ILGPU/IR/Values/Parameter.cs +++ b/Src/ILGPU/IR/Values/Parameter.cs @@ -94,6 +94,9 @@ protected internal override Value Rebuild( // Params have already been mapped in the beginning rebuilder.Rebuild(this); + /// + protected internal override void Serialize(IRSerializer serializer) { } + /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/PhiValue.cs b/Src/ILGPU/IR/Values/PhiValue.cs index b4cd9e399..a9d930b63 100644 --- a/Src/ILGPU/IR/Values/PhiValue.cs +++ b/Src/ILGPU/IR/Values/PhiValue.cs @@ -388,6 +388,15 @@ protected internal override Value Rebuild( // Phi values have already been mapped in the beginning rebuilder.Rebuild(this); + /// + protected internal override void Serialize(IRSerializer serializer) + { + foreach (var source in Sources) + { + serializer.Serialize(source.Id); + } + } + /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/PointerValues.cs b/Src/ILGPU/IR/Values/PointerValues.cs index c3d4e1985..4dce1f522 100644 --- a/Src/ILGPU/IR/Values/PointerValues.cs +++ b/Src/ILGPU/IR/Values/PointerValues.cs @@ -131,6 +131,9 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Offset), rebuilder.Rebuild(Length)); + /// + protected internal override void Serialize(IRSerializer serializer) { } + /// public override void Accept(T visitor) => visitor.Visit(this); @@ -218,6 +221,9 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Source), rebuilder.Rebuild(Offset)); + /// + protected internal override void Serialize(IRSerializer serializer) { } + /// public override void Accept(T visitor) => visitor.Visit(this); @@ -391,6 +397,9 @@ protected internal override Value Rebuild( ref values); } + /// + protected internal override void Serialize(IRSerializer serializer) { } + /// public override void Accept(T visitor) => visitor.Visit(this); @@ -482,6 +491,13 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Source), FieldSpan); + /// + protected internal override void Serialize(IRSerializer serializer) + { + serializer.Serialize(FieldSpan.Index); + serializer.Serialize(FieldSpan.Span); + } + /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Predicate.cs b/Src/ILGPU/IR/Values/Predicate.cs index bbe64971d..2fda4c746 100644 --- a/Src/ILGPU/IR/Values/Predicate.cs +++ b/Src/ILGPU/IR/Values/Predicate.cs @@ -88,6 +88,9 @@ protected internal override Value Rebuild( rebuilder.Rebuild(TrueValue), rebuilder.Rebuild(FalseValue)); + /// + protected internal override void Serialize(IRSerializer serializer) { } + /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/StructureValues.cs b/Src/ILGPU/IR/Values/StructureValues.cs index f11664dd1..18a8d3411 100644 --- a/Src/ILGPU/IR/Values/StructureValues.cs +++ b/Src/ILGPU/IR/Values/StructureValues.cs @@ -1037,6 +1037,9 @@ protected internal override Value Rebuild( return instance.Seal(); } + /// + protected internal override void Serialize(IRSerializer serializer) { } + /// public override void Accept(T visitor) => visitor.Visit(this); @@ -1092,6 +1095,17 @@ internal StructureOperationValue( #endregion + #region Methods + + /// + protected internal override void Serialize(IRSerializer serializer) + { + serializer.Serialize(FieldSpan.Index); + serializer.Serialize(FieldSpan.Span); + } + + #endregion + #region Object /// diff --git a/Src/ILGPU/IR/Values/Terminators.cs b/Src/ILGPU/IR/Values/Terminators.cs index 95e264379..68f7febcc 100644 --- a/Src/ILGPU/IR/Values/Terminators.cs +++ b/Src/ILGPU/IR/Values/Terminators.cs @@ -228,6 +228,9 @@ protected internal override Value Rebuild( Location, rebuilder.Rebuild(ReturnValue)); + /// + protected internal override void Serialize(IRSerializer serializer) { } + /// /// Throws an . /// @@ -275,6 +278,16 @@ internal Branch(in ValueInitializer initializer) protected override TypeNode ComputeType(in ValueInitializer initializer) => initializer.Context.VoidType; + /// + protected internal override void Serialize(IRSerializer serializer) + { + serializer.Serialize(NumTargets); + foreach (var target in Targets) + { + serializer.Serialize(target.Id); + } + } + #endregion } diff --git a/Src/ILGPU/IR/Values/Threads.cs b/Src/ILGPU/IR/Values/Threads.cs index f3738edf2..a8e62bcf2 100644 --- a/Src/ILGPU/IR/Values/Threads.cs +++ b/Src/ILGPU/IR/Values/Threads.cs @@ -124,6 +124,10 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Predicate), Kind); + /// + protected internal override void Serialize(IRSerializer serializer) => + serializer.Serialize(Kind); + /// public override void Accept(T visitor) => visitor.Visit(this); @@ -204,6 +208,10 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreateBarrier(Location, Kind); + /// + protected internal override void Serialize(IRSerializer serializer) => + serializer.Serialize(Kind); + /// public override void Accept(T visitor) => visitor.Visit(this); @@ -326,6 +334,10 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Origin), Kind); + /// + protected internal override void Serialize(IRSerializer serializer) => + serializer.Serialize(Kind); + /// public override void Accept(T visitor) => visitor.Visit(this); @@ -404,6 +416,14 @@ internal ShuffleOperation( #endregion + #region Methods + + /// + protected internal override void Serialize(IRSerializer serializer) => + serializer.Serialize(Kind); + + #endregion + #region Object /// diff --git a/Src/ILGPU/IR/Values/Undefined.cs b/Src/ILGPU/IR/Values/Undefined.cs index 415cdbb77..253089e21 100644 --- a/Src/ILGPU/IR/Values/Undefined.cs +++ b/Src/ILGPU/IR/Values/Undefined.cs @@ -49,6 +49,9 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreateUndefined(); + /// + protected internal override void Serialize(IRSerializer serializer) { } + /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Value.cs b/Src/ILGPU/IR/Values/Value.cs index 863e0b00d..f4a773b4c 100644 --- a/Src/ILGPU/IR/Values/Value.cs +++ b/Src/ILGPU/IR/Values/Value.cs @@ -544,6 +544,14 @@ protected internal abstract Value Rebuild( IRBuilder builder, IRRebuilder rebuilder); + /// + /// Serializes this instance's specific internals to the given . + /// + /// + /// The given serializer instance. + /// + protected internal abstract void Serialize(IRSerializer serializer); + /// /// Verifies that the this value is not sealed. /// @@ -778,4 +786,24 @@ protected ValueParent(Location location) #endregion } + + public sealed partial class IRSerializer + { + /// + /// Writes an IR instance to the stream. + /// + /// + /// The value to write to the stream. + /// + public void Serialize(Value value) + { + Serialize(value.ValueKind); + + Serialize(value.Count); + foreach (var node in value.Nodes) + Serialize(node.Id); + + value.Serialize(this); + } + } } diff --git a/Src/ILGPU/IR/Values/View.cs b/Src/ILGPU/IR/Values/View.cs index af498848a..067209b8b 100644 --- a/Src/ILGPU/IR/Values/View.cs +++ b/Src/ILGPU/IR/Values/View.cs @@ -88,6 +88,9 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Pointer), rebuilder.Rebuild(Length)); + /// + protected internal override void Serialize(IRSerializer serializer) { } + /// public override void Accept(T visitor) => visitor.Visit(this); @@ -227,6 +230,10 @@ protected internal override Value Rebuild( rebuilder.Rebuild(View), LengthType); + /// + protected internal override void Serialize(IRSerializer serializer) => + serializer.Serialize(LengthType); + /// public override void Accept(T visitor) => visitor.Visit(this); From 979b9964f376fd2de6b4455ea56ab013a0881f7c Mon Sep 17 00:00:00 2001 From: Isabelle Santin Date: Tue, 21 May 2024 11:42:28 -0500 Subject: [PATCH 02/16] Rename `IRSerializer` to `IRWriter` --- Src/ILGPU/IR/{IRSerializer.cs => IRWriter.cs} | 8 ++--- Src/ILGPU/IR/Values/AlignValues.cs | 4 +-- Src/ILGPU/IR/Values/Arithmetic.cs | 12 +++---- Src/ILGPU/IR/Values/ArrayValues.cs | 4 +-- Src/ILGPU/IR/Values/Atomic.cs | 8 ++--- Src/ILGPU/IR/Values/Cast.cs | 32 +++++++++---------- Src/ILGPU/IR/Values/Compare.cs | 4 +-- Src/ILGPU/IR/Values/Constants.cs | 12 +++---- Src/ILGPU/IR/Values/Convert.cs | 4 +-- Src/ILGPU/IR/Values/Debug.cs | 4 +-- Src/ILGPU/IR/Values/DeviceConstants.cs | 20 ++++++------ Src/ILGPU/IR/Values/HandleValue.cs | 4 +-- Src/ILGPU/IR/Values/IOValues.cs | 4 +-- Src/ILGPU/IR/Values/LanguageValues.cs | 4 +-- Src/ILGPU/IR/Values/Memory.cs | 16 +++++----- Src/ILGPU/IR/Values/MethodCall.cs | 4 +-- Src/ILGPU/IR/Values/Parameter.cs | 4 +-- Src/ILGPU/IR/Values/PhiValue.cs | 4 +-- Src/ILGPU/IR/Values/PointerValues.cs | 16 +++++----- Src/ILGPU/IR/Values/Predicate.cs | 4 +-- Src/ILGPU/IR/Values/StructureValues.cs | 8 ++--- Src/ILGPU/IR/Values/Terminators.cs | 8 ++--- Src/ILGPU/IR/Values/Threads.cs | 16 +++++----- Src/ILGPU/IR/Values/Undefined.cs | 4 +-- Src/ILGPU/IR/Values/Value.cs | 6 ++-- Src/ILGPU/IR/Values/View.cs | 8 ++--- 26 files changed, 111 insertions(+), 111 deletions(-) rename Src/ILGPU/IR/{IRSerializer.cs => IRWriter.cs} (92%) diff --git a/Src/ILGPU/IR/IRSerializer.cs b/Src/ILGPU/IR/IRWriter.cs similarity index 92% rename from Src/ILGPU/IR/IRSerializer.cs rename to Src/ILGPU/IR/IRWriter.cs index cd45e2a43..5f9aca16b 100644 --- a/Src/ILGPU/IR/IRSerializer.cs +++ b/Src/ILGPU/IR/IRWriter.cs @@ -3,7 +3,7 @@ // Copyright (c) 2024 ILGPU Project // www.ilgpu.net // -// File: IRSerializer.cs +// File: IRWriter.cs // // This file is part of ILGPU and is distributed under the University of Illinois Open // Source License. See LICENSE.txt for details. @@ -18,12 +18,12 @@ namespace ILGPU.IR /// /// Wrapper class around for serializing IR types and values. /// - public sealed partial class IRSerializer : IDisposable + public sealed partial class IRWriter : IDisposable { private readonly BinaryWriter writer; /// - /// Wraps an instance of + /// Wraps an instance of /// around a given . /// /// @@ -33,7 +33,7 @@ public sealed partial class IRSerializer : IDisposable /// The to use for /// serializing values. /// - public IRSerializer(Stream stream, Encoding encoding) + public IRWriter(Stream stream, Encoding encoding) { writer = new BinaryWriter(stream, encoding); } diff --git a/Src/ILGPU/IR/Values/AlignValues.cs b/Src/ILGPU/IR/Values/AlignValues.cs index 2209ebbc8..182d31580 100644 --- a/Src/ILGPU/IR/Values/AlignValues.cs +++ b/Src/ILGPU/IR/Values/AlignValues.cs @@ -60,8 +60,8 @@ internal BaseAlignOperationValue( #region Methods - /// - protected internal override void Serialize(IRSerializer serializer) { } + /// + protected internal override void Serialize(IRWriter serializer) { } /// /// Tries to determine an explicit alignment compile-time constant (primarily diff --git a/Src/ILGPU/IR/Values/Arithmetic.cs b/Src/ILGPU/IR/Values/Arithmetic.cs index 4adfdf9fc..d1f05ec6e 100644 --- a/Src/ILGPU/IR/Values/Arithmetic.cs +++ b/Src/ILGPU/IR/Values/Arithmetic.cs @@ -189,8 +189,8 @@ protected internal override Value Rebuild( Kind, Flags); - /// - protected internal override void Serialize(IRSerializer serializer) + /// + protected internal override void Serialize(IRWriter serializer) { serializer.Serialize(Kind); serializer.Serialize(Flags); @@ -328,8 +328,8 @@ protected internal override Value Rebuild( Kind, Flags); - /// - protected internal override void Serialize(IRSerializer serializer) + /// + protected internal override void Serialize(IRWriter serializer) { serializer.Serialize(Kind); serializer.Serialize(Flags); @@ -464,8 +464,8 @@ protected internal override Value Rebuild( Kind, Flags); - /// - protected internal override void Serialize(IRSerializer serializer) + /// + protected internal override void Serialize(IRWriter serializer) { serializer.Serialize(Kind); serializer.Serialize(Flags); diff --git a/Src/ILGPU/IR/Values/ArrayValues.cs b/Src/ILGPU/IR/Values/ArrayValues.cs index 5b5a0f805..323797347 100644 --- a/Src/ILGPU/IR/Values/ArrayValues.cs +++ b/Src/ILGPU/IR/Values/ArrayValues.cs @@ -154,7 +154,7 @@ protected internal override Value Rebuild( } /// - protected internal override void Serialize(IRSerializer serializer) { } + protected internal override void Serialize(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -241,7 +241,7 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Dimension)); /// - protected internal override void Serialize(IRSerializer serializer) { } + protected internal override void Serialize(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Atomic.cs b/Src/ILGPU/IR/Values/Atomic.cs index 4c6bcff81..555c2274c 100644 --- a/Src/ILGPU/IR/Values/Atomic.cs +++ b/Src/ILGPU/IR/Values/Atomic.cs @@ -200,8 +200,8 @@ protected internal override Value Rebuild( Kind, Flags); - /// - protected internal override void Serialize(IRSerializer serializer) + /// + protected internal override void Serialize(IRWriter serializer) { serializer.Serialize(Kind); serializer.Serialize(Flags); @@ -281,8 +281,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(CompareValue), Flags); - /// - protected internal override void Serialize(IRSerializer serializer) => + /// + protected internal override void Serialize(IRWriter serializer) => serializer.Serialize(Flags); /// diff --git a/Src/ILGPU/IR/Values/Cast.cs b/Src/ILGPU/IR/Values/Cast.cs index 729a5ee61..213f83f97 100644 --- a/Src/ILGPU/IR/Values/Cast.cs +++ b/Src/ILGPU/IR/Values/Cast.cs @@ -136,8 +136,8 @@ protected internal override Value Rebuild( Location, rebuilder.Rebuild(Value)); - /// - protected internal override void Serialize(IRSerializer serializer) { } + /// + protected internal override void Serialize(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -213,8 +213,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Value), TargetBasicValueType); - /// - protected internal override void Serialize(IRSerializer serializer) { } + /// + protected internal override void Serialize(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -328,8 +328,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Value), TargetElementType); - /// - protected internal override void Serialize(IRSerializer serializer) { } + /// + protected internal override void Serialize(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -427,8 +427,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Value), TargetAddressSpace); - /// - protected internal override void Serialize(IRSerializer serializer) => + /// + protected internal override void Serialize(IRWriter serializer) => serializer.Serialize(TargetAddressSpace); /// @@ -510,8 +510,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Value), TargetElementType); - /// - protected internal override void Serialize(IRSerializer serializer) { } + /// + protected internal override void Serialize(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -585,8 +585,8 @@ protected internal override Value Rebuild( Location, rebuilder.Rebuild(Value)); - /// - protected internal override void Serialize(IRSerializer serializer) { } + /// + protected internal override void Serialize(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -718,8 +718,8 @@ protected internal override Value Rebuild( Location, rebuilder.Rebuild(Value)); - /// - protected internal override void Serialize(IRSerializer serializer) { } + /// + protected internal override void Serialize(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -787,8 +787,8 @@ protected internal override Value Rebuild( Location, rebuilder.Rebuild(Value)); - /// - protected internal override void Serialize(IRSerializer serializer) { } + /// + protected internal override void Serialize(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Compare.cs b/Src/ILGPU/IR/Values/Compare.cs index 1b25ffe81..7a16488ed 100644 --- a/Src/ILGPU/IR/Values/Compare.cs +++ b/Src/ILGPU/IR/Values/Compare.cs @@ -273,8 +273,8 @@ protected internal override Value Rebuild( Kind, Flags); - /// - protected internal override void Serialize(IRSerializer serializer) + /// + protected internal override void Serialize(IRWriter serializer) { serializer.Serialize(Kind); serializer.Serialize(Flags); diff --git a/Src/ILGPU/IR/Values/Constants.cs b/Src/ILGPU/IR/Values/Constants.cs index ae837d1a3..26e110a43 100644 --- a/Src/ILGPU/IR/Values/Constants.cs +++ b/Src/ILGPU/IR/Values/Constants.cs @@ -77,8 +77,8 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreateNull(Location, Type); - /// - protected internal override void Serialize(IRSerializer serializer) { } + /// + protected internal override void Serialize(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -279,8 +279,8 @@ protected internal override Value Rebuild( BasicValueType, rawValue); - /// - protected internal override void Serialize(IRSerializer serializer) + /// + protected internal override void Serialize(IRWriter serializer) { serializer.Serialize(BasicValueType); serializer.Serialize(rawValue); @@ -379,8 +379,8 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreatePrimitiveValue(Location, String); - /// - protected internal override void Serialize(IRSerializer serializer) + /// + protected internal override void Serialize(IRWriter serializer) { serializer.Serialize(Encoding.CodePage); serializer.Serialize(String); diff --git a/Src/ILGPU/IR/Values/Convert.cs b/Src/ILGPU/IR/Values/Convert.cs index 7a33db3c2..f904fd7f4 100644 --- a/Src/ILGPU/IR/Values/Convert.cs +++ b/Src/ILGPU/IR/Values/Convert.cs @@ -136,8 +136,8 @@ protected internal override Value Rebuild( Type, Flags); - /// - protected internal override void Serialize(IRSerializer serializer) => + /// + protected internal override void Serialize(IRWriter serializer) => serializer.Serialize(Flags); /// diff --git a/Src/ILGPU/IR/Values/Debug.cs b/Src/ILGPU/IR/Values/Debug.cs index 5e3d76cd9..3ec57f7f0 100644 --- a/Src/ILGPU/IR/Values/Debug.cs +++ b/Src/ILGPU/IR/Values/Debug.cs @@ -106,8 +106,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Condition), rebuilder.Rebuild(Message)); - /// - protected internal override void Serialize(IRSerializer serializer) { } + /// + protected internal override void Serialize(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/DeviceConstants.cs b/Src/ILGPU/IR/Values/DeviceConstants.cs index 629df6f50..2ea98dd22 100644 --- a/Src/ILGPU/IR/Values/DeviceConstants.cs +++ b/Src/ILGPU/IR/Values/DeviceConstants.cs @@ -71,8 +71,8 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreateAcceleratorTypeValue(Location); - /// - protected internal override void Serialize(IRSerializer serializer) { } + /// + protected internal override void Serialize(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -143,8 +143,8 @@ internal DeviceConstantDimensionValue( #region Methods - /// - protected internal override void Serialize(IRSerializer serializer) => + /// + protected internal override void Serialize(IRWriter serializer) => serializer.Serialize(Dimension); #endregion @@ -388,8 +388,8 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreateWarpSizeValue(Location); - /// - protected internal override void Serialize(IRSerializer serializer) { } + /// + protected internal override void Serialize(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -439,8 +439,8 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreateLaneIdxValue(Location); - /// - protected internal override void Serialize(IRSerializer serializer) { } + /// + protected internal override void Serialize(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -509,8 +509,8 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreateDynamicMemoryLengthValue(Location, ElementType, AddressSpace); - /// - protected internal override void Serialize(IRSerializer serializer) => + /// + protected internal override void Serialize(IRWriter serializer) => serializer.Serialize(AddressSpace); /// diff --git a/Src/ILGPU/IR/Values/HandleValue.cs b/Src/ILGPU/IR/Values/HandleValue.cs index b6f053c31..283fad6ca 100644 --- a/Src/ILGPU/IR/Values/HandleValue.cs +++ b/Src/ILGPU/IR/Values/HandleValue.cs @@ -63,8 +63,8 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreateRuntimeHandle(Location, Handle); - /// - protected internal override void Serialize(IRSerializer serializer) { } + /// + protected internal override void Serialize(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/IOValues.cs b/Src/ILGPU/IR/Values/IOValues.cs index 4f32951f2..76398eb3a 100644 --- a/Src/ILGPU/IR/Values/IOValues.cs +++ b/Src/ILGPU/IR/Values/IOValues.cs @@ -269,8 +269,8 @@ protected internal override Value Rebuild( ref arguments); } - /// - protected internal override void Serialize(IRSerializer serializer) { } + /// + protected internal override void Serialize(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/LanguageValues.cs b/Src/ILGPU/IR/Values/LanguageValues.cs index c6643d774..731ca7e54 100644 --- a/Src/ILGPU/IR/Values/LanguageValues.cs +++ b/Src/ILGPU/IR/Values/LanguageValues.cs @@ -165,8 +165,8 @@ protected internal override Value Rebuild( ref arguments); } - /// - protected internal override void Serialize(IRSerializer serializer) { } + /// + protected internal override void Serialize(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Memory.cs b/Src/ILGPU/IR/Values/Memory.cs index 405f649d5..d1ddff604 100644 --- a/Src/ILGPU/IR/Values/Memory.cs +++ b/Src/ILGPU/IR/Values/Memory.cs @@ -139,8 +139,8 @@ protected internal override Value Rebuild( AddressSpace, rebuilder.Rebuild(ArrayLength)); - /// - protected internal override void Serialize(IRSerializer serializer) => + /// + protected internal override void Serialize(IRWriter serializer) => serializer.Serialize(AddressSpace); /// @@ -232,8 +232,8 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreateMemoryBarrier(Location, Kind); - /// - protected internal override void Serialize(IRSerializer serializer) => + /// + protected internal override void Serialize(IRWriter serializer) => serializer.Serialize(Kind); /// @@ -307,8 +307,8 @@ protected internal override Value Rebuild( Location, rebuilder.Rebuild(Source)); - /// - protected internal override void Serialize(IRSerializer serializer) { } + /// + protected internal override void Serialize(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -389,8 +389,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Target), rebuilder.Rebuild(Value)); - /// - protected internal override void Serialize(IRSerializer serializer) { } + /// + protected internal override void Serialize(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/MethodCall.cs b/Src/ILGPU/IR/Values/MethodCall.cs index 516f387ad..20398682a 100644 --- a/Src/ILGPU/IR/Values/MethodCall.cs +++ b/Src/ILGPU/IR/Values/MethodCall.cs @@ -150,8 +150,8 @@ protected internal override Value Rebuild( return call.Seal(); } - /// - protected internal override void Serialize(IRSerializer serializer) => + /// + protected internal override void Serialize(IRWriter serializer) => serializer.Serialize(Target.Id); /// diff --git a/Src/ILGPU/IR/Values/Parameter.cs b/Src/ILGPU/IR/Values/Parameter.cs index 7b59ea570..abc60e164 100644 --- a/Src/ILGPU/IR/Values/Parameter.cs +++ b/Src/ILGPU/IR/Values/Parameter.cs @@ -94,8 +94,8 @@ protected internal override Value Rebuild( // Params have already been mapped in the beginning rebuilder.Rebuild(this); - /// - protected internal override void Serialize(IRSerializer serializer) { } + /// + protected internal override void Serialize(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/PhiValue.cs b/Src/ILGPU/IR/Values/PhiValue.cs index a9d930b63..65cd677c9 100644 --- a/Src/ILGPU/IR/Values/PhiValue.cs +++ b/Src/ILGPU/IR/Values/PhiValue.cs @@ -388,8 +388,8 @@ protected internal override Value Rebuild( // Phi values have already been mapped in the beginning rebuilder.Rebuild(this); - /// - protected internal override void Serialize(IRSerializer serializer) + /// + protected internal override void Serialize(IRWriter serializer) { foreach (var source in Sources) { diff --git a/Src/ILGPU/IR/Values/PointerValues.cs b/Src/ILGPU/IR/Values/PointerValues.cs index 4dce1f522..d766169be 100644 --- a/Src/ILGPU/IR/Values/PointerValues.cs +++ b/Src/ILGPU/IR/Values/PointerValues.cs @@ -131,8 +131,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Offset), rebuilder.Rebuild(Length)); - /// - protected internal override void Serialize(IRSerializer serializer) { } + /// + protected internal override void Serialize(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -221,8 +221,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Source), rebuilder.Rebuild(Offset)); - /// - protected internal override void Serialize(IRSerializer serializer) { } + /// + protected internal override void Serialize(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -397,8 +397,8 @@ protected internal override Value Rebuild( ref values); } - /// - protected internal override void Serialize(IRSerializer serializer) { } + /// + protected internal override void Serialize(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -491,8 +491,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Source), FieldSpan); - /// - protected internal override void Serialize(IRSerializer serializer) + /// + protected internal override void Serialize(IRWriter serializer) { serializer.Serialize(FieldSpan.Index); serializer.Serialize(FieldSpan.Span); diff --git a/Src/ILGPU/IR/Values/Predicate.cs b/Src/ILGPU/IR/Values/Predicate.cs index 2fda4c746..2af06defd 100644 --- a/Src/ILGPU/IR/Values/Predicate.cs +++ b/Src/ILGPU/IR/Values/Predicate.cs @@ -88,8 +88,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(TrueValue), rebuilder.Rebuild(FalseValue)); - /// - protected internal override void Serialize(IRSerializer serializer) { } + /// + protected internal override void Serialize(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/StructureValues.cs b/Src/ILGPU/IR/Values/StructureValues.cs index 18a8d3411..c457f1372 100644 --- a/Src/ILGPU/IR/Values/StructureValues.cs +++ b/Src/ILGPU/IR/Values/StructureValues.cs @@ -1037,8 +1037,8 @@ protected internal override Value Rebuild( return instance.Seal(); } - /// - protected internal override void Serialize(IRSerializer serializer) { } + /// + protected internal override void Serialize(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -1097,8 +1097,8 @@ internal StructureOperationValue( #region Methods - /// - protected internal override void Serialize(IRSerializer serializer) + /// + protected internal override void Serialize(IRWriter serializer) { serializer.Serialize(FieldSpan.Index); serializer.Serialize(FieldSpan.Span); diff --git a/Src/ILGPU/IR/Values/Terminators.cs b/Src/ILGPU/IR/Values/Terminators.cs index 68f7febcc..ab1366033 100644 --- a/Src/ILGPU/IR/Values/Terminators.cs +++ b/Src/ILGPU/IR/Values/Terminators.cs @@ -228,8 +228,8 @@ protected internal override Value Rebuild( Location, rebuilder.Rebuild(ReturnValue)); - /// - protected internal override void Serialize(IRSerializer serializer) { } + /// + protected internal override void Serialize(IRWriter serializer) { } /// /// Throws an . @@ -278,8 +278,8 @@ internal Branch(in ValueInitializer initializer) protected override TypeNode ComputeType(in ValueInitializer initializer) => initializer.Context.VoidType; - /// - protected internal override void Serialize(IRSerializer serializer) + /// + protected internal override void Serialize(IRWriter serializer) { serializer.Serialize(NumTargets); foreach (var target in Targets) diff --git a/Src/ILGPU/IR/Values/Threads.cs b/Src/ILGPU/IR/Values/Threads.cs index a8e62bcf2..a61724eb9 100644 --- a/Src/ILGPU/IR/Values/Threads.cs +++ b/Src/ILGPU/IR/Values/Threads.cs @@ -124,8 +124,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Predicate), Kind); - /// - protected internal override void Serialize(IRSerializer serializer) => + /// + protected internal override void Serialize(IRWriter serializer) => serializer.Serialize(Kind); /// @@ -208,8 +208,8 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreateBarrier(Location, Kind); - /// - protected internal override void Serialize(IRSerializer serializer) => + /// + protected internal override void Serialize(IRWriter serializer) => serializer.Serialize(Kind); /// @@ -334,8 +334,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Origin), Kind); - /// - protected internal override void Serialize(IRSerializer serializer) => + /// + protected internal override void Serialize(IRWriter serializer) => serializer.Serialize(Kind); /// @@ -418,8 +418,8 @@ internal ShuffleOperation( #region Methods - /// - protected internal override void Serialize(IRSerializer serializer) => + /// + protected internal override void Serialize(IRWriter serializer) => serializer.Serialize(Kind); #endregion diff --git a/Src/ILGPU/IR/Values/Undefined.cs b/Src/ILGPU/IR/Values/Undefined.cs index 253089e21..cfc13dc1d 100644 --- a/Src/ILGPU/IR/Values/Undefined.cs +++ b/Src/ILGPU/IR/Values/Undefined.cs @@ -49,8 +49,8 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreateUndefined(); - /// - protected internal override void Serialize(IRSerializer serializer) { } + /// + protected internal override void Serialize(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Value.cs b/Src/ILGPU/IR/Values/Value.cs index f4a773b4c..fc7999c95 100644 --- a/Src/ILGPU/IR/Values/Value.cs +++ b/Src/ILGPU/IR/Values/Value.cs @@ -545,12 +545,12 @@ protected internal abstract Value Rebuild( IRRebuilder rebuilder); /// - /// Serializes this instance's specific internals to the given . + /// Serializes this instance's specific internals to the given . /// /// /// The given serializer instance. /// - protected internal abstract void Serialize(IRSerializer serializer); + protected internal abstract void Serialize(IRWriter serializer); /// /// Verifies that the this value is not sealed. @@ -787,7 +787,7 @@ protected ValueParent(Location location) #endregion } - public sealed partial class IRSerializer + public sealed partial class IRWriter { /// /// Writes an IR instance to the stream. diff --git a/Src/ILGPU/IR/Values/View.cs b/Src/ILGPU/IR/Values/View.cs index 067209b8b..a99b9cb0b 100644 --- a/Src/ILGPU/IR/Values/View.cs +++ b/Src/ILGPU/IR/Values/View.cs @@ -88,8 +88,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Pointer), rebuilder.Rebuild(Length)); - /// - protected internal override void Serialize(IRSerializer serializer) { } + /// + protected internal override void Serialize(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -230,8 +230,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(View), LengthType); - /// - protected internal override void Serialize(IRSerializer serializer) => + /// + protected internal override void Serialize(IRWriter serializer) => serializer.Serialize(LengthType); /// From e81100264dbf2a72c80883054d00869911e409d2 Mon Sep 17 00:00:00 2001 From: Isabelle Santin Date: Tue, 21 May 2024 11:48:26 -0500 Subject: [PATCH 03/16] All `Value` writing logic is complete --- Src/ILGPU/IR/IRWriter.cs | 8 +++--- Src/ILGPU/IR/Values/AlignValues.cs | 4 +-- Src/ILGPU/IR/Values/Arithmetic.cs | 24 +++++++++--------- Src/ILGPU/IR/Values/ArrayValues.cs | 4 +-- Src/ILGPU/IR/Values/Atomic.cs | 14 +++++------ Src/ILGPU/IR/Values/Cast.cs | 34 +++++++++++++------------- Src/ILGPU/IR/Values/Compare.cs | 8 +++--- Src/ILGPU/IR/Values/Constants.cs | 20 +++++++-------- Src/ILGPU/IR/Values/Convert.cs | 6 ++--- Src/ILGPU/IR/Values/Debug.cs | 4 +-- Src/ILGPU/IR/Values/DeviceConstants.cs | 24 +++++++++--------- Src/ILGPU/IR/Values/HandleValue.cs | 4 +-- Src/ILGPU/IR/Values/IOValues.cs | 4 +-- Src/ILGPU/IR/Values/LanguageValues.cs | 4 +-- Src/ILGPU/IR/Values/Memory.cs | 20 +++++++-------- Src/ILGPU/IR/Values/MethodCall.cs | 6 ++--- Src/ILGPU/IR/Values/Parameter.cs | 4 +-- Src/ILGPU/IR/Values/PhiValue.cs | 6 ++--- Src/ILGPU/IR/Values/PointerValues.cs | 20 +++++++-------- Src/ILGPU/IR/Values/Predicate.cs | 4 +-- Src/ILGPU/IR/Values/StructureValues.cs | 12 ++++----- Src/ILGPU/IR/Values/Terminators.cs | 12 ++++----- Src/ILGPU/IR/Values/Threads.cs | 24 +++++++++--------- Src/ILGPU/IR/Values/Undefined.cs | 4 +-- Src/ILGPU/IR/Values/Value.cs | 17 +++++++------ Src/ILGPU/IR/Values/View.cs | 10 ++++---- 26 files changed, 152 insertions(+), 149 deletions(-) diff --git a/Src/ILGPU/IR/IRWriter.cs b/Src/ILGPU/IR/IRWriter.cs index 5f9aca16b..9fb647c1d 100644 --- a/Src/ILGPU/IR/IRWriter.cs +++ b/Src/ILGPU/IR/IRWriter.cs @@ -44,7 +44,7 @@ public IRWriter(Stream stream, Encoding encoding) /// /// The value to serialize. /// - public void Serialize(int value) => + public void Write(int value) => writer.Write(value); /// @@ -53,7 +53,7 @@ public void Serialize(int value) => /// /// The value to serialize. /// - public void Serialize(long value) => + public void Write(long value) => writer.Write(value); /// @@ -62,7 +62,7 @@ public void Serialize(long value) => /// /// The value to serialize. /// - public void Serialize(string value) => + public void Write(string value) => writer.Write(value); /// @@ -71,7 +71,7 @@ public void Serialize(string value) => /// /// The value to serialize. /// - public void Serialize(T value) where T : Enum => + public void Write(T value) where T : Enum => writer.Write(Convert.ToInt32(value)); /// diff --git a/Src/ILGPU/IR/Values/AlignValues.cs b/Src/ILGPU/IR/Values/AlignValues.cs index 182d31580..3cb50b9a7 100644 --- a/Src/ILGPU/IR/Values/AlignValues.cs +++ b/Src/ILGPU/IR/Values/AlignValues.cs @@ -60,8 +60,8 @@ internal BaseAlignOperationValue( #region Methods - /// - protected internal override void Serialize(IRWriter serializer) { } + /// + protected internal override void Write(IRWriter serializer) { } /// /// Tries to determine an explicit alignment compile-time constant (primarily diff --git a/Src/ILGPU/IR/Values/Arithmetic.cs b/Src/ILGPU/IR/Values/Arithmetic.cs index d1f05ec6e..767e8f9a5 100644 --- a/Src/ILGPU/IR/Values/Arithmetic.cs +++ b/Src/ILGPU/IR/Values/Arithmetic.cs @@ -189,11 +189,11 @@ protected internal override Value Rebuild( Kind, Flags); - /// - protected internal override void Serialize(IRWriter serializer) + /// + protected internal override void Write(IRWriter serializer) { - serializer.Serialize(Kind); - serializer.Serialize(Flags); + serializer.Write(Kind); + serializer.Write(Flags); } /// @@ -328,11 +328,11 @@ protected internal override Value Rebuild( Kind, Flags); - /// - protected internal override void Serialize(IRWriter serializer) + /// + protected internal override void Write(IRWriter serializer) { - serializer.Serialize(Kind); - serializer.Serialize(Flags); + serializer.Write(Kind); + serializer.Write(Flags); } /// @@ -464,11 +464,11 @@ protected internal override Value Rebuild( Kind, Flags); - /// - protected internal override void Serialize(IRWriter serializer) + /// + protected internal override void Write(IRWriter serializer) { - serializer.Serialize(Kind); - serializer.Serialize(Flags); + serializer.Write(Kind); + serializer.Write(Flags); } /// diff --git a/Src/ILGPU/IR/Values/ArrayValues.cs b/Src/ILGPU/IR/Values/ArrayValues.cs index 323797347..3800f825d 100644 --- a/Src/ILGPU/IR/Values/ArrayValues.cs +++ b/Src/ILGPU/IR/Values/ArrayValues.cs @@ -154,7 +154,7 @@ protected internal override Value Rebuild( } /// - protected internal override void Serialize(IRWriter serializer) { } + protected internal override void Write(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -241,7 +241,7 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Dimension)); /// - protected internal override void Serialize(IRWriter serializer) { } + protected internal override void Write(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Atomic.cs b/Src/ILGPU/IR/Values/Atomic.cs index 555c2274c..d6bc0717b 100644 --- a/Src/ILGPU/IR/Values/Atomic.cs +++ b/Src/ILGPU/IR/Values/Atomic.cs @@ -200,11 +200,11 @@ protected internal override Value Rebuild( Kind, Flags); - /// - protected internal override void Serialize(IRWriter serializer) + /// + protected internal override void Write(IRWriter serializer) { - serializer.Serialize(Kind); - serializer.Serialize(Flags); + serializer.Write(Kind); + serializer.Write(Flags); } /// @@ -281,9 +281,9 @@ protected internal override Value Rebuild( rebuilder.Rebuild(CompareValue), Flags); - /// - protected internal override void Serialize(IRWriter serializer) => - serializer.Serialize(Flags); + /// + protected internal override void Write(IRWriter serializer) => + serializer.Write(Flags); /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Cast.cs b/Src/ILGPU/IR/Values/Cast.cs index 213f83f97..e886ab166 100644 --- a/Src/ILGPU/IR/Values/Cast.cs +++ b/Src/ILGPU/IR/Values/Cast.cs @@ -136,8 +136,8 @@ protected internal override Value Rebuild( Location, rebuilder.Rebuild(Value)); - /// - protected internal override void Serialize(IRWriter serializer) { } + /// + protected internal override void Write(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -213,8 +213,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Value), TargetBasicValueType); - /// - protected internal override void Serialize(IRWriter serializer) { } + /// + protected internal override void Write(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -328,8 +328,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Value), TargetElementType); - /// - protected internal override void Serialize(IRWriter serializer) { } + /// + protected internal override void Write(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -427,9 +427,9 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Value), TargetAddressSpace); - /// - protected internal override void Serialize(IRWriter serializer) => - serializer.Serialize(TargetAddressSpace); + /// + protected internal override void Write(IRWriter serializer) => + serializer.Write(TargetAddressSpace); /// public override void Accept(T visitor) => visitor.Visit(this); @@ -510,8 +510,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Value), TargetElementType); - /// - protected internal override void Serialize(IRWriter serializer) { } + /// + protected internal override void Write(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -585,8 +585,8 @@ protected internal override Value Rebuild( Location, rebuilder.Rebuild(Value)); - /// - protected internal override void Serialize(IRWriter serializer) { } + /// + protected internal override void Write(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -718,8 +718,8 @@ protected internal override Value Rebuild( Location, rebuilder.Rebuild(Value)); - /// - protected internal override void Serialize(IRWriter serializer) { } + /// + protected internal override void Write(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -787,8 +787,8 @@ protected internal override Value Rebuild( Location, rebuilder.Rebuild(Value)); - /// - protected internal override void Serialize(IRWriter serializer) { } + /// + protected internal override void Write(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Compare.cs b/Src/ILGPU/IR/Values/Compare.cs index 7a16488ed..2a6257f52 100644 --- a/Src/ILGPU/IR/Values/Compare.cs +++ b/Src/ILGPU/IR/Values/Compare.cs @@ -273,11 +273,11 @@ protected internal override Value Rebuild( Kind, Flags); - /// - protected internal override void Serialize(IRWriter serializer) + /// + protected internal override void Write(IRWriter serializer) { - serializer.Serialize(Kind); - serializer.Serialize(Flags); + serializer.Write(Kind); + serializer.Write(Flags); } /// diff --git a/Src/ILGPU/IR/Values/Constants.cs b/Src/ILGPU/IR/Values/Constants.cs index 26e110a43..06e60ad9a 100644 --- a/Src/ILGPU/IR/Values/Constants.cs +++ b/Src/ILGPU/IR/Values/Constants.cs @@ -77,8 +77,8 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreateNull(Location, Type); - /// - protected internal override void Serialize(IRWriter serializer) { } + /// + protected internal override void Write(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -279,11 +279,11 @@ protected internal override Value Rebuild( BasicValueType, rawValue); - /// - protected internal override void Serialize(IRWriter serializer) + /// + protected internal override void Write(IRWriter serializer) { - serializer.Serialize(BasicValueType); - serializer.Serialize(rawValue); + serializer.Write(BasicValueType); + serializer.Write(rawValue); } /// @@ -379,11 +379,11 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreatePrimitiveValue(Location, String); - /// - protected internal override void Serialize(IRWriter serializer) + /// + protected internal override void Write(IRWriter serializer) { - serializer.Serialize(Encoding.CodePage); - serializer.Serialize(String); + serializer.Write(Encoding.CodePage); + serializer.Write(String); } /// diff --git a/Src/ILGPU/IR/Values/Convert.cs b/Src/ILGPU/IR/Values/Convert.cs index f904fd7f4..a3a432d8e 100644 --- a/Src/ILGPU/IR/Values/Convert.cs +++ b/Src/ILGPU/IR/Values/Convert.cs @@ -136,9 +136,9 @@ protected internal override Value Rebuild( Type, Flags); - /// - protected internal override void Serialize(IRWriter serializer) => - serializer.Serialize(Flags); + /// + protected internal override void Write(IRWriter serializer) => + serializer.Write(Flags); /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Debug.cs b/Src/ILGPU/IR/Values/Debug.cs index 3ec57f7f0..6d127368a 100644 --- a/Src/ILGPU/IR/Values/Debug.cs +++ b/Src/ILGPU/IR/Values/Debug.cs @@ -106,8 +106,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Condition), rebuilder.Rebuild(Message)); - /// - protected internal override void Serialize(IRWriter serializer) { } + /// + protected internal override void Write(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/DeviceConstants.cs b/Src/ILGPU/IR/Values/DeviceConstants.cs index 2ea98dd22..a0fc10b93 100644 --- a/Src/ILGPU/IR/Values/DeviceConstants.cs +++ b/Src/ILGPU/IR/Values/DeviceConstants.cs @@ -71,8 +71,8 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreateAcceleratorTypeValue(Location); - /// - protected internal override void Serialize(IRWriter serializer) { } + /// + protected internal override void Write(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -143,9 +143,9 @@ internal DeviceConstantDimensionValue( #region Methods - /// - protected internal override void Serialize(IRWriter serializer) => - serializer.Serialize(Dimension); + /// + protected internal override void Write(IRWriter serializer) => + serializer.Write(Dimension); #endregion @@ -388,8 +388,8 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreateWarpSizeValue(Location); - /// - protected internal override void Serialize(IRWriter serializer) { } + /// + protected internal override void Write(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -439,8 +439,8 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreateLaneIdxValue(Location); - /// - protected internal override void Serialize(IRWriter serializer) { } + /// + protected internal override void Write(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -509,9 +509,9 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreateDynamicMemoryLengthValue(Location, ElementType, AddressSpace); - /// - protected internal override void Serialize(IRWriter serializer) => - serializer.Serialize(AddressSpace); + /// + protected internal override void Write(IRWriter serializer) => + serializer.Write(AddressSpace); /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/HandleValue.cs b/Src/ILGPU/IR/Values/HandleValue.cs index 283fad6ca..dec4c24e1 100644 --- a/Src/ILGPU/IR/Values/HandleValue.cs +++ b/Src/ILGPU/IR/Values/HandleValue.cs @@ -63,8 +63,8 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreateRuntimeHandle(Location, Handle); - /// - protected internal override void Serialize(IRWriter serializer) { } + /// + protected internal override void Write(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/IOValues.cs b/Src/ILGPU/IR/Values/IOValues.cs index 76398eb3a..808412a72 100644 --- a/Src/ILGPU/IR/Values/IOValues.cs +++ b/Src/ILGPU/IR/Values/IOValues.cs @@ -269,8 +269,8 @@ protected internal override Value Rebuild( ref arguments); } - /// - protected internal override void Serialize(IRWriter serializer) { } + /// + protected internal override void Write(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/LanguageValues.cs b/Src/ILGPU/IR/Values/LanguageValues.cs index 731ca7e54..fd359de32 100644 --- a/Src/ILGPU/IR/Values/LanguageValues.cs +++ b/Src/ILGPU/IR/Values/LanguageValues.cs @@ -165,8 +165,8 @@ protected internal override Value Rebuild( ref arguments); } - /// - protected internal override void Serialize(IRWriter serializer) { } + /// + protected internal override void Write(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Memory.cs b/Src/ILGPU/IR/Values/Memory.cs index d1ddff604..899bce2b7 100644 --- a/Src/ILGPU/IR/Values/Memory.cs +++ b/Src/ILGPU/IR/Values/Memory.cs @@ -139,9 +139,9 @@ protected internal override Value Rebuild( AddressSpace, rebuilder.Rebuild(ArrayLength)); - /// - protected internal override void Serialize(IRWriter serializer) => - serializer.Serialize(AddressSpace); + /// + protected internal override void Write(IRWriter serializer) => + serializer.Write(AddressSpace); /// public override void Accept(T visitor) => visitor.Visit(this); @@ -232,9 +232,9 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreateMemoryBarrier(Location, Kind); - /// - protected internal override void Serialize(IRWriter serializer) => - serializer.Serialize(Kind); + /// + protected internal override void Write(IRWriter serializer) => + serializer.Write(Kind); /// public override void Accept(T visitor) => visitor.Visit(this); @@ -307,8 +307,8 @@ protected internal override Value Rebuild( Location, rebuilder.Rebuild(Source)); - /// - protected internal override void Serialize(IRWriter serializer) { } + /// + protected internal override void Write(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -389,8 +389,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Target), rebuilder.Rebuild(Value)); - /// - protected internal override void Serialize(IRWriter serializer) { } + /// + protected internal override void Write(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/MethodCall.cs b/Src/ILGPU/IR/Values/MethodCall.cs index 20398682a..1a9e69248 100644 --- a/Src/ILGPU/IR/Values/MethodCall.cs +++ b/Src/ILGPU/IR/Values/MethodCall.cs @@ -150,9 +150,9 @@ protected internal override Value Rebuild( return call.Seal(); } - /// - protected internal override void Serialize(IRWriter serializer) => - serializer.Serialize(Target.Id); + /// + protected internal override void Write(IRWriter serializer) => + serializer.Write(Target.Id); /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Parameter.cs b/Src/ILGPU/IR/Values/Parameter.cs index abc60e164..b977dc0df 100644 --- a/Src/ILGPU/IR/Values/Parameter.cs +++ b/Src/ILGPU/IR/Values/Parameter.cs @@ -94,8 +94,8 @@ protected internal override Value Rebuild( // Params have already been mapped in the beginning rebuilder.Rebuild(this); - /// - protected internal override void Serialize(IRWriter serializer) { } + /// + protected internal override void Write(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/PhiValue.cs b/Src/ILGPU/IR/Values/PhiValue.cs index 65cd677c9..1eaa1b5d8 100644 --- a/Src/ILGPU/IR/Values/PhiValue.cs +++ b/Src/ILGPU/IR/Values/PhiValue.cs @@ -388,12 +388,12 @@ protected internal override Value Rebuild( // Phi values have already been mapped in the beginning rebuilder.Rebuild(this); - /// - protected internal override void Serialize(IRWriter serializer) + /// + protected internal override void Write(IRWriter serializer) { foreach (var source in Sources) { - serializer.Serialize(source.Id); + serializer.Write(source.Id); } } diff --git a/Src/ILGPU/IR/Values/PointerValues.cs b/Src/ILGPU/IR/Values/PointerValues.cs index d766169be..c4604d11b 100644 --- a/Src/ILGPU/IR/Values/PointerValues.cs +++ b/Src/ILGPU/IR/Values/PointerValues.cs @@ -131,8 +131,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Offset), rebuilder.Rebuild(Length)); - /// - protected internal override void Serialize(IRWriter serializer) { } + /// + protected internal override void Write(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -221,8 +221,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Source), rebuilder.Rebuild(Offset)); - /// - protected internal override void Serialize(IRWriter serializer) { } + /// + protected internal override void Write(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -397,8 +397,8 @@ protected internal override Value Rebuild( ref values); } - /// - protected internal override void Serialize(IRWriter serializer) { } + /// + protected internal override void Write(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -491,11 +491,11 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Source), FieldSpan); - /// - protected internal override void Serialize(IRWriter serializer) + /// + protected internal override void Write(IRWriter serializer) { - serializer.Serialize(FieldSpan.Index); - serializer.Serialize(FieldSpan.Span); + serializer.Write(FieldSpan.Index); + serializer.Write(FieldSpan.Span); } /// diff --git a/Src/ILGPU/IR/Values/Predicate.cs b/Src/ILGPU/IR/Values/Predicate.cs index 2af06defd..fb13c2a50 100644 --- a/Src/ILGPU/IR/Values/Predicate.cs +++ b/Src/ILGPU/IR/Values/Predicate.cs @@ -88,8 +88,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(TrueValue), rebuilder.Rebuild(FalseValue)); - /// - protected internal override void Serialize(IRWriter serializer) { } + /// + protected internal override void Write(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/StructureValues.cs b/Src/ILGPU/IR/Values/StructureValues.cs index c457f1372..678626a93 100644 --- a/Src/ILGPU/IR/Values/StructureValues.cs +++ b/Src/ILGPU/IR/Values/StructureValues.cs @@ -1037,8 +1037,8 @@ protected internal override Value Rebuild( return instance.Seal(); } - /// - protected internal override void Serialize(IRWriter serializer) { } + /// + protected internal override void Write(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -1097,11 +1097,11 @@ internal StructureOperationValue( #region Methods - /// - protected internal override void Serialize(IRWriter serializer) + /// + protected internal override void Write(IRWriter serializer) { - serializer.Serialize(FieldSpan.Index); - serializer.Serialize(FieldSpan.Span); + serializer.Write(FieldSpan.Index); + serializer.Write(FieldSpan.Span); } #endregion diff --git a/Src/ILGPU/IR/Values/Terminators.cs b/Src/ILGPU/IR/Values/Terminators.cs index ab1366033..8e57167b7 100644 --- a/Src/ILGPU/IR/Values/Terminators.cs +++ b/Src/ILGPU/IR/Values/Terminators.cs @@ -228,8 +228,8 @@ protected internal override Value Rebuild( Location, rebuilder.Rebuild(ReturnValue)); - /// - protected internal override void Serialize(IRWriter serializer) { } + /// + protected internal override void Write(IRWriter serializer) { } /// /// Throws an . @@ -278,13 +278,13 @@ internal Branch(in ValueInitializer initializer) protected override TypeNode ComputeType(in ValueInitializer initializer) => initializer.Context.VoidType; - /// - protected internal override void Serialize(IRWriter serializer) + /// + protected internal override void Write(IRWriter serializer) { - serializer.Serialize(NumTargets); + serializer.Write(NumTargets); foreach (var target in Targets) { - serializer.Serialize(target.Id); + serializer.Write(target.Id); } } diff --git a/Src/ILGPU/IR/Values/Threads.cs b/Src/ILGPU/IR/Values/Threads.cs index a61724eb9..b5eea3019 100644 --- a/Src/ILGPU/IR/Values/Threads.cs +++ b/Src/ILGPU/IR/Values/Threads.cs @@ -124,9 +124,9 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Predicate), Kind); - /// - protected internal override void Serialize(IRWriter serializer) => - serializer.Serialize(Kind); + /// + protected internal override void Write(IRWriter serializer) => + serializer.Write(Kind); /// public override void Accept(T visitor) => visitor.Visit(this); @@ -208,9 +208,9 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreateBarrier(Location, Kind); - /// - protected internal override void Serialize(IRWriter serializer) => - serializer.Serialize(Kind); + /// + protected internal override void Write(IRWriter serializer) => + serializer.Write(Kind); /// public override void Accept(T visitor) => visitor.Visit(this); @@ -334,9 +334,9 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Origin), Kind); - /// - protected internal override void Serialize(IRWriter serializer) => - serializer.Serialize(Kind); + /// + protected internal override void Write(IRWriter serializer) => + serializer.Write(Kind); /// public override void Accept(T visitor) => visitor.Visit(this); @@ -418,9 +418,9 @@ internal ShuffleOperation( #region Methods - /// - protected internal override void Serialize(IRWriter serializer) => - serializer.Serialize(Kind); + /// + protected internal override void Write(IRWriter serializer) => + serializer.Write(Kind); #endregion diff --git a/Src/ILGPU/IR/Values/Undefined.cs b/Src/ILGPU/IR/Values/Undefined.cs index cfc13dc1d..966175318 100644 --- a/Src/ILGPU/IR/Values/Undefined.cs +++ b/Src/ILGPU/IR/Values/Undefined.cs @@ -49,8 +49,8 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreateUndefined(); - /// - protected internal override void Serialize(IRWriter serializer) { } + /// + protected internal override void Write(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Value.cs b/Src/ILGPU/IR/Values/Value.cs index fc7999c95..5077a92e3 100644 --- a/Src/ILGPU/IR/Values/Value.cs +++ b/Src/ILGPU/IR/Values/Value.cs @@ -547,10 +547,10 @@ protected internal abstract Value Rebuild( /// /// Serializes this instance's specific internals to the given . /// - /// + /// /// The given serializer instance. /// - protected internal abstract void Serialize(IRWriter serializer); + protected internal abstract void Write(IRWriter writer); /// /// Verifies that the this value is not sealed. @@ -795,15 +795,18 @@ public sealed partial class IRWriter /// /// The value to write to the stream. /// - public void Serialize(Value value) + public void Write(Value value) { - Serialize(value.ValueKind); + Write(value.Id); + Write(value.ValueKind); - Serialize(value.Count); + Write(value.Type.Id); + + Write(value.Count); foreach (var node in value.Nodes) - Serialize(node.Id); + Write(node.Id); - value.Serialize(this); + value.Write(this); } } } diff --git a/Src/ILGPU/IR/Values/View.cs b/Src/ILGPU/IR/Values/View.cs index a99b9cb0b..f224c2ad1 100644 --- a/Src/ILGPU/IR/Values/View.cs +++ b/Src/ILGPU/IR/Values/View.cs @@ -88,8 +88,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Pointer), rebuilder.Rebuild(Length)); - /// - protected internal override void Serialize(IRWriter serializer) { } + /// + protected internal override void Write(IRWriter serializer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -230,9 +230,9 @@ protected internal override Value Rebuild( rebuilder.Rebuild(View), LengthType); - /// - protected internal override void Serialize(IRWriter serializer) => - serializer.Serialize(LengthType); + /// + protected internal override void Write(IRWriter serializer) => + serializer.Write(LengthType); /// public override void Accept(T visitor) => visitor.Visit(this); From 7bb43b7be5f234982560952f111a28ced4ec3881 Mon Sep 17 00:00:00 2001 From: Isabelle Santin Date: Tue, 21 May 2024 11:49:23 -0500 Subject: [PATCH 04/16] change parameter names --- Src/ILGPU/IR/Values/AlignValues.cs | 2 +- Src/ILGPU/IR/Values/Arithmetic.cs | 6 +++--- Src/ILGPU/IR/Values/ArrayValues.cs | 4 ++-- Src/ILGPU/IR/Values/Atomic.cs | 4 ++-- Src/ILGPU/IR/Values/Cast.cs | 16 ++++++++-------- Src/ILGPU/IR/Values/Compare.cs | 2 +- Src/ILGPU/IR/Values/Constants.cs | 6 +++--- Src/ILGPU/IR/Values/Convert.cs | 2 +- Src/ILGPU/IR/Values/Debug.cs | 2 +- Src/ILGPU/IR/Values/DeviceConstants.cs | 10 +++++----- Src/ILGPU/IR/Values/HandleValue.cs | 2 +- Src/ILGPU/IR/Values/IOValues.cs | 2 +- Src/ILGPU/IR/Values/LanguageValues.cs | 2 +- Src/ILGPU/IR/Values/Memory.cs | 8 ++++---- Src/ILGPU/IR/Values/MethodCall.cs | 2 +- Src/ILGPU/IR/Values/Parameter.cs | 2 +- Src/ILGPU/IR/Values/PhiValue.cs | 2 +- Src/ILGPU/IR/Values/PointerValues.cs | 8 ++++---- Src/ILGPU/IR/Values/Predicate.cs | 2 +- Src/ILGPU/IR/Values/StructureValues.cs | 4 ++-- Src/ILGPU/IR/Values/Terminators.cs | 4 ++-- Src/ILGPU/IR/Values/Threads.cs | 8 ++++---- Src/ILGPU/IR/Values/Undefined.cs | 2 +- Src/ILGPU/IR/Values/View.cs | 4 ++-- 24 files changed, 53 insertions(+), 53 deletions(-) diff --git a/Src/ILGPU/IR/Values/AlignValues.cs b/Src/ILGPU/IR/Values/AlignValues.cs index 3cb50b9a7..55b397807 100644 --- a/Src/ILGPU/IR/Values/AlignValues.cs +++ b/Src/ILGPU/IR/Values/AlignValues.cs @@ -61,7 +61,7 @@ internal BaseAlignOperationValue( #region Methods /// - protected internal override void Write(IRWriter serializer) { } + protected internal override void Write(IRWriter writer) { } /// /// Tries to determine an explicit alignment compile-time constant (primarily diff --git a/Src/ILGPU/IR/Values/Arithmetic.cs b/Src/ILGPU/IR/Values/Arithmetic.cs index 767e8f9a5..dc9edb4cd 100644 --- a/Src/ILGPU/IR/Values/Arithmetic.cs +++ b/Src/ILGPU/IR/Values/Arithmetic.cs @@ -190,7 +190,7 @@ protected internal override Value Rebuild( Flags); /// - protected internal override void Write(IRWriter serializer) + protected internal override void Write(IRWriter writer) { serializer.Write(Kind); serializer.Write(Flags); @@ -329,7 +329,7 @@ protected internal override Value Rebuild( Flags); /// - protected internal override void Write(IRWriter serializer) + protected internal override void Write(IRWriter writer) { serializer.Write(Kind); serializer.Write(Flags); @@ -465,7 +465,7 @@ protected internal override Value Rebuild( Flags); /// - protected internal override void Write(IRWriter serializer) + protected internal override void Write(IRWriter writer) { serializer.Write(Kind); serializer.Write(Flags); diff --git a/Src/ILGPU/IR/Values/ArrayValues.cs b/Src/ILGPU/IR/Values/ArrayValues.cs index 3800f825d..60b766e5e 100644 --- a/Src/ILGPU/IR/Values/ArrayValues.cs +++ b/Src/ILGPU/IR/Values/ArrayValues.cs @@ -154,7 +154,7 @@ protected internal override Value Rebuild( } /// - protected internal override void Write(IRWriter serializer) { } + protected internal override void Write(IRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -241,7 +241,7 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Dimension)); /// - protected internal override void Write(IRWriter serializer) { } + protected internal override void Write(IRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Atomic.cs b/Src/ILGPU/IR/Values/Atomic.cs index d6bc0717b..3fe662cd0 100644 --- a/Src/ILGPU/IR/Values/Atomic.cs +++ b/Src/ILGPU/IR/Values/Atomic.cs @@ -201,7 +201,7 @@ protected internal override Value Rebuild( Flags); /// - protected internal override void Write(IRWriter serializer) + protected internal override void Write(IRWriter writer) { serializer.Write(Kind); serializer.Write(Flags); @@ -282,7 +282,7 @@ protected internal override Value Rebuild( Flags); /// - protected internal override void Write(IRWriter serializer) => + protected internal override void Write(IRWriter writer) => serializer.Write(Flags); /// diff --git a/Src/ILGPU/IR/Values/Cast.cs b/Src/ILGPU/IR/Values/Cast.cs index e886ab166..c54cd49d3 100644 --- a/Src/ILGPU/IR/Values/Cast.cs +++ b/Src/ILGPU/IR/Values/Cast.cs @@ -137,7 +137,7 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Value)); /// - protected internal override void Write(IRWriter serializer) { } + protected internal override void Write(IRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -214,7 +214,7 @@ protected internal override Value Rebuild( TargetBasicValueType); /// - protected internal override void Write(IRWriter serializer) { } + protected internal override void Write(IRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -329,7 +329,7 @@ protected internal override Value Rebuild( TargetElementType); /// - protected internal override void Write(IRWriter serializer) { } + protected internal override void Write(IRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -428,7 +428,7 @@ protected internal override Value Rebuild( TargetAddressSpace); /// - protected internal override void Write(IRWriter serializer) => + protected internal override void Write(IRWriter writer) => serializer.Write(TargetAddressSpace); /// @@ -511,7 +511,7 @@ protected internal override Value Rebuild( TargetElementType); /// - protected internal override void Write(IRWriter serializer) { } + protected internal override void Write(IRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -586,7 +586,7 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Value)); /// - protected internal override void Write(IRWriter serializer) { } + protected internal override void Write(IRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -719,7 +719,7 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Value)); /// - protected internal override void Write(IRWriter serializer) { } + protected internal override void Write(IRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -788,7 +788,7 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Value)); /// - protected internal override void Write(IRWriter serializer) { } + protected internal override void Write(IRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Compare.cs b/Src/ILGPU/IR/Values/Compare.cs index 2a6257f52..c3fc48c03 100644 --- a/Src/ILGPU/IR/Values/Compare.cs +++ b/Src/ILGPU/IR/Values/Compare.cs @@ -274,7 +274,7 @@ protected internal override Value Rebuild( Flags); /// - protected internal override void Write(IRWriter serializer) + protected internal override void Write(IRWriter writer) { serializer.Write(Kind); serializer.Write(Flags); diff --git a/Src/ILGPU/IR/Values/Constants.cs b/Src/ILGPU/IR/Values/Constants.cs index 06e60ad9a..64594c9e9 100644 --- a/Src/ILGPU/IR/Values/Constants.cs +++ b/Src/ILGPU/IR/Values/Constants.cs @@ -78,7 +78,7 @@ protected internal override Value Rebuild( builder.CreateNull(Location, Type); /// - protected internal override void Write(IRWriter serializer) { } + protected internal override void Write(IRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -280,7 +280,7 @@ protected internal override Value Rebuild( rawValue); /// - protected internal override void Write(IRWriter serializer) + protected internal override void Write(IRWriter writer) { serializer.Write(BasicValueType); serializer.Write(rawValue); @@ -380,7 +380,7 @@ protected internal override Value Rebuild( builder.CreatePrimitiveValue(Location, String); /// - protected internal override void Write(IRWriter serializer) + protected internal override void Write(IRWriter writer) { serializer.Write(Encoding.CodePage); serializer.Write(String); diff --git a/Src/ILGPU/IR/Values/Convert.cs b/Src/ILGPU/IR/Values/Convert.cs index a3a432d8e..5931f668c 100644 --- a/Src/ILGPU/IR/Values/Convert.cs +++ b/Src/ILGPU/IR/Values/Convert.cs @@ -137,7 +137,7 @@ protected internal override Value Rebuild( Flags); /// - protected internal override void Write(IRWriter serializer) => + protected internal override void Write(IRWriter writer) => serializer.Write(Flags); /// diff --git a/Src/ILGPU/IR/Values/Debug.cs b/Src/ILGPU/IR/Values/Debug.cs index 6d127368a..1314513b6 100644 --- a/Src/ILGPU/IR/Values/Debug.cs +++ b/Src/ILGPU/IR/Values/Debug.cs @@ -107,7 +107,7 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Message)); /// - protected internal override void Write(IRWriter serializer) { } + protected internal override void Write(IRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/DeviceConstants.cs b/Src/ILGPU/IR/Values/DeviceConstants.cs index a0fc10b93..f12e2ba0c 100644 --- a/Src/ILGPU/IR/Values/DeviceConstants.cs +++ b/Src/ILGPU/IR/Values/DeviceConstants.cs @@ -72,7 +72,7 @@ protected internal override Value Rebuild( builder.CreateAcceleratorTypeValue(Location); /// - protected internal override void Write(IRWriter serializer) { } + protected internal override void Write(IRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -144,7 +144,7 @@ internal DeviceConstantDimensionValue( #region Methods /// - protected internal override void Write(IRWriter serializer) => + protected internal override void Write(IRWriter writer) => serializer.Write(Dimension); #endregion @@ -389,7 +389,7 @@ protected internal override Value Rebuild( builder.CreateWarpSizeValue(Location); /// - protected internal override void Write(IRWriter serializer) { } + protected internal override void Write(IRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -440,7 +440,7 @@ protected internal override Value Rebuild( builder.CreateLaneIdxValue(Location); /// - protected internal override void Write(IRWriter serializer) { } + protected internal override void Write(IRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -510,7 +510,7 @@ protected internal override Value Rebuild( builder.CreateDynamicMemoryLengthValue(Location, ElementType, AddressSpace); /// - protected internal override void Write(IRWriter serializer) => + protected internal override void Write(IRWriter writer) => serializer.Write(AddressSpace); /// diff --git a/Src/ILGPU/IR/Values/HandleValue.cs b/Src/ILGPU/IR/Values/HandleValue.cs index dec4c24e1..9788a545b 100644 --- a/Src/ILGPU/IR/Values/HandleValue.cs +++ b/Src/ILGPU/IR/Values/HandleValue.cs @@ -64,7 +64,7 @@ protected internal override Value Rebuild( builder.CreateRuntimeHandle(Location, Handle); /// - protected internal override void Write(IRWriter serializer) { } + protected internal override void Write(IRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/IOValues.cs b/Src/ILGPU/IR/Values/IOValues.cs index 808412a72..ddd9e4edf 100644 --- a/Src/ILGPU/IR/Values/IOValues.cs +++ b/Src/ILGPU/IR/Values/IOValues.cs @@ -270,7 +270,7 @@ protected internal override Value Rebuild( } /// - protected internal override void Write(IRWriter serializer) { } + protected internal override void Write(IRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/LanguageValues.cs b/Src/ILGPU/IR/Values/LanguageValues.cs index fd359de32..72ecbe399 100644 --- a/Src/ILGPU/IR/Values/LanguageValues.cs +++ b/Src/ILGPU/IR/Values/LanguageValues.cs @@ -166,7 +166,7 @@ protected internal override Value Rebuild( } /// - protected internal override void Write(IRWriter serializer) { } + protected internal override void Write(IRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Memory.cs b/Src/ILGPU/IR/Values/Memory.cs index 899bce2b7..b25130165 100644 --- a/Src/ILGPU/IR/Values/Memory.cs +++ b/Src/ILGPU/IR/Values/Memory.cs @@ -140,7 +140,7 @@ protected internal override Value Rebuild( rebuilder.Rebuild(ArrayLength)); /// - protected internal override void Write(IRWriter serializer) => + protected internal override void Write(IRWriter writer) => serializer.Write(AddressSpace); /// @@ -233,7 +233,7 @@ protected internal override Value Rebuild( builder.CreateMemoryBarrier(Location, Kind); /// - protected internal override void Write(IRWriter serializer) => + protected internal override void Write(IRWriter writer) => serializer.Write(Kind); /// @@ -308,7 +308,7 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Source)); /// - protected internal override void Write(IRWriter serializer) { } + protected internal override void Write(IRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -390,7 +390,7 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Value)); /// - protected internal override void Write(IRWriter serializer) { } + protected internal override void Write(IRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/MethodCall.cs b/Src/ILGPU/IR/Values/MethodCall.cs index 1a9e69248..72c458ee0 100644 --- a/Src/ILGPU/IR/Values/MethodCall.cs +++ b/Src/ILGPU/IR/Values/MethodCall.cs @@ -151,7 +151,7 @@ protected internal override Value Rebuild( } /// - protected internal override void Write(IRWriter serializer) => + protected internal override void Write(IRWriter writer) => serializer.Write(Target.Id); /// diff --git a/Src/ILGPU/IR/Values/Parameter.cs b/Src/ILGPU/IR/Values/Parameter.cs index b977dc0df..7913c337a 100644 --- a/Src/ILGPU/IR/Values/Parameter.cs +++ b/Src/ILGPU/IR/Values/Parameter.cs @@ -95,7 +95,7 @@ protected internal override Value Rebuild( rebuilder.Rebuild(this); /// - protected internal override void Write(IRWriter serializer) { } + protected internal override void Write(IRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/PhiValue.cs b/Src/ILGPU/IR/Values/PhiValue.cs index 1eaa1b5d8..9ee6ca2c0 100644 --- a/Src/ILGPU/IR/Values/PhiValue.cs +++ b/Src/ILGPU/IR/Values/PhiValue.cs @@ -389,7 +389,7 @@ protected internal override Value Rebuild( rebuilder.Rebuild(this); /// - protected internal override void Write(IRWriter serializer) + protected internal override void Write(IRWriter writer) { foreach (var source in Sources) { diff --git a/Src/ILGPU/IR/Values/PointerValues.cs b/Src/ILGPU/IR/Values/PointerValues.cs index c4604d11b..bc64f021d 100644 --- a/Src/ILGPU/IR/Values/PointerValues.cs +++ b/Src/ILGPU/IR/Values/PointerValues.cs @@ -132,7 +132,7 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Length)); /// - protected internal override void Write(IRWriter serializer) { } + protected internal override void Write(IRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -222,7 +222,7 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Offset)); /// - protected internal override void Write(IRWriter serializer) { } + protected internal override void Write(IRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -398,7 +398,7 @@ protected internal override Value Rebuild( } /// - protected internal override void Write(IRWriter serializer) { } + protected internal override void Write(IRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -492,7 +492,7 @@ protected internal override Value Rebuild( FieldSpan); /// - protected internal override void Write(IRWriter serializer) + protected internal override void Write(IRWriter writer) { serializer.Write(FieldSpan.Index); serializer.Write(FieldSpan.Span); diff --git a/Src/ILGPU/IR/Values/Predicate.cs b/Src/ILGPU/IR/Values/Predicate.cs index fb13c2a50..5aef24124 100644 --- a/Src/ILGPU/IR/Values/Predicate.cs +++ b/Src/ILGPU/IR/Values/Predicate.cs @@ -89,7 +89,7 @@ protected internal override Value Rebuild( rebuilder.Rebuild(FalseValue)); /// - protected internal override void Write(IRWriter serializer) { } + protected internal override void Write(IRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/StructureValues.cs b/Src/ILGPU/IR/Values/StructureValues.cs index 678626a93..6107b8d59 100644 --- a/Src/ILGPU/IR/Values/StructureValues.cs +++ b/Src/ILGPU/IR/Values/StructureValues.cs @@ -1038,7 +1038,7 @@ protected internal override Value Rebuild( } /// - protected internal override void Write(IRWriter serializer) { } + protected internal override void Write(IRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -1098,7 +1098,7 @@ internal StructureOperationValue( #region Methods /// - protected internal override void Write(IRWriter serializer) + protected internal override void Write(IRWriter writer) { serializer.Write(FieldSpan.Index); serializer.Write(FieldSpan.Span); diff --git a/Src/ILGPU/IR/Values/Terminators.cs b/Src/ILGPU/IR/Values/Terminators.cs index 8e57167b7..b161cfeda 100644 --- a/Src/ILGPU/IR/Values/Terminators.cs +++ b/Src/ILGPU/IR/Values/Terminators.cs @@ -229,7 +229,7 @@ protected internal override Value Rebuild( rebuilder.Rebuild(ReturnValue)); /// - protected internal override void Write(IRWriter serializer) { } + protected internal override void Write(IRWriter writer) { } /// /// Throws an . @@ -279,7 +279,7 @@ protected override TypeNode ComputeType(in ValueInitializer initializer) => initializer.Context.VoidType; /// - protected internal override void Write(IRWriter serializer) + protected internal override void Write(IRWriter writer) { serializer.Write(NumTargets); foreach (var target in Targets) diff --git a/Src/ILGPU/IR/Values/Threads.cs b/Src/ILGPU/IR/Values/Threads.cs index b5eea3019..f3302665a 100644 --- a/Src/ILGPU/IR/Values/Threads.cs +++ b/Src/ILGPU/IR/Values/Threads.cs @@ -125,7 +125,7 @@ protected internal override Value Rebuild( Kind); /// - protected internal override void Write(IRWriter serializer) => + protected internal override void Write(IRWriter writer) => serializer.Write(Kind); /// @@ -209,7 +209,7 @@ protected internal override Value Rebuild( builder.CreateBarrier(Location, Kind); /// - protected internal override void Write(IRWriter serializer) => + protected internal override void Write(IRWriter writer) => serializer.Write(Kind); /// @@ -335,7 +335,7 @@ protected internal override Value Rebuild( Kind); /// - protected internal override void Write(IRWriter serializer) => + protected internal override void Write(IRWriter writer) => serializer.Write(Kind); /// @@ -419,7 +419,7 @@ internal ShuffleOperation( #region Methods /// - protected internal override void Write(IRWriter serializer) => + protected internal override void Write(IRWriter writer) => serializer.Write(Kind); #endregion diff --git a/Src/ILGPU/IR/Values/Undefined.cs b/Src/ILGPU/IR/Values/Undefined.cs index 966175318..bb9bacc04 100644 --- a/Src/ILGPU/IR/Values/Undefined.cs +++ b/Src/ILGPU/IR/Values/Undefined.cs @@ -50,7 +50,7 @@ protected internal override Value Rebuild( builder.CreateUndefined(); /// - protected internal override void Write(IRWriter serializer) { } + protected internal override void Write(IRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/View.cs b/Src/ILGPU/IR/Values/View.cs index f224c2ad1..bfccba2b4 100644 --- a/Src/ILGPU/IR/Values/View.cs +++ b/Src/ILGPU/IR/Values/View.cs @@ -89,7 +89,7 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Length)); /// - protected internal override void Write(IRWriter serializer) { } + protected internal override void Write(IRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -231,7 +231,7 @@ protected internal override Value Rebuild( LengthType); /// - protected internal override void Write(IRWriter serializer) => + protected internal override void Write(IRWriter writer) => serializer.Write(LengthType); /// From 9528aa8ec5a35526431a59a628718245b78ee3cd Mon Sep 17 00:00:00 2001 From: Isabelle Santin Date: Tue, 21 May 2024 11:50:02 -0500 Subject: [PATCH 05/16] Oops :3 --- Src/ILGPU/IR/Values/Arithmetic.cs | 12 ++++++------ Src/ILGPU/IR/Values/Atomic.cs | 6 +++--- Src/ILGPU/IR/Values/Cast.cs | 2 +- Src/ILGPU/IR/Values/Compare.cs | 4 ++-- Src/ILGPU/IR/Values/Constants.cs | 8 ++++---- Src/ILGPU/IR/Values/Convert.cs | 2 +- Src/ILGPU/IR/Values/DeviceConstants.cs | 4 ++-- Src/ILGPU/IR/Values/Memory.cs | 4 ++-- Src/ILGPU/IR/Values/MethodCall.cs | 2 +- Src/ILGPU/IR/Values/PhiValue.cs | 2 +- Src/ILGPU/IR/Values/PointerValues.cs | 4 ++-- Src/ILGPU/IR/Values/StructureValues.cs | 4 ++-- Src/ILGPU/IR/Values/Terminators.cs | 4 ++-- Src/ILGPU/IR/Values/Threads.cs | 8 ++++---- Src/ILGPU/IR/Values/View.cs | 2 +- 15 files changed, 34 insertions(+), 34 deletions(-) diff --git a/Src/ILGPU/IR/Values/Arithmetic.cs b/Src/ILGPU/IR/Values/Arithmetic.cs index dc9edb4cd..6998d748d 100644 --- a/Src/ILGPU/IR/Values/Arithmetic.cs +++ b/Src/ILGPU/IR/Values/Arithmetic.cs @@ -192,8 +192,8 @@ protected internal override Value Rebuild( /// protected internal override void Write(IRWriter writer) { - serializer.Write(Kind); - serializer.Write(Flags); + writer.Write(Kind); + writer.Write(Flags); } /// @@ -331,8 +331,8 @@ protected internal override Value Rebuild( /// protected internal override void Write(IRWriter writer) { - serializer.Write(Kind); - serializer.Write(Flags); + writer.Write(Kind); + writer.Write(Flags); } /// @@ -467,8 +467,8 @@ protected internal override Value Rebuild( /// protected internal override void Write(IRWriter writer) { - serializer.Write(Kind); - serializer.Write(Flags); + writer.Write(Kind); + writer.Write(Flags); } /// diff --git a/Src/ILGPU/IR/Values/Atomic.cs b/Src/ILGPU/IR/Values/Atomic.cs index 3fe662cd0..aa4141e37 100644 --- a/Src/ILGPU/IR/Values/Atomic.cs +++ b/Src/ILGPU/IR/Values/Atomic.cs @@ -203,8 +203,8 @@ protected internal override Value Rebuild( /// protected internal override void Write(IRWriter writer) { - serializer.Write(Kind); - serializer.Write(Flags); + writer.Write(Kind); + writer.Write(Flags); } /// @@ -283,7 +283,7 @@ protected internal override Value Rebuild( /// protected internal override void Write(IRWriter writer) => - serializer.Write(Flags); + writer.Write(Flags); /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Cast.cs b/Src/ILGPU/IR/Values/Cast.cs index c54cd49d3..75a35f793 100644 --- a/Src/ILGPU/IR/Values/Cast.cs +++ b/Src/ILGPU/IR/Values/Cast.cs @@ -429,7 +429,7 @@ protected internal override Value Rebuild( /// protected internal override void Write(IRWriter writer) => - serializer.Write(TargetAddressSpace); + writer.Write(TargetAddressSpace); /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Compare.cs b/Src/ILGPU/IR/Values/Compare.cs index c3fc48c03..ba687a924 100644 --- a/Src/ILGPU/IR/Values/Compare.cs +++ b/Src/ILGPU/IR/Values/Compare.cs @@ -276,8 +276,8 @@ protected internal override Value Rebuild( /// protected internal override void Write(IRWriter writer) { - serializer.Write(Kind); - serializer.Write(Flags); + writer.Write(Kind); + writer.Write(Flags); } /// diff --git a/Src/ILGPU/IR/Values/Constants.cs b/Src/ILGPU/IR/Values/Constants.cs index 64594c9e9..83dc2b47f 100644 --- a/Src/ILGPU/IR/Values/Constants.cs +++ b/Src/ILGPU/IR/Values/Constants.cs @@ -282,8 +282,8 @@ protected internal override Value Rebuild( /// protected internal override void Write(IRWriter writer) { - serializer.Write(BasicValueType); - serializer.Write(rawValue); + writer.Write(BasicValueType); + writer.Write(rawValue); } /// @@ -382,8 +382,8 @@ protected internal override Value Rebuild( /// protected internal override void Write(IRWriter writer) { - serializer.Write(Encoding.CodePage); - serializer.Write(String); + writer.Write(Encoding.CodePage); + writer.Write(String); } /// diff --git a/Src/ILGPU/IR/Values/Convert.cs b/Src/ILGPU/IR/Values/Convert.cs index 5931f668c..7f0906949 100644 --- a/Src/ILGPU/IR/Values/Convert.cs +++ b/Src/ILGPU/IR/Values/Convert.cs @@ -138,7 +138,7 @@ protected internal override Value Rebuild( /// protected internal override void Write(IRWriter writer) => - serializer.Write(Flags); + writer.Write(Flags); /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/DeviceConstants.cs b/Src/ILGPU/IR/Values/DeviceConstants.cs index f12e2ba0c..9ce79fb3a 100644 --- a/Src/ILGPU/IR/Values/DeviceConstants.cs +++ b/Src/ILGPU/IR/Values/DeviceConstants.cs @@ -145,7 +145,7 @@ internal DeviceConstantDimensionValue( /// protected internal override void Write(IRWriter writer) => - serializer.Write(Dimension); + writer.Write(Dimension); #endregion @@ -511,7 +511,7 @@ protected internal override Value Rebuild( /// protected internal override void Write(IRWriter writer) => - serializer.Write(AddressSpace); + writer.Write(AddressSpace); /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Memory.cs b/Src/ILGPU/IR/Values/Memory.cs index b25130165..4e3505248 100644 --- a/Src/ILGPU/IR/Values/Memory.cs +++ b/Src/ILGPU/IR/Values/Memory.cs @@ -141,7 +141,7 @@ protected internal override Value Rebuild( /// protected internal override void Write(IRWriter writer) => - serializer.Write(AddressSpace); + writer.Write(AddressSpace); /// public override void Accept(T visitor) => visitor.Visit(this); @@ -234,7 +234,7 @@ protected internal override Value Rebuild( /// protected internal override void Write(IRWriter writer) => - serializer.Write(Kind); + writer.Write(Kind); /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/MethodCall.cs b/Src/ILGPU/IR/Values/MethodCall.cs index 72c458ee0..a724fe134 100644 --- a/Src/ILGPU/IR/Values/MethodCall.cs +++ b/Src/ILGPU/IR/Values/MethodCall.cs @@ -152,7 +152,7 @@ protected internal override Value Rebuild( /// protected internal override void Write(IRWriter writer) => - serializer.Write(Target.Id); + writer.Write(Target.Id); /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/PhiValue.cs b/Src/ILGPU/IR/Values/PhiValue.cs index 9ee6ca2c0..c5109d715 100644 --- a/Src/ILGPU/IR/Values/PhiValue.cs +++ b/Src/ILGPU/IR/Values/PhiValue.cs @@ -393,7 +393,7 @@ protected internal override void Write(IRWriter writer) { foreach (var source in Sources) { - serializer.Write(source.Id); + writer.Write(source.Id); } } diff --git a/Src/ILGPU/IR/Values/PointerValues.cs b/Src/ILGPU/IR/Values/PointerValues.cs index bc64f021d..9e8b1745a 100644 --- a/Src/ILGPU/IR/Values/PointerValues.cs +++ b/Src/ILGPU/IR/Values/PointerValues.cs @@ -494,8 +494,8 @@ protected internal override Value Rebuild( /// protected internal override void Write(IRWriter writer) { - serializer.Write(FieldSpan.Index); - serializer.Write(FieldSpan.Span); + writer.Write(FieldSpan.Index); + writer.Write(FieldSpan.Span); } /// diff --git a/Src/ILGPU/IR/Values/StructureValues.cs b/Src/ILGPU/IR/Values/StructureValues.cs index 6107b8d59..78669614e 100644 --- a/Src/ILGPU/IR/Values/StructureValues.cs +++ b/Src/ILGPU/IR/Values/StructureValues.cs @@ -1100,8 +1100,8 @@ internal StructureOperationValue( /// protected internal override void Write(IRWriter writer) { - serializer.Write(FieldSpan.Index); - serializer.Write(FieldSpan.Span); + writer.Write(FieldSpan.Index); + writer.Write(FieldSpan.Span); } #endregion diff --git a/Src/ILGPU/IR/Values/Terminators.cs b/Src/ILGPU/IR/Values/Terminators.cs index b161cfeda..c2bbd1ea0 100644 --- a/Src/ILGPU/IR/Values/Terminators.cs +++ b/Src/ILGPU/IR/Values/Terminators.cs @@ -281,10 +281,10 @@ protected override TypeNode ComputeType(in ValueInitializer initializer) => /// protected internal override void Write(IRWriter writer) { - serializer.Write(NumTargets); + writer.Write(NumTargets); foreach (var target in Targets) { - serializer.Write(target.Id); + writer.Write(target.Id); } } diff --git a/Src/ILGPU/IR/Values/Threads.cs b/Src/ILGPU/IR/Values/Threads.cs index f3302665a..8025f9399 100644 --- a/Src/ILGPU/IR/Values/Threads.cs +++ b/Src/ILGPU/IR/Values/Threads.cs @@ -126,7 +126,7 @@ protected internal override Value Rebuild( /// protected internal override void Write(IRWriter writer) => - serializer.Write(Kind); + writer.Write(Kind); /// public override void Accept(T visitor) => visitor.Visit(this); @@ -210,7 +210,7 @@ protected internal override Value Rebuild( /// protected internal override void Write(IRWriter writer) => - serializer.Write(Kind); + writer.Write(Kind); /// public override void Accept(T visitor) => visitor.Visit(this); @@ -336,7 +336,7 @@ protected internal override Value Rebuild( /// protected internal override void Write(IRWriter writer) => - serializer.Write(Kind); + writer.Write(Kind); /// public override void Accept(T visitor) => visitor.Visit(this); @@ -420,7 +420,7 @@ internal ShuffleOperation( /// protected internal override void Write(IRWriter writer) => - serializer.Write(Kind); + writer.Write(Kind); #endregion diff --git a/Src/ILGPU/IR/Values/View.cs b/Src/ILGPU/IR/Values/View.cs index bfccba2b4..a7a581688 100644 --- a/Src/ILGPU/IR/Values/View.cs +++ b/Src/ILGPU/IR/Values/View.cs @@ -232,7 +232,7 @@ protected internal override Value Rebuild( /// protected internal override void Write(IRWriter writer) => - serializer.Write(LengthType); + writer.Write(LengthType); /// public override void Accept(T visitor) => visitor.Visit(this); From 8d6c411726e491a1045249f2c341a1c909c12d7f Mon Sep 17 00:00:00 2001 From: Isabelle Santin Date: Tue, 21 May 2024 11:58:40 -0500 Subject: [PATCH 06/16] Implement proper type handling for Value instances --- Src/ILGPU/IR/Values/ArrayValues.cs | 3 ++- Src/ILGPU/IR/Values/Cast.cs | 6 ++++-- Src/ILGPU/IR/Values/Convert.cs | 5 ++++- Src/ILGPU/IR/Values/Parameter.cs | 3 ++- Src/ILGPU/IR/Values/Value.cs | 4 ---- 5 files changed, 12 insertions(+), 9 deletions(-) diff --git a/Src/ILGPU/IR/Values/ArrayValues.cs b/Src/ILGPU/IR/Values/ArrayValues.cs index 60b766e5e..3d9db5e37 100644 --- a/Src/ILGPU/IR/Values/ArrayValues.cs +++ b/Src/ILGPU/IR/Values/ArrayValues.cs @@ -154,7 +154,8 @@ protected internal override Value Rebuild( } /// - protected internal override void Write(IRWriter writer) { } + protected internal override void Write(IRWriter writer) => + writer.Write(Type.Id); /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Cast.cs b/Src/ILGPU/IR/Values/Cast.cs index 75a35f793..5b3a962c2 100644 --- a/Src/ILGPU/IR/Values/Cast.cs +++ b/Src/ILGPU/IR/Values/Cast.cs @@ -329,7 +329,8 @@ protected internal override Value Rebuild( TargetElementType); /// - protected internal override void Write(IRWriter writer) { } + protected internal override void Write(IRWriter writer) => + writer.Write(TargetElementType.Id); /// public override void Accept(T visitor) => visitor.Visit(this); @@ -511,7 +512,8 @@ protected internal override Value Rebuild( TargetElementType); /// - protected internal override void Write(IRWriter writer) { } + protected internal override void Write(IRWriter writer) => + writer.Write(TargetElementType.Id); /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Convert.cs b/Src/ILGPU/IR/Values/Convert.cs index 7f0906949..65b7f6fa3 100644 --- a/Src/ILGPU/IR/Values/Convert.cs +++ b/Src/ILGPU/IR/Values/Convert.cs @@ -137,8 +137,11 @@ protected internal override Value Rebuild( Flags); /// - protected internal override void Write(IRWriter writer) => + protected internal override void Write(IRWriter writer) + { + writer.Write(TargetType); writer.Write(Flags); + } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Parameter.cs b/Src/ILGPU/IR/Values/Parameter.cs index 7913c337a..c2a837d0c 100644 --- a/Src/ILGPU/IR/Values/Parameter.cs +++ b/Src/ILGPU/IR/Values/Parameter.cs @@ -95,7 +95,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(this); /// - protected internal override void Write(IRWriter writer) { } + protected internal override void Write(IRWriter writer) => + writer.Write(ParameterType.Id); /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Value.cs b/Src/ILGPU/IR/Values/Value.cs index 5077a92e3..da089c69b 100644 --- a/Src/ILGPU/IR/Values/Value.cs +++ b/Src/ILGPU/IR/Values/Value.cs @@ -799,13 +799,9 @@ public void Write(Value value) { Write(value.Id); Write(value.ValueKind); - - Write(value.Type.Id); - Write(value.Count); foreach (var node in value.Nodes) Write(node.Id); - value.Write(this); } } From cd2499c714b9652d73018c1912625ca7f22a42ab Mon Sep 17 00:00:00 2001 From: Isabelle Santin Date: Fri, 24 May 2024 10:48:17 -0500 Subject: [PATCH 07/16] Abstracted `IRWriter` to `IIRWriter` and `BinaryIRWriter` --- Src/ILGPU/IR/IRContext.cs | 29 ++++++++++ .../BinaryIRWriter.cs} | 38 ++++--------- Src/ILGPU/IR/Serialization/IIRWriter.cs | 53 +++++++++++++++++++ Src/ILGPU/IR/Values/AlignValues.cs | 5 +- Src/ILGPU/IR/Values/Arithmetic.cs | 13 ++--- Src/ILGPU/IR/Values/ArrayValues.cs | 5 +- Src/ILGPU/IR/Values/Atomic.cs | 9 ++-- Src/ILGPU/IR/Values/Cast.cs | 33 ++++++------ Src/ILGPU/IR/Values/Compare.cs | 4 +- Src/ILGPU/IR/Values/Constants.cs | 13 ++--- Src/ILGPU/IR/Values/Convert.cs | 5 +- Src/ILGPU/IR/Values/Debug.cs | 4 +- Src/ILGPU/IR/Values/DeviceConstants.cs | 20 +++---- Src/ILGPU/IR/Values/HandleValue.cs | 4 +- Src/ILGPU/IR/Values/IOValues.cs | 4 +- Src/ILGPU/IR/Values/LanguageValues.cs | 4 +- Src/ILGPU/IR/Values/Memory.cs | 16 +++--- Src/ILGPU/IR/Values/MethodCall.cs | 4 +- Src/ILGPU/IR/Values/Parameter.cs | 5 +- Src/ILGPU/IR/Values/PhiValue.cs | 4 +- Src/ILGPU/IR/Values/PointerValues.cs | 17 +++--- Src/ILGPU/IR/Values/Predicate.cs | 4 +- Src/ILGPU/IR/Values/StructureValues.cs | 9 ++-- Src/ILGPU/IR/Values/Terminators.cs | 8 +-- Src/ILGPU/IR/Values/Threads.cs | 16 +++--- Src/ILGPU/IR/Values/Undefined.cs | 4 +- Src/ILGPU/IR/Values/Value.cs | 19 +++++-- Src/ILGPU/IR/Values/View.cs | 9 ++-- 28 files changed, 220 insertions(+), 138 deletions(-) rename Src/ILGPU/IR/{IRWriter.cs => Serialization/BinaryIRWriter.cs} (62%) create mode 100644 Src/ILGPU/IR/Serialization/IIRWriter.cs diff --git a/Src/ILGPU/IR/IRContext.cs b/Src/ILGPU/IR/IRContext.cs index 90002d8ce..395fbf420 100644 --- a/Src/ILGPU/IR/IRContext.cs +++ b/Src/ILGPU/IR/IRContext.cs @@ -12,6 +12,7 @@ using ILGPU.Frontend; using ILGPU.IR.Analyses; using ILGPU.IR.Construction; +using ILGPU.IR.Serialization; using ILGPU.IR.Transformations; using ILGPU.IR.Types; using ILGPU.IR.Values; @@ -498,6 +499,34 @@ public void Transform(in Transformer transformer) Parallel.ForEach(toTransform, gcDelegate); } + /// + /// Serializes this instance using the given . + /// + /// + /// The writer to use for serialization. + /// + public void Write(IIRWriter writer) + { + var allMethods = GetMethodCollection(new MethodCollections.AllMethods()); + foreach (var method in allMethods) + { + foreach (var param in method.Parameters) + { + param.Write(writer); + } + + foreach (var block in method.Blocks) + { + foreach (var entry in block) + { + entry.Value.Write(writer); + } + + block.Terminator?.Write(writer); + } + } + } + /// /// Dumps the IR context to the given text writer. /// diff --git a/Src/ILGPU/IR/IRWriter.cs b/Src/ILGPU/IR/Serialization/BinaryIRWriter.cs similarity index 62% rename from Src/ILGPU/IR/IRWriter.cs rename to Src/ILGPU/IR/Serialization/BinaryIRWriter.cs index 9fb647c1d..1f2f9a8dd 100644 --- a/Src/ILGPU/IR/IRWriter.cs +++ b/Src/ILGPU/IR/Serialization/BinaryIRWriter.cs @@ -3,7 +3,7 @@ // Copyright (c) 2024 ILGPU Project // www.ilgpu.net // -// File: IRWriter.cs +// File: BinaryIRWriter.cs // // This file is part of ILGPU and is distributed under the University of Illinois Open // Source License. See LICENSE.txt for details. @@ -13,17 +13,17 @@ using System.IO; using System.Text; -namespace ILGPU.IR +namespace ILGPU.IR.Serialization { /// /// Wrapper class around for serializing IR types and values. /// - public sealed partial class IRWriter : IDisposable + public sealed partial class BinaryIRWriter : IIRWriter { private readonly BinaryWriter writer; /// - /// Wraps an instance of + /// Wraps an instance of /// around a given . /// /// @@ -33,44 +33,24 @@ public sealed partial class IRWriter : IDisposable /// The to use for /// serializing values. /// - public IRWriter(Stream stream, Encoding encoding) + public BinaryIRWriter(Stream stream, Encoding encoding) { writer = new BinaryWriter(stream, encoding); } - /// - /// Serializes a 32-bit integer value to the stream. - /// - /// - /// The value to serialize. - /// + /// public void Write(int value) => writer.Write(value); - /// - /// Serializes a 64-bit integer value to the stream. - /// - /// - /// The value to serialize. - /// + /// public void Write(long value) => writer.Write(value); - /// - /// Serializes a string value to the stream. - /// - /// - /// The value to serialize. - /// + /// public void Write(string value) => writer.Write(value); - /// - /// Serializes an arbitrary value as a 32-bit integer, to the stream. - /// - /// - /// The value to serialize. - /// + /// public void Write(T value) where T : Enum => writer.Write(Convert.ToInt32(value)); diff --git a/Src/ILGPU/IR/Serialization/IIRWriter.cs b/Src/ILGPU/IR/Serialization/IIRWriter.cs new file mode 100644 index 000000000..0eb36dae6 --- /dev/null +++ b/Src/ILGPU/IR/Serialization/IIRWriter.cs @@ -0,0 +1,53 @@ +// --------------------------------------------------------------------------------------- +// ILGPU +// Copyright (c) 2024 ILGPU Project +// www.ilgpu.net +// +// File: IIRWriter.cs +// +// This file is part of ILGPU and is distributed under the University of Illinois Open +// Source License. See LICENSE.txt for details. +// --------------------------------------------------------------------------------------- + +using System; + +namespace ILGPU.IR.Serialization +{ + /// + /// Describes a wrapper that serializes IR values and types to some implementation-specific instance + /// + public partial interface IIRWriter : IDisposable + { + /// + /// Serializes a 32-bit integer value to the stream. + /// + /// + /// The value to serialize. + /// + void Write(int value); + + /// + /// Serializes a 64-bit integer value to the stream. + /// + /// + /// The value to serialize. + /// + void Write(long value); + + /// + /// Serializes a 32-bit integer value to the stream. + /// + /// + /// The value to serialize. + /// + void Write(string value); + + /// + /// Serializes a string value to the stream. + /// + /// + /// The value to serialize. + /// + void Write(T value) where T : Enum; + } +} diff --git a/Src/ILGPU/IR/Values/AlignValues.cs b/Src/ILGPU/IR/Values/AlignValues.cs index 55b397807..c42b23d4e 100644 --- a/Src/ILGPU/IR/Values/AlignValues.cs +++ b/Src/ILGPU/IR/Values/AlignValues.cs @@ -10,6 +10,7 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; +using ILGPU.IR.Serialization; using ILGPU.IR.Types; using System; @@ -60,8 +61,8 @@ internal BaseAlignOperationValue( #region Methods - /// - protected internal override void Write(IRWriter writer) { } + /// + protected internal override void Write(IIRWriter writer) { } /// /// Tries to determine an explicit alignment compile-time constant (primarily diff --git a/Src/ILGPU/IR/Values/Arithmetic.cs b/Src/ILGPU/IR/Values/Arithmetic.cs index 6998d748d..adb870ee3 100644 --- a/Src/ILGPU/IR/Values/Arithmetic.cs +++ b/Src/ILGPU/IR/Values/Arithmetic.cs @@ -10,6 +10,7 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; +using ILGPU.IR.Serialization; using ILGPU.IR.Types; using ILGPU.Util; using System; @@ -189,8 +190,8 @@ protected internal override Value Rebuild( Kind, Flags); - /// - protected internal override void Write(IRWriter writer) + /// + protected internal override void Write(IIRWriter writer) { writer.Write(Kind); writer.Write(Flags); @@ -328,8 +329,8 @@ protected internal override Value Rebuild( Kind, Flags); - /// - protected internal override void Write(IRWriter writer) + /// + protected internal override void Write(IIRWriter writer) { writer.Write(Kind); writer.Write(Flags); @@ -464,8 +465,8 @@ protected internal override Value Rebuild( Kind, Flags); - /// - protected internal override void Write(IRWriter writer) + /// + protected internal override void Write(IIRWriter writer) { writer.Write(Kind); writer.Write(Flags); diff --git a/Src/ILGPU/IR/Values/ArrayValues.cs b/Src/ILGPU/IR/Values/ArrayValues.cs index 3d9db5e37..2b13eba21 100644 --- a/Src/ILGPU/IR/Values/ArrayValues.cs +++ b/Src/ILGPU/IR/Values/ArrayValues.cs @@ -10,6 +10,7 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; +using ILGPU.IR.Serialization; using ILGPU.IR.Types; using ILGPU.Util; using System.Runtime.CompilerServices; @@ -154,7 +155,7 @@ protected internal override Value Rebuild( } /// - protected internal override void Write(IRWriter writer) => + protected internal override void Write(IIRWriter writer) => writer.Write(Type.Id); /// @@ -242,7 +243,7 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Dimension)); /// - protected internal override void Write(IRWriter writer) { } + protected internal override void Write(IIRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Atomic.cs b/Src/ILGPU/IR/Values/Atomic.cs index aa4141e37..b5deece35 100644 --- a/Src/ILGPU/IR/Values/Atomic.cs +++ b/Src/ILGPU/IR/Values/Atomic.cs @@ -10,6 +10,7 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; +using ILGPU.IR.Serialization; using ILGPU.IR.Types; using ILGPU.Util; using System; @@ -200,8 +201,8 @@ protected internal override Value Rebuild( Kind, Flags); - /// - protected internal override void Write(IRWriter writer) + /// + protected internal override void Write(IIRWriter writer) { writer.Write(Kind); writer.Write(Flags); @@ -281,8 +282,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(CompareValue), Flags); - /// - protected internal override void Write(IRWriter writer) => + /// + protected internal override void Write(IIRWriter writer) => writer.Write(Flags); /// diff --git a/Src/ILGPU/IR/Values/Cast.cs b/Src/ILGPU/IR/Values/Cast.cs index 5b3a962c2..c7e0dd157 100644 --- a/Src/ILGPU/IR/Values/Cast.cs +++ b/Src/ILGPU/IR/Values/Cast.cs @@ -10,6 +10,7 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; +using ILGPU.IR.Serialization; using ILGPU.IR.Types; using ILGPU.Util; @@ -136,8 +137,8 @@ protected internal override Value Rebuild( Location, rebuilder.Rebuild(Value)); - /// - protected internal override void Write(IRWriter writer) { } + /// + protected internal override void Write(IIRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -213,8 +214,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Value), TargetBasicValueType); - /// - protected internal override void Write(IRWriter writer) { } + /// + protected internal override void Write(IIRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -328,8 +329,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Value), TargetElementType); - /// - protected internal override void Write(IRWriter writer) => + /// + protected internal override void Write(IIRWriter writer) => writer.Write(TargetElementType.Id); /// @@ -428,8 +429,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Value), TargetAddressSpace); - /// - protected internal override void Write(IRWriter writer) => + /// + protected internal override void Write(IIRWriter writer) => writer.Write(TargetAddressSpace); /// @@ -511,8 +512,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Value), TargetElementType); - /// - protected internal override void Write(IRWriter writer) => + /// + protected internal override void Write(IIRWriter writer) => writer.Write(TargetElementType.Id); /// @@ -587,8 +588,8 @@ protected internal override Value Rebuild( Location, rebuilder.Rebuild(Value)); - /// - protected internal override void Write(IRWriter writer) { } + /// + protected internal override void Write(IIRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -720,8 +721,8 @@ protected internal override Value Rebuild( Location, rebuilder.Rebuild(Value)); - /// - protected internal override void Write(IRWriter writer) { } + /// + protected internal override void Write(IIRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -789,8 +790,8 @@ protected internal override Value Rebuild( Location, rebuilder.Rebuild(Value)); - /// - protected internal override void Write(IRWriter writer) { } + /// + protected internal override void Write(IIRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Compare.cs b/Src/ILGPU/IR/Values/Compare.cs index ba687a924..aeb82c969 100644 --- a/Src/ILGPU/IR/Values/Compare.cs +++ b/Src/ILGPU/IR/Values/Compare.cs @@ -273,8 +273,8 @@ protected internal override Value Rebuild( Kind, Flags); - /// - protected internal override void Write(IRWriter writer) + /// + protected internal override void Write(IIRWriter writer) { writer.Write(Kind); writer.Write(Flags); diff --git a/Src/ILGPU/IR/Values/Constants.cs b/Src/ILGPU/IR/Values/Constants.cs index 83dc2b47f..43aa0a20c 100644 --- a/Src/ILGPU/IR/Values/Constants.cs +++ b/Src/ILGPU/IR/Values/Constants.cs @@ -10,6 +10,7 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; +using ILGPU.IR.Serialization; using ILGPU.IR.Types; using ILGPU.Util; using System; @@ -77,8 +78,8 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreateNull(Location, Type); - /// - protected internal override void Write(IRWriter writer) { } + /// + protected internal override void Write(IIRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -279,8 +280,8 @@ protected internal override Value Rebuild( BasicValueType, rawValue); - /// - protected internal override void Write(IRWriter writer) + /// + protected internal override void Write(IIRWriter writer) { writer.Write(BasicValueType); writer.Write(rawValue); @@ -379,8 +380,8 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreatePrimitiveValue(Location, String); - /// - protected internal override void Write(IRWriter writer) + /// + protected internal override void Write(IIRWriter writer) { writer.Write(Encoding.CodePage); writer.Write(String); diff --git a/Src/ILGPU/IR/Values/Convert.cs b/Src/ILGPU/IR/Values/Convert.cs index 65b7f6fa3..a9e3ba653 100644 --- a/Src/ILGPU/IR/Values/Convert.cs +++ b/Src/ILGPU/IR/Values/Convert.cs @@ -10,6 +10,7 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; +using ILGPU.IR.Serialization; using ILGPU.IR.Types; using ILGPU.Util; using System; @@ -136,8 +137,8 @@ protected internal override Value Rebuild( Type, Flags); - /// - protected internal override void Write(IRWriter writer) + /// + protected internal override void Write(IIRWriter writer) { writer.Write(TargetType); writer.Write(Flags); diff --git a/Src/ILGPU/IR/Values/Debug.cs b/Src/ILGPU/IR/Values/Debug.cs index 1314513b6..da4dd2e87 100644 --- a/Src/ILGPU/IR/Values/Debug.cs +++ b/Src/ILGPU/IR/Values/Debug.cs @@ -106,8 +106,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Condition), rebuilder.Rebuild(Message)); - /// - protected internal override void Write(IRWriter writer) { } + /// + protected internal override void Write(IIRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/DeviceConstants.cs b/Src/ILGPU/IR/Values/DeviceConstants.cs index 9ce79fb3a..f3e7aad24 100644 --- a/Src/ILGPU/IR/Values/DeviceConstants.cs +++ b/Src/ILGPU/IR/Values/DeviceConstants.cs @@ -71,8 +71,8 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreateAcceleratorTypeValue(Location); - /// - protected internal override void Write(IRWriter writer) { } + /// + protected internal override void Write(IIRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -143,8 +143,8 @@ internal DeviceConstantDimensionValue( #region Methods - /// - protected internal override void Write(IRWriter writer) => + /// + protected internal override void Write(IIRWriter writer) => writer.Write(Dimension); #endregion @@ -388,8 +388,8 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreateWarpSizeValue(Location); - /// - protected internal override void Write(IRWriter writer) { } + /// + protected internal override void Write(IIRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -439,8 +439,8 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreateLaneIdxValue(Location); - /// - protected internal override void Write(IRWriter writer) { } + /// + protected internal override void Write(IIRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -509,8 +509,8 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreateDynamicMemoryLengthValue(Location, ElementType, AddressSpace); - /// - protected internal override void Write(IRWriter writer) => + /// + protected internal override void Write(IIRWriter writer) => writer.Write(AddressSpace); /// diff --git a/Src/ILGPU/IR/Values/HandleValue.cs b/Src/ILGPU/IR/Values/HandleValue.cs index 9788a545b..9682caed2 100644 --- a/Src/ILGPU/IR/Values/HandleValue.cs +++ b/Src/ILGPU/IR/Values/HandleValue.cs @@ -63,8 +63,8 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreateRuntimeHandle(Location, Handle); - /// - protected internal override void Write(IRWriter writer) { } + /// + protected internal override void Write(IIRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/IOValues.cs b/Src/ILGPU/IR/Values/IOValues.cs index ddd9e4edf..482df4340 100644 --- a/Src/ILGPU/IR/Values/IOValues.cs +++ b/Src/ILGPU/IR/Values/IOValues.cs @@ -269,8 +269,8 @@ protected internal override Value Rebuild( ref arguments); } - /// - protected internal override void Write(IRWriter writer) { } + /// + protected internal override void Write(IIRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/LanguageValues.cs b/Src/ILGPU/IR/Values/LanguageValues.cs index 72ecbe399..466325a7f 100644 --- a/Src/ILGPU/IR/Values/LanguageValues.cs +++ b/Src/ILGPU/IR/Values/LanguageValues.cs @@ -165,8 +165,8 @@ protected internal override Value Rebuild( ref arguments); } - /// - protected internal override void Write(IRWriter writer) { } + /// + protected internal override void Write(IIRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Memory.cs b/Src/ILGPU/IR/Values/Memory.cs index 4e3505248..dd8655b51 100644 --- a/Src/ILGPU/IR/Values/Memory.cs +++ b/Src/ILGPU/IR/Values/Memory.cs @@ -139,8 +139,8 @@ protected internal override Value Rebuild( AddressSpace, rebuilder.Rebuild(ArrayLength)); - /// - protected internal override void Write(IRWriter writer) => + /// + protected internal override void Write(IIRWriter writer) => writer.Write(AddressSpace); /// @@ -232,8 +232,8 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreateMemoryBarrier(Location, Kind); - /// - protected internal override void Write(IRWriter writer) => + /// + protected internal override void Write(IIRWriter writer) => writer.Write(Kind); /// @@ -307,8 +307,8 @@ protected internal override Value Rebuild( Location, rebuilder.Rebuild(Source)); - /// - protected internal override void Write(IRWriter writer) { } + /// + protected internal override void Write(IIRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -389,8 +389,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Target), rebuilder.Rebuild(Value)); - /// - protected internal override void Write(IRWriter writer) { } + /// + protected internal override void Write(IIRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/MethodCall.cs b/Src/ILGPU/IR/Values/MethodCall.cs index a724fe134..7a18251e4 100644 --- a/Src/ILGPU/IR/Values/MethodCall.cs +++ b/Src/ILGPU/IR/Values/MethodCall.cs @@ -150,8 +150,8 @@ protected internal override Value Rebuild( return call.Seal(); } - /// - protected internal override void Write(IRWriter writer) => + /// + protected internal override void Write(IIRWriter writer) => writer.Write(Target.Id); /// diff --git a/Src/ILGPU/IR/Values/Parameter.cs b/Src/ILGPU/IR/Values/Parameter.cs index c2a837d0c..1a52f8e50 100644 --- a/Src/ILGPU/IR/Values/Parameter.cs +++ b/Src/ILGPU/IR/Values/Parameter.cs @@ -10,6 +10,7 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; +using ILGPU.IR.Serialization; using ILGPU.IR.Types; namespace ILGPU.IR.Values @@ -94,8 +95,8 @@ protected internal override Value Rebuild( // Params have already been mapped in the beginning rebuilder.Rebuild(this); - /// - protected internal override void Write(IRWriter writer) => + /// + protected internal override void Write(IIRWriter writer) => writer.Write(ParameterType.Id); /// diff --git a/Src/ILGPU/IR/Values/PhiValue.cs b/Src/ILGPU/IR/Values/PhiValue.cs index c5109d715..74453a045 100644 --- a/Src/ILGPU/IR/Values/PhiValue.cs +++ b/Src/ILGPU/IR/Values/PhiValue.cs @@ -388,8 +388,8 @@ protected internal override Value Rebuild( // Phi values have already been mapped in the beginning rebuilder.Rebuild(this); - /// - protected internal override void Write(IRWriter writer) + /// + protected internal override void Write(IIRWriter writer) { foreach (var source in Sources) { diff --git a/Src/ILGPU/IR/Values/PointerValues.cs b/Src/ILGPU/IR/Values/PointerValues.cs index 9e8b1745a..7b6bb54db 100644 --- a/Src/ILGPU/IR/Values/PointerValues.cs +++ b/Src/ILGPU/IR/Values/PointerValues.cs @@ -10,6 +10,7 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; +using ILGPU.IR.Serialization; using ILGPU.IR.Types; using ILGPU.Util; using System; @@ -131,8 +132,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Offset), rebuilder.Rebuild(Length)); - /// - protected internal override void Write(IRWriter writer) { } + /// + protected internal override void Write(IIRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -221,8 +222,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Source), rebuilder.Rebuild(Offset)); - /// - protected internal override void Write(IRWriter writer) { } + /// + protected internal override void Write(IIRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -397,8 +398,8 @@ protected internal override Value Rebuild( ref values); } - /// - protected internal override void Write(IRWriter writer) { } + /// + protected internal override void Write(IIRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -491,8 +492,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Source), FieldSpan); - /// - protected internal override void Write(IRWriter writer) + /// + protected internal override void Write(IIRWriter writer) { writer.Write(FieldSpan.Index); writer.Write(FieldSpan.Span); diff --git a/Src/ILGPU/IR/Values/Predicate.cs b/Src/ILGPU/IR/Values/Predicate.cs index 5aef24124..f3baf52f8 100644 --- a/Src/ILGPU/IR/Values/Predicate.cs +++ b/Src/ILGPU/IR/Values/Predicate.cs @@ -88,8 +88,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(TrueValue), rebuilder.Rebuild(FalseValue)); - /// - protected internal override void Write(IRWriter writer) { } + /// + protected internal override void Write(IIRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/StructureValues.cs b/Src/ILGPU/IR/Values/StructureValues.cs index 78669614e..bb08e6395 100644 --- a/Src/ILGPU/IR/Values/StructureValues.cs +++ b/Src/ILGPU/IR/Values/StructureValues.cs @@ -10,6 +10,7 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; +using ILGPU.IR.Serialization; using ILGPU.IR.Types; using ILGPU.Util; using System; @@ -1037,8 +1038,8 @@ protected internal override Value Rebuild( return instance.Seal(); } - /// - protected internal override void Write(IRWriter writer) { } + /// + protected internal override void Write(IIRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -1097,8 +1098,8 @@ internal StructureOperationValue( #region Methods - /// - protected internal override void Write(IRWriter writer) + /// + protected internal override void Write(IIRWriter writer) { writer.Write(FieldSpan.Index); writer.Write(FieldSpan.Span); diff --git a/Src/ILGPU/IR/Values/Terminators.cs b/Src/ILGPU/IR/Values/Terminators.cs index c2bbd1ea0..6c71b2173 100644 --- a/Src/ILGPU/IR/Values/Terminators.cs +++ b/Src/ILGPU/IR/Values/Terminators.cs @@ -228,8 +228,8 @@ protected internal override Value Rebuild( Location, rebuilder.Rebuild(ReturnValue)); - /// - protected internal override void Write(IRWriter writer) { } + /// + protected internal override void Write(IIRWriter writer) { } /// /// Throws an . @@ -278,8 +278,8 @@ internal Branch(in ValueInitializer initializer) protected override TypeNode ComputeType(in ValueInitializer initializer) => initializer.Context.VoidType; - /// - protected internal override void Write(IRWriter writer) + /// + protected internal override void Write(IIRWriter writer) { writer.Write(NumTargets); foreach (var target in Targets) diff --git a/Src/ILGPU/IR/Values/Threads.cs b/Src/ILGPU/IR/Values/Threads.cs index 8025f9399..c60b75e52 100644 --- a/Src/ILGPU/IR/Values/Threads.cs +++ b/Src/ILGPU/IR/Values/Threads.cs @@ -124,8 +124,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Predicate), Kind); - /// - protected internal override void Write(IRWriter writer) => + /// + protected internal override void Write(IIRWriter writer) => writer.Write(Kind); /// @@ -208,8 +208,8 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreateBarrier(Location, Kind); - /// - protected internal override void Write(IRWriter writer) => + /// + protected internal override void Write(IIRWriter writer) => writer.Write(Kind); /// @@ -334,8 +334,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Origin), Kind); - /// - protected internal override void Write(IRWriter writer) => + /// + protected internal override void Write(IIRWriter writer) => writer.Write(Kind); /// @@ -418,8 +418,8 @@ internal ShuffleOperation( #region Methods - /// - protected internal override void Write(IRWriter writer) => + /// + protected internal override void Write(IIRWriter writer) => writer.Write(Kind); #endregion diff --git a/Src/ILGPU/IR/Values/Undefined.cs b/Src/ILGPU/IR/Values/Undefined.cs index bb9bacc04..29d6ed2af 100644 --- a/Src/ILGPU/IR/Values/Undefined.cs +++ b/Src/ILGPU/IR/Values/Undefined.cs @@ -49,8 +49,8 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreateUndefined(); - /// - protected internal override void Write(IRWriter writer) { } + /// + protected internal override void Write(IIRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Value.cs b/Src/ILGPU/IR/Values/Value.cs index da089c69b..e6d6f5960 100644 --- a/Src/ILGPU/IR/Values/Value.cs +++ b/Src/ILGPU/IR/Values/Value.cs @@ -10,6 +10,7 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; +using ILGPU.IR.Serialization; using ILGPU.IR.Types; using ILGPU.IR.Values; using ILGPU.Resources; @@ -545,12 +546,12 @@ protected internal abstract Value Rebuild( IRRebuilder rebuilder); /// - /// Serializes this instance's specific internals to the given . + /// Serializes this instance's specific internals to the given . /// /// /// The given serializer instance. /// - protected internal abstract void Write(IRWriter writer); + protected internal abstract void Write(IIRWriter writer); /// /// Verifies that the this value is not sealed. @@ -786,22 +787,30 @@ protected ValueParent(Location location) #endregion } +} - public sealed partial class IRWriter +namespace ILGPU.IR.Serialization +{ + public partial interface IIRWriter { /// - /// Writes an IR instance to the stream. + /// Serializes an IR instance to the stream. /// /// - /// The value to write to the stream. + /// The value to serialize. /// public void Write(Value value) { Write(value.Id); Write(value.ValueKind); + + Write(value.Method.Id); + Write(value.BasicBlock.Id); + Write(value.Count); foreach (var node in value.Nodes) Write(node.Id); + value.Write(this); } } diff --git a/Src/ILGPU/IR/Values/View.cs b/Src/ILGPU/IR/Values/View.cs index a7a581688..e527b7645 100644 --- a/Src/ILGPU/IR/Values/View.cs +++ b/Src/ILGPU/IR/Values/View.cs @@ -10,6 +10,7 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; +using ILGPU.IR.Serialization; using ILGPU.IR.Types; using ILGPU.Util; @@ -88,8 +89,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Pointer), rebuilder.Rebuild(Length)); - /// - protected internal override void Write(IRWriter writer) { } + /// + protected internal override void Write(IIRWriter writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -230,8 +231,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(View), LengthType); - /// - protected internal override void Write(IRWriter writer) => + /// + protected internal override void Write(IIRWriter writer) => writer.Write(LengthType); /// From a6fb83f88d87d956b6f2c6e28b81a0732a5687a8 Mon Sep 17 00:00:00 2001 From: Isabelle Santin Date: Fri, 24 May 2024 10:49:40 -0500 Subject: [PATCH 08/16] Added IR type serialization --- Src/ILGPU/IR/Types/ArrayType.cs | 11 +++++ Src/ILGPU/IR/Types/HandleType.cs | 11 +++++ Src/ILGPU/IR/Types/IIRTypeContext.cs | 1 + Src/ILGPU/IR/Types/IRTypeContext.cs | 32 +++++++++++++ Src/ILGPU/IR/Types/PaddingType.cs | 9 +++- Src/ILGPU/IR/Types/PointerTypes.cs | 18 ++++++++ Src/ILGPU/IR/Types/PrimitiveTypes.cs | 16 ++++++- Src/ILGPU/IR/Types/StructureType.cs | 14 ++++++ Src/ILGPU/IR/Types/TypeNode.cs | 35 ++++++++++++++ Src/ILGPU/IR/Types/TypeNodeKind.cs | 69 ++++++++++++++++++++++++++++ 10 files changed, 213 insertions(+), 3 deletions(-) create mode 100644 Src/ILGPU/IR/Types/TypeNodeKind.cs diff --git a/Src/ILGPU/IR/Types/ArrayType.cs b/Src/ILGPU/IR/Types/ArrayType.cs index ff81686d4..4c7dfbb6d 100644 --- a/Src/ILGPU/IR/Types/ArrayType.cs +++ b/Src/ILGPU/IR/Types/ArrayType.cs @@ -9,6 +9,7 @@ // Source License. See LICENSE.txt for details. // --------------------------------------------------------------------------------------- +using ILGPU.IR.Serialization; using System; namespace ILGPU.IR.Types @@ -47,6 +48,9 @@ internal ArrayType( /// public override bool IsArrayType => true; + /// + public override TypeNodeKind TypeNodeKind => TypeNodeKind.Array; + /// /// Returns the underlying element type. /// @@ -75,6 +79,13 @@ protected override Type GetManagedType( TTypeProvider typeProvider) => typeProvider.GetArrayType(this); + /// + protected internal override void Write(IIRWriter writer) + { + writer.Write(ElementType.Id); + writer.Write(NumDimensions); + } + #endregion #region Object diff --git a/Src/ILGPU/IR/Types/HandleType.cs b/Src/ILGPU/IR/Types/HandleType.cs index 4811a4213..3cbd41207 100644 --- a/Src/ILGPU/IR/Types/HandleType.cs +++ b/Src/ILGPU/IR/Types/HandleType.cs @@ -9,6 +9,7 @@ // Source License. See LICENSE.txt for details. // --------------------------------------------------------------------------------------- +using ILGPU.IR.Serialization; using System; namespace ILGPU.IR.Types @@ -30,6 +31,13 @@ internal HandleType(IRTypeContext typeContext) #endregion + #region Properties + + /// + public override TypeNodeKind TypeNodeKind => TypeNodeKind.Handle; + + #endregion + #region Methods /// @@ -39,6 +47,9 @@ protected override Type GetManagedType( TTypeProvider typeProvider) => typeof(object); + /// + protected internal override void Write(IIRWriter writer) { } + #endregion #region Object diff --git a/Src/ILGPU/IR/Types/IIRTypeContext.cs b/Src/ILGPU/IR/Types/IIRTypeContext.cs index db995801c..518c1c28b 100644 --- a/Src/ILGPU/IR/Types/IIRTypeContext.cs +++ b/Src/ILGPU/IR/Types/IIRTypeContext.cs @@ -10,6 +10,7 @@ // --------------------------------------------------------------------------------------- using System; +using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; namespace ILGPU.IR.Types diff --git a/Src/ILGPU/IR/Types/IRTypeContext.cs b/Src/ILGPU/IR/Types/IRTypeContext.cs index e6e48e7ed..ef9d23294 100644 --- a/Src/ILGPU/IR/Types/IRTypeContext.cs +++ b/Src/ILGPU/IR/Types/IRTypeContext.cs @@ -10,6 +10,7 @@ // --------------------------------------------------------------------------------------- using ILGPU.Backends; +using ILGPU.IR.Serialization; using ILGPU.Resources; using ILGPU.Util; using System; @@ -579,6 +580,37 @@ public override void ClearCache(ClearCacheMode mode) PopulateTypeMapping(); } + /// + /// Acquires a lock on the current and + /// retrieves an containing the + /// full type unification therewithin. + /// + /// + /// The retrieved type unification as a generic collection. + /// + public IEnumerable GetUnifiedTypeCollection() + { + using var readScope = typeLock.EnterReadScope(); + foreach (var (type, _) in unifiedTypes) + { + yield return type; + } + } + + /// + /// Serializes this instance using the given . + /// + /// + /// The writer to use for serialization. + /// + public void Write(IIRWriter writer) + { + foreach (var type in GetUnifiedTypeCollection()) + { + writer.Write(type); + } + } + #endregion #region IDisposable diff --git a/Src/ILGPU/IR/Types/PaddingType.cs b/Src/ILGPU/IR/Types/PaddingType.cs index e3809a297..eb14f114d 100644 --- a/Src/ILGPU/IR/Types/PaddingType.cs +++ b/Src/ILGPU/IR/Types/PaddingType.cs @@ -9,7 +9,7 @@ // Source License. See LICENSE.txt for details. // --------------------------------------------------------------------------------------- -using ILGPU.Util; +using ILGPU.IR.Serialization; using System; namespace ILGPU.IR.Types @@ -41,6 +41,9 @@ internal PaddingType(IRTypeContext typeContext, PrimitiveType primitiveType) /// public override bool IsPaddingType => true; + /// + public override TypeNodeKind TypeNodeKind => TypeNodeKind.Padding; + /// /// Returns the associated basic value type. /// @@ -62,6 +65,10 @@ protected override Type GetManagedType( TTypeProvider typeProvider) => typeProvider.GetPrimitiveType(PrimitiveType); + /// + protected internal override void Write(IIRWriter writer) => + writer.Write(PrimitiveType.Id); + #endregion #region Object diff --git a/Src/ILGPU/IR/Types/PointerTypes.cs b/Src/ILGPU/IR/Types/PointerTypes.cs index a78ed51f1..d681faf2d 100644 --- a/Src/ILGPU/IR/Types/PointerTypes.cs +++ b/Src/ILGPU/IR/Types/PointerTypes.cs @@ -10,6 +10,7 @@ // --------------------------------------------------------------------------------------- using ILGPU.Backends; +using ILGPU.IR.Serialization; using System; using System.Diagnostics; @@ -126,6 +127,17 @@ protected AddressSpaceType( #endregion + #region Methods + + /// + protected internal override void Write(IIRWriter writer) + { + writer.Write(ElementType.Id); + writer.Write(AddressSpace); + } + + #endregion + #region Object /// @@ -185,6 +197,9 @@ internal PointerType( /// public override bool IsPointerType => true; + /// + public override TypeNodeKind TypeNodeKind => TypeNodeKind.Pointer; + /// /// Returns the associated basic value type. /// @@ -257,6 +272,9 @@ internal ViewType( /// public override bool IsViewType => true; + /// + public override TypeNodeKind TypeNodeKind => TypeNodeKind.View; + #endregion #region Methods diff --git a/Src/ILGPU/IR/Types/PrimitiveTypes.cs b/Src/ILGPU/IR/Types/PrimitiveTypes.cs index bf16b44e1..ed2b02f5f 100644 --- a/Src/ILGPU/IR/Types/PrimitiveTypes.cs +++ b/Src/ILGPU/IR/Types/PrimitiveTypes.cs @@ -9,10 +9,9 @@ // Source License. See LICENSE.txt for details. // --------------------------------------------------------------------------------------- -using ILGPU.Util; +using ILGPU.IR.Serialization; using System; using System.Collections.Immutable; -using System.Runtime.CompilerServices; namespace ILGPU.IR.Types { @@ -88,6 +87,9 @@ internal PrimitiveType(IRTypeContext typeContext, BasicValueType basicValueType) /// public override bool IsPrimitiveType => true; + /// + public override TypeNodeKind TypeNodeKind => TypeNodeKind.Primitive; + /// /// Returns the associated basic value type. /// @@ -123,6 +125,10 @@ protected override Type GetManagedType( TTypeProvider typeProvider) => typeProvider.GetPrimitiveType(this); + /// + protected internal override void Write(IIRWriter writer) => + writer.Write(BasicValueType); + #endregion #region Object @@ -165,6 +171,9 @@ internal StringType(IRTypeContext typeContext) /// public override bool IsStringType => true; + /// + public override TypeNodeKind TypeNodeKind => TypeNodeKind.String; + #endregion #region Methods @@ -176,6 +185,9 @@ protected override Type GetManagedType( TTypeProvider typeProvider) => typeof(string); + /// + protected internal override void Write(IIRWriter writer) { } + #endregion #region Object diff --git a/Src/ILGPU/IR/Types/StructureType.cs b/Src/ILGPU/IR/Types/StructureType.cs index 4a7ce3a9d..c893d5592 100644 --- a/Src/ILGPU/IR/Types/StructureType.cs +++ b/Src/ILGPU/IR/Types/StructureType.cs @@ -9,6 +9,7 @@ // Source License. See LICENSE.txt for details. // --------------------------------------------------------------------------------------- +using ILGPU.IR.Serialization; using ILGPU.IR.Values; using ILGPU.Util; using System; @@ -747,6 +748,9 @@ internal StructureType(IRTypeContext typeContext, in Builder builder) /// public override bool IsRootType => NumFields < 1; + /// + public override TypeNodeKind TypeNodeKind => TypeNodeKind.Structure; + /// /// Returns the high-level fields stored in this structure type. /// @@ -939,6 +943,16 @@ protected override Type GetManagedType( TTypeProvider typeProvider) => typeProvider.GetStructureType(this); + /// + protected internal override void Write(IIRWriter writer) + { + writer.Write(NumFields); + foreach (var fieldType in Fields) + { + writer.Write(fieldType.Id); + } + } + #endregion #region IEnumerable diff --git a/Src/ILGPU/IR/Types/TypeNode.cs b/Src/ILGPU/IR/Types/TypeNode.cs index 9122ac3a9..4b382a8fc 100644 --- a/Src/ILGPU/IR/Types/TypeNode.cs +++ b/Src/ILGPU/IR/Types/TypeNode.cs @@ -10,6 +10,8 @@ // --------------------------------------------------------------------------------------- using ILGPU.Backends; +using ILGPU.IR.Serialization; +using ILGPU.IR.Types; using ILGPU.Resources; using ILGPU.Util; using System; @@ -288,6 +290,11 @@ protected TypeNode(IRTypeContext typeContext) /// public virtual BasicValueType BasicValueType => BasicValueType.None; + /// + /// Returns the of this instance. + /// + public abstract TypeNodeKind TypeNodeKind { get; } + /// /// Returns all type flags. /// @@ -345,6 +352,14 @@ public bool HasFlags(TypeFlags typeFlags) => protected abstract Type GetManagedType(TTypeProvider typeProvider) where TTypeProvider : IManagedTypeProvider; + /// + /// Serializes this instance's specific internals to the given . + /// + /// + /// The given serializer instance. + /// + protected internal abstract void Write(IIRWriter writer); + /// /// Converts the current type to the given type . /// @@ -401,3 +416,23 @@ public override bool Equals(object? obj) => #endregion } } + +namespace ILGPU.IR.Serialization +{ + public partial interface IIRWriter + { + /// + /// Serializes an IR instance to the stream. + /// + /// + /// The value to serialize. + /// + public void Write(TypeNode value) + { + Write(value.Id); + Write(value.TypeNodeKind); + + value.Write(this); + } + } +} diff --git a/Src/ILGPU/IR/Types/TypeNodeKind.cs b/Src/ILGPU/IR/Types/TypeNodeKind.cs new file mode 100644 index 000000000..1014a3a80 --- /dev/null +++ b/Src/ILGPU/IR/Types/TypeNodeKind.cs @@ -0,0 +1,69 @@ +// --------------------------------------------------------------------------------------- +// ILGPU +// Copyright (c) 2024 ILGPU Project +// www.ilgpu.net +// +// File: TypeNodeKind.cs +// +// This file is part of ILGPU and is distributed under the University of Illinois Open +// Source License. See LICENSE.txt for details. +// --------------------------------------------------------------------------------------- + +namespace ILGPU.IR.Types +{ + /// + /// Enumeration of tHhe various special kinds of . + /// + public enum TypeNodeKind + { + /// + /// Fallback value for when the classification is unknown or doesn't apply + /// + Unknown, + + /// + /// See + /// + Void, + + /// + /// See + /// + String, + + /// + /// See + /// + Primitive, + + /// + /// See + /// + Padding, + + /// + /// See + /// + Pointer, + + /// + /// See + /// + View, + + /// + /// See + /// + Array, + + /// + /// See + /// + Structure, + + /// + /// See + /// + Handle, + } +} From d39357eba7a7edcb4271d5fddcbd21d56f23898b Mon Sep 17 00:00:00 2001 From: Isabelle Santin Date: Fri, 24 May 2024 10:52:41 -0500 Subject: [PATCH 09/16] Final touches --- Src/ILGPU/IR/Types/IIRTypeContext.cs | 1 - Src/ILGPU/IR/Types/VoidType.cs | 7 +++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Src/ILGPU/IR/Types/IIRTypeContext.cs b/Src/ILGPU/IR/Types/IIRTypeContext.cs index 518c1c28b..db995801c 100644 --- a/Src/ILGPU/IR/Types/IIRTypeContext.cs +++ b/Src/ILGPU/IR/Types/IIRTypeContext.cs @@ -10,7 +10,6 @@ // --------------------------------------------------------------------------------------- using System; -using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; namespace ILGPU.IR.Types diff --git a/Src/ILGPU/IR/Types/VoidType.cs b/Src/ILGPU/IR/Types/VoidType.cs index cc8ae994e..f332b73a5 100644 --- a/Src/ILGPU/IR/Types/VoidType.cs +++ b/Src/ILGPU/IR/Types/VoidType.cs @@ -9,6 +9,7 @@ // Source License. See LICENSE.txt for details. // --------------------------------------------------------------------------------------- +using ILGPU.IR.Serialization; using System; namespace ILGPU.IR.Types @@ -35,6 +36,9 @@ internal VoidType(IRTypeContext typeContext) /// public override bool IsVoidType => true; + /// + public override TypeNodeKind TypeNodeKind => TypeNodeKind.Void; + #endregion #region Methods @@ -46,6 +50,9 @@ protected override Type GetManagedType( TTypeProvider typeProvider) => typeof(void); + /// + protected internal override void Write(IIRWriter writer) { } + #endregion #region Object From adab2b8b101aae1487a532f7d82c9e12fde5d111 Mon Sep 17 00:00:00 2001 From: Isabelle Santin Date: Sat, 25 May 2024 11:54:27 -0500 Subject: [PATCH 10/16] Fix compiler errors from missing using statements --- Src/ILGPU/IR/Values/Compare.cs | 1 + Src/ILGPU/IR/Values/Debug.cs | 1 + Src/ILGPU/IR/Values/DeviceConstants.cs | 1 + Src/ILGPU/IR/Values/HandleValue.cs | 1 + Src/ILGPU/IR/Values/IOValues.cs | 1 + Src/ILGPU/IR/Values/LanguageValues.cs | 1 + Src/ILGPU/IR/Values/Memory.cs | 1 + Src/ILGPU/IR/Values/MethodCall.cs | 1 + Src/ILGPU/IR/Values/PhiValue.cs | 1 + Src/ILGPU/IR/Values/Predicate.cs | 1 + Src/ILGPU/IR/Values/Terminators.cs | 1 + Src/ILGPU/IR/Values/Threads.cs | 1 + Src/ILGPU/IR/Values/Undefined.cs | 1 + 13 files changed, 13 insertions(+) diff --git a/Src/ILGPU/IR/Values/Compare.cs b/Src/ILGPU/IR/Values/Compare.cs index aeb82c969..3d17b7ea9 100644 --- a/Src/ILGPU/IR/Values/Compare.cs +++ b/Src/ILGPU/IR/Values/Compare.cs @@ -10,6 +10,7 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; +using ILGPU.IR.Serialization; using ILGPU.IR.Types; using ILGPU.Util; using System; diff --git a/Src/ILGPU/IR/Values/Debug.cs b/Src/ILGPU/IR/Values/Debug.cs index da4dd2e87..6e14e184b 100644 --- a/Src/ILGPU/IR/Values/Debug.cs +++ b/Src/ILGPU/IR/Values/Debug.cs @@ -10,6 +10,7 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; +using ILGPU.IR.Serialization; using ILGPU.IR.Types; namespace ILGPU.IR.Values diff --git a/Src/ILGPU/IR/Values/DeviceConstants.cs b/Src/ILGPU/IR/Values/DeviceConstants.cs index f3e7aad24..ed42404e5 100644 --- a/Src/ILGPU/IR/Values/DeviceConstants.cs +++ b/Src/ILGPU/IR/Values/DeviceConstants.cs @@ -10,6 +10,7 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; +using ILGPU.IR.Serialization; using ILGPU.IR.Types; using ILGPU.Runtime; diff --git a/Src/ILGPU/IR/Values/HandleValue.cs b/Src/ILGPU/IR/Values/HandleValue.cs index 9682caed2..119fdc73a 100644 --- a/Src/ILGPU/IR/Values/HandleValue.cs +++ b/Src/ILGPU/IR/Values/HandleValue.cs @@ -10,6 +10,7 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; +using ILGPU.IR.Serialization; using ILGPU.IR.Types; namespace ILGPU.IR.Values diff --git a/Src/ILGPU/IR/Values/IOValues.cs b/Src/ILGPU/IR/Values/IOValues.cs index 482df4340..a39519cc5 100644 --- a/Src/ILGPU/IR/Values/IOValues.cs +++ b/Src/ILGPU/IR/Values/IOValues.cs @@ -10,6 +10,7 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; +using ILGPU.IR.Serialization; using ILGPU.IR.Types; using ILGPU.Util; using System; diff --git a/Src/ILGPU/IR/Values/LanguageValues.cs b/Src/ILGPU/IR/Values/LanguageValues.cs index 466325a7f..e8da57250 100644 --- a/Src/ILGPU/IR/Values/LanguageValues.cs +++ b/Src/ILGPU/IR/Values/LanguageValues.cs @@ -10,6 +10,7 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; +using ILGPU.IR.Serialization; using ILGPU.IR.Types; using System; using System.Diagnostics.CodeAnalysis; diff --git a/Src/ILGPU/IR/Values/Memory.cs b/Src/ILGPU/IR/Values/Memory.cs index dd8655b51..617f4ef2e 100644 --- a/Src/ILGPU/IR/Values/Memory.cs +++ b/Src/ILGPU/IR/Values/Memory.cs @@ -10,6 +10,7 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; +using ILGPU.IR.Serialization; using ILGPU.IR.Types; using ILGPU.Util; using System.Diagnostics.CodeAnalysis; diff --git a/Src/ILGPU/IR/Values/MethodCall.cs b/Src/ILGPU/IR/Values/MethodCall.cs index 7a18251e4..533599fe8 100644 --- a/Src/ILGPU/IR/Values/MethodCall.cs +++ b/Src/ILGPU/IR/Values/MethodCall.cs @@ -10,6 +10,7 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; +using ILGPU.IR.Serialization; using ILGPU.IR.Types; using System.Runtime.CompilerServices; using ValueList = ILGPU.Util.InlineList; diff --git a/Src/ILGPU/IR/Values/PhiValue.cs b/Src/ILGPU/IR/Values/PhiValue.cs index 74453a045..ba5dea459 100644 --- a/Src/ILGPU/IR/Values/PhiValue.cs +++ b/Src/ILGPU/IR/Values/PhiValue.cs @@ -10,6 +10,7 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; +using ILGPU.IR.Serialization; using ILGPU.IR.Types; using ILGPU.Util; using System; diff --git a/Src/ILGPU/IR/Values/Predicate.cs b/Src/ILGPU/IR/Values/Predicate.cs index f3baf52f8..ff7bc58f5 100644 --- a/Src/ILGPU/IR/Values/Predicate.cs +++ b/Src/ILGPU/IR/Values/Predicate.cs @@ -10,6 +10,7 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; +using ILGPU.IR.Serialization; using ILGPU.IR.Types; using System; diff --git a/Src/ILGPU/IR/Values/Terminators.cs b/Src/ILGPU/IR/Values/Terminators.cs index 6c71b2173..aaeff792b 100644 --- a/Src/ILGPU/IR/Values/Terminators.cs +++ b/Src/ILGPU/IR/Values/Terminators.cs @@ -10,6 +10,7 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; +using ILGPU.IR.Serialization; using ILGPU.IR.Types; using ILGPU.Util; using System; diff --git a/Src/ILGPU/IR/Values/Threads.cs b/Src/ILGPU/IR/Values/Threads.cs index c60b75e52..b945615c3 100644 --- a/Src/ILGPU/IR/Values/Threads.cs +++ b/Src/ILGPU/IR/Values/Threads.cs @@ -10,6 +10,7 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; +using ILGPU.IR.Serialization; using ILGPU.IR.Types; namespace ILGPU.IR.Values diff --git a/Src/ILGPU/IR/Values/Undefined.cs b/Src/ILGPU/IR/Values/Undefined.cs index 29d6ed2af..645e6e8b3 100644 --- a/Src/ILGPU/IR/Values/Undefined.cs +++ b/Src/ILGPU/IR/Values/Undefined.cs @@ -10,6 +10,7 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; +using ILGPU.IR.Serialization; namespace ILGPU.IR.Values { From 0de19167a3e92583dea8374476f42a25abc86a18 Mon Sep 17 00:00:00 2001 From: Isabelle Santin Date: Sat, 25 May 2024 12:51:19 -0500 Subject: [PATCH 11/16] Added considerations for potentially replacing `IDumpable` --- Src/ILGPU/IR/Serialization/BinaryIRWriter.cs | 8 ++++---- Src/ILGPU/IR/Serialization/IIRWriter.cs | 20 +++++++++++++++---- Src/ILGPU/IR/Types/ArrayType.cs | 6 +++--- Src/ILGPU/IR/Types/HandleType.cs | 2 +- Src/ILGPU/IR/Types/PaddingType.cs | 4 ++-- Src/ILGPU/IR/Types/PointerTypes.cs | 8 ++++---- Src/ILGPU/IR/Types/PrimitiveTypes.cs | 6 +++--- Src/ILGPU/IR/Types/StructureType.cs | 7 ++++--- .../IR/Types/{TypeNodeKind.cs => TypeKind.cs} | 2 +- Src/ILGPU/IR/Types/TypeNode.cs | 8 ++++---- Src/ILGPU/IR/Types/VoidType.cs | 2 +- Src/ILGPU/IR/Values/Arithmetic.cs | 12 +++++------ Src/ILGPU/IR/Values/ArrayValues.cs | 2 +- Src/ILGPU/IR/Values/Atomic.cs | 6 +++--- Src/ILGPU/IR/Values/Cast.cs | 6 +++--- Src/ILGPU/IR/Values/Compare.cs | 4 ++-- Src/ILGPU/IR/Values/Constants.cs | 8 ++++---- Src/ILGPU/IR/Values/Convert.cs | 4 ++-- Src/ILGPU/IR/Values/DeviceConstants.cs | 4 ++-- Src/ILGPU/IR/Values/Memory.cs | 4 ++-- Src/ILGPU/IR/Values/MethodCall.cs | 2 +- Src/ILGPU/IR/Values/Parameter.cs | 2 +- Src/ILGPU/IR/Values/PhiValue.cs | 3 ++- Src/ILGPU/IR/Values/PointerValues.cs | 4 ++-- Src/ILGPU/IR/Values/StructureValues.cs | 4 ++-- Src/ILGPU/IR/Values/Terminators.cs | 5 +++-- Src/ILGPU/IR/Values/Threads.cs | 8 ++++---- Src/ILGPU/IR/Values/Value.cs | 18 ++++++++++------- Src/ILGPU/IR/Values/View.cs | 2 +- 29 files changed, 95 insertions(+), 76 deletions(-) rename Src/ILGPU/IR/Types/{TypeNodeKind.cs => TypeKind.cs} (98%) diff --git a/Src/ILGPU/IR/Serialization/BinaryIRWriter.cs b/Src/ILGPU/IR/Serialization/BinaryIRWriter.cs index 1f2f9a8dd..4b5fc12c8 100644 --- a/Src/ILGPU/IR/Serialization/BinaryIRWriter.cs +++ b/Src/ILGPU/IR/Serialization/BinaryIRWriter.cs @@ -39,19 +39,19 @@ public BinaryIRWriter(Stream stream, Encoding encoding) } /// - public void Write(int value) => + public void Write(string tag, int value) => writer.Write(value); /// - public void Write(long value) => + public void Write(string tag, long value) => writer.Write(value); /// - public void Write(string value) => + public void Write(string tag, string value) => writer.Write(value); /// - public void Write(T value) where T : Enum => + public void Write(string tag, T value) where T : Enum => writer.Write(Convert.ToInt32(value)); /// diff --git a/Src/ILGPU/IR/Serialization/IIRWriter.cs b/Src/ILGPU/IR/Serialization/IIRWriter.cs index 0eb36dae6..0011bfb05 100644 --- a/Src/ILGPU/IR/Serialization/IIRWriter.cs +++ b/Src/ILGPU/IR/Serialization/IIRWriter.cs @@ -21,33 +21,45 @@ public partial interface IIRWriter : IDisposable /// /// Serializes a 32-bit integer value to the stream. /// + /// + /// A tag that describes the purpose of this value. + /// /// /// The value to serialize. /// - void Write(int value); + void Write(string tag, int value); /// /// Serializes a 64-bit integer value to the stream. /// + /// + /// A tag that describes the purpose of this value. + /// /// /// The value to serialize. /// - void Write(long value); + void Write(string tag, long value); /// /// Serializes a 32-bit integer value to the stream. /// + /// + /// A tag that describes the purpose of this value. + /// /// /// The value to serialize. /// - void Write(string value); + void Write(string tag, string value); /// /// Serializes a string value to the stream. /// + /// + /// A tag that describes the purpose of this value. + /// /// /// The value to serialize. /// - void Write(T value) where T : Enum; + void Write(string tag, T value) where T : Enum; } } diff --git a/Src/ILGPU/IR/Types/ArrayType.cs b/Src/ILGPU/IR/Types/ArrayType.cs index 4c7dfbb6d..e0bd3e056 100644 --- a/Src/ILGPU/IR/Types/ArrayType.cs +++ b/Src/ILGPU/IR/Types/ArrayType.cs @@ -49,7 +49,7 @@ internal ArrayType( public override bool IsArrayType => true; /// - public override TypeNodeKind TypeNodeKind => TypeNodeKind.Array; + public override TypeKind TypeKind => TypeKind.Array; /// /// Returns the underlying element type. @@ -82,8 +82,8 @@ protected override Type GetManagedType( /// protected internal override void Write(IIRWriter writer) { - writer.Write(ElementType.Id); - writer.Write(NumDimensions); + writer.Write("ElementType", ElementType.Id); + writer.Write("NumDimensions", NumDimensions); } #endregion diff --git a/Src/ILGPU/IR/Types/HandleType.cs b/Src/ILGPU/IR/Types/HandleType.cs index 3cbd41207..2b27a0350 100644 --- a/Src/ILGPU/IR/Types/HandleType.cs +++ b/Src/ILGPU/IR/Types/HandleType.cs @@ -34,7 +34,7 @@ internal HandleType(IRTypeContext typeContext) #region Properties /// - public override TypeNodeKind TypeNodeKind => TypeNodeKind.Handle; + public override TypeKind TypeKind => TypeKind.Handle; #endregion diff --git a/Src/ILGPU/IR/Types/PaddingType.cs b/Src/ILGPU/IR/Types/PaddingType.cs index eb14f114d..1cd1b162c 100644 --- a/Src/ILGPU/IR/Types/PaddingType.cs +++ b/Src/ILGPU/IR/Types/PaddingType.cs @@ -42,7 +42,7 @@ internal PaddingType(IRTypeContext typeContext, PrimitiveType primitiveType) public override bool IsPaddingType => true; /// - public override TypeNodeKind TypeNodeKind => TypeNodeKind.Padding; + public override TypeKind TypeKind => TypeKind.Padding; /// /// Returns the associated basic value type. @@ -67,7 +67,7 @@ protected override Type GetManagedType( /// protected internal override void Write(IIRWriter writer) => - writer.Write(PrimitiveType.Id); + writer.Write("PrimitiveType", PrimitiveType.Id); #endregion diff --git a/Src/ILGPU/IR/Types/PointerTypes.cs b/Src/ILGPU/IR/Types/PointerTypes.cs index d681faf2d..c2e1db9ec 100644 --- a/Src/ILGPU/IR/Types/PointerTypes.cs +++ b/Src/ILGPU/IR/Types/PointerTypes.cs @@ -132,8 +132,8 @@ protected AddressSpaceType( /// protected internal override void Write(IIRWriter writer) { - writer.Write(ElementType.Id); - writer.Write(AddressSpace); + writer.Write("ElementType", ElementType.Id); + writer.Write("AddressSpace", AddressSpace); } #endregion @@ -198,7 +198,7 @@ internal PointerType( public override bool IsPointerType => true; /// - public override TypeNodeKind TypeNodeKind => TypeNodeKind.Pointer; + public override TypeKind TypeKind => TypeKind.Pointer; /// /// Returns the associated basic value type. @@ -273,7 +273,7 @@ internal ViewType( public override bool IsViewType => true; /// - public override TypeNodeKind TypeNodeKind => TypeNodeKind.View; + public override TypeKind TypeKind => TypeKind.View; #endregion diff --git a/Src/ILGPU/IR/Types/PrimitiveTypes.cs b/Src/ILGPU/IR/Types/PrimitiveTypes.cs index ed2b02f5f..82b961c54 100644 --- a/Src/ILGPU/IR/Types/PrimitiveTypes.cs +++ b/Src/ILGPU/IR/Types/PrimitiveTypes.cs @@ -88,7 +88,7 @@ internal PrimitiveType(IRTypeContext typeContext, BasicValueType basicValueType) public override bool IsPrimitiveType => true; /// - public override TypeNodeKind TypeNodeKind => TypeNodeKind.Primitive; + public override TypeKind TypeKind => TypeKind.Primitive; /// /// Returns the associated basic value type. @@ -127,7 +127,7 @@ protected override Type GetManagedType( /// protected internal override void Write(IIRWriter writer) => - writer.Write(BasicValueType); + writer.Write("BasicValueType", BasicValueType); #endregion @@ -172,7 +172,7 @@ internal StringType(IRTypeContext typeContext) public override bool IsStringType => true; /// - public override TypeNodeKind TypeNodeKind => TypeNodeKind.String; + public override TypeKind TypeKind => TypeKind.String; #endregion diff --git a/Src/ILGPU/IR/Types/StructureType.cs b/Src/ILGPU/IR/Types/StructureType.cs index c893d5592..18f10342f 100644 --- a/Src/ILGPU/IR/Types/StructureType.cs +++ b/Src/ILGPU/IR/Types/StructureType.cs @@ -749,7 +749,7 @@ internal StructureType(IRTypeContext typeContext, in Builder builder) public override bool IsRootType => NumFields < 1; /// - public override TypeNodeKind TypeNodeKind => TypeNodeKind.Structure; + public override TypeKind TypeKind => TypeKind.Structure; /// /// Returns the high-level fields stored in this structure type. @@ -946,10 +946,11 @@ protected override Type GetManagedType( /// protected internal override void Write(IIRWriter writer) { - writer.Write(NumFields); + int index = 0; + writer.Write("NumFields", NumFields); foreach (var fieldType in Fields) { - writer.Write(fieldType.Id); + writer.Write($"Fields[{index++}]", fieldType.Id); } } diff --git a/Src/ILGPU/IR/Types/TypeNodeKind.cs b/Src/ILGPU/IR/Types/TypeKind.cs similarity index 98% rename from Src/ILGPU/IR/Types/TypeNodeKind.cs rename to Src/ILGPU/IR/Types/TypeKind.cs index 1014a3a80..60a76b148 100644 --- a/Src/ILGPU/IR/Types/TypeNodeKind.cs +++ b/Src/ILGPU/IR/Types/TypeKind.cs @@ -14,7 +14,7 @@ namespace ILGPU.IR.Types /// /// Enumeration of tHhe various special kinds of . /// - public enum TypeNodeKind + public enum TypeKind { /// /// Fallback value for when the classification is unknown or doesn't apply diff --git a/Src/ILGPU/IR/Types/TypeNode.cs b/Src/ILGPU/IR/Types/TypeNode.cs index 4b382a8fc..5c81ef7c4 100644 --- a/Src/ILGPU/IR/Types/TypeNode.cs +++ b/Src/ILGPU/IR/Types/TypeNode.cs @@ -291,9 +291,9 @@ protected TypeNode(IRTypeContext typeContext) public virtual BasicValueType BasicValueType => BasicValueType.None; /// - /// Returns the of this instance. + /// Returns the of this instance. /// - public abstract TypeNodeKind TypeNodeKind { get; } + public abstract TypeKind TypeKind { get; } /// /// Returns all type flags. @@ -429,8 +429,8 @@ public partial interface IIRWriter /// public void Write(TypeNode value) { - Write(value.Id); - Write(value.TypeNodeKind); + Write("Type", value.Id); + Write("TypeKind", value.TypeKind); value.Write(this); } diff --git a/Src/ILGPU/IR/Types/VoidType.cs b/Src/ILGPU/IR/Types/VoidType.cs index f332b73a5..2aa1b467c 100644 --- a/Src/ILGPU/IR/Types/VoidType.cs +++ b/Src/ILGPU/IR/Types/VoidType.cs @@ -37,7 +37,7 @@ internal VoidType(IRTypeContext typeContext) public override bool IsVoidType => true; /// - public override TypeNodeKind TypeNodeKind => TypeNodeKind.Void; + public override TypeKind TypeKind => TypeKind.Void; #endregion diff --git a/Src/ILGPU/IR/Values/Arithmetic.cs b/Src/ILGPU/IR/Values/Arithmetic.cs index adb870ee3..ee36a95b4 100644 --- a/Src/ILGPU/IR/Values/Arithmetic.cs +++ b/Src/ILGPU/IR/Values/Arithmetic.cs @@ -193,8 +193,8 @@ protected internal override Value Rebuild( /// protected internal override void Write(IIRWriter writer) { - writer.Write(Kind); - writer.Write(Flags); + writer.Write("Kind", Kind); + writer.Write("Flags", Flags); } /// @@ -332,8 +332,8 @@ protected internal override Value Rebuild( /// protected internal override void Write(IIRWriter writer) { - writer.Write(Kind); - writer.Write(Flags); + writer.Write("Kind", Kind); + writer.Write("Flags", Flags); } /// @@ -468,8 +468,8 @@ protected internal override Value Rebuild( /// protected internal override void Write(IIRWriter writer) { - writer.Write(Kind); - writer.Write(Flags); + writer.Write("Kind", Kind); + writer.Write("Flags", Flags); } /// diff --git a/Src/ILGPU/IR/Values/ArrayValues.cs b/Src/ILGPU/IR/Values/ArrayValues.cs index 2b13eba21..c88412297 100644 --- a/Src/ILGPU/IR/Values/ArrayValues.cs +++ b/Src/ILGPU/IR/Values/ArrayValues.cs @@ -156,7 +156,7 @@ protected internal override Value Rebuild( /// protected internal override void Write(IIRWriter writer) => - writer.Write(Type.Id); + writer.Write("Type", Type.Id); /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Atomic.cs b/Src/ILGPU/IR/Values/Atomic.cs index b5deece35..7e5e3bb80 100644 --- a/Src/ILGPU/IR/Values/Atomic.cs +++ b/Src/ILGPU/IR/Values/Atomic.cs @@ -204,8 +204,8 @@ protected internal override Value Rebuild( /// protected internal override void Write(IIRWriter writer) { - writer.Write(Kind); - writer.Write(Flags); + writer.Write("Kind", Kind); + writer.Write("Flags", Flags); } /// @@ -284,7 +284,7 @@ protected internal override Value Rebuild( /// protected internal override void Write(IIRWriter writer) => - writer.Write(Flags); + writer.Write("Flags", Flags); /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Cast.cs b/Src/ILGPU/IR/Values/Cast.cs index c7e0dd157..bd0d08947 100644 --- a/Src/ILGPU/IR/Values/Cast.cs +++ b/Src/ILGPU/IR/Values/Cast.cs @@ -331,7 +331,7 @@ protected internal override Value Rebuild( /// protected internal override void Write(IIRWriter writer) => - writer.Write(TargetElementType.Id); + writer.Write("TargetElementType", TargetElementType.Id); /// public override void Accept(T visitor) => visitor.Visit(this); @@ -431,7 +431,7 @@ protected internal override Value Rebuild( /// protected internal override void Write(IIRWriter writer) => - writer.Write(TargetAddressSpace); + writer.Write("TargetAddressSpace", TargetAddressSpace); /// public override void Accept(T visitor) => visitor.Visit(this); @@ -514,7 +514,7 @@ protected internal override Value Rebuild( /// protected internal override void Write(IIRWriter writer) => - writer.Write(TargetElementType.Id); + writer.Write("TargetElementType", TargetElementType.Id); /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Compare.cs b/Src/ILGPU/IR/Values/Compare.cs index 3d17b7ea9..7be00ffec 100644 --- a/Src/ILGPU/IR/Values/Compare.cs +++ b/Src/ILGPU/IR/Values/Compare.cs @@ -277,8 +277,8 @@ protected internal override Value Rebuild( /// protected internal override void Write(IIRWriter writer) { - writer.Write(Kind); - writer.Write(Flags); + writer.Write("Kind", Kind); + writer.Write("Flags", Flags); } /// diff --git a/Src/ILGPU/IR/Values/Constants.cs b/Src/ILGPU/IR/Values/Constants.cs index 43aa0a20c..894178fe4 100644 --- a/Src/ILGPU/IR/Values/Constants.cs +++ b/Src/ILGPU/IR/Values/Constants.cs @@ -283,8 +283,8 @@ protected internal override Value Rebuild( /// protected internal override void Write(IIRWriter writer) { - writer.Write(BasicValueType); - writer.Write(rawValue); + writer.Write("BasicValueType", BasicValueType); + writer.Write("RawValue", RawValue); } /// @@ -383,8 +383,8 @@ protected internal override Value Rebuild( /// protected internal override void Write(IIRWriter writer) { - writer.Write(Encoding.CodePage); - writer.Write(String); + writer.Write("Encoding", Encoding.CodePage); + writer.Write("String", String); } /// diff --git a/Src/ILGPU/IR/Values/Convert.cs b/Src/ILGPU/IR/Values/Convert.cs index a9e3ba653..6e6a5ee81 100644 --- a/Src/ILGPU/IR/Values/Convert.cs +++ b/Src/ILGPU/IR/Values/Convert.cs @@ -140,8 +140,8 @@ protected internal override Value Rebuild( /// protected internal override void Write(IIRWriter writer) { - writer.Write(TargetType); - writer.Write(Flags); + writer.Write("TargetType", TargetType); + writer.Write("Flags", Flags); } /// diff --git a/Src/ILGPU/IR/Values/DeviceConstants.cs b/Src/ILGPU/IR/Values/DeviceConstants.cs index ed42404e5..6ffe90788 100644 --- a/Src/ILGPU/IR/Values/DeviceConstants.cs +++ b/Src/ILGPU/IR/Values/DeviceConstants.cs @@ -146,7 +146,7 @@ internal DeviceConstantDimensionValue( /// protected internal override void Write(IIRWriter writer) => - writer.Write(Dimension); + writer.Write("Dimension", Dimension); #endregion @@ -512,7 +512,7 @@ protected internal override Value Rebuild( /// protected internal override void Write(IIRWriter writer) => - writer.Write(AddressSpace); + writer.Write("AddressSpace", AddressSpace); /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Memory.cs b/Src/ILGPU/IR/Values/Memory.cs index 617f4ef2e..980962412 100644 --- a/Src/ILGPU/IR/Values/Memory.cs +++ b/Src/ILGPU/IR/Values/Memory.cs @@ -142,7 +142,7 @@ protected internal override Value Rebuild( /// protected internal override void Write(IIRWriter writer) => - writer.Write(AddressSpace); + writer.Write("AddressSpace", AddressSpace); /// public override void Accept(T visitor) => visitor.Visit(this); @@ -235,7 +235,7 @@ protected internal override Value Rebuild( /// protected internal override void Write(IIRWriter writer) => - writer.Write(Kind); + writer.Write("Kind", Kind); /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/MethodCall.cs b/Src/ILGPU/IR/Values/MethodCall.cs index 533599fe8..518ca4da5 100644 --- a/Src/ILGPU/IR/Values/MethodCall.cs +++ b/Src/ILGPU/IR/Values/MethodCall.cs @@ -153,7 +153,7 @@ protected internal override Value Rebuild( /// protected internal override void Write(IIRWriter writer) => - writer.Write(Target.Id); + writer.Write("Target", Target.Id); /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Parameter.cs b/Src/ILGPU/IR/Values/Parameter.cs index 1a52f8e50..9ad606c0e 100644 --- a/Src/ILGPU/IR/Values/Parameter.cs +++ b/Src/ILGPU/IR/Values/Parameter.cs @@ -97,7 +97,7 @@ protected internal override Value Rebuild( /// protected internal override void Write(IIRWriter writer) => - writer.Write(ParameterType.Id); + writer.Write("ParameterType", ParameterType.Id); /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/PhiValue.cs b/Src/ILGPU/IR/Values/PhiValue.cs index ba5dea459..958b5ac27 100644 --- a/Src/ILGPU/IR/Values/PhiValue.cs +++ b/Src/ILGPU/IR/Values/PhiValue.cs @@ -392,9 +392,10 @@ protected internal override Value Rebuild( /// protected internal override void Write(IIRWriter writer) { + int index = 0; foreach (var source in Sources) { - writer.Write(source.Id); + writer.Write($"Sources[{index++}]", source.Id); } } diff --git a/Src/ILGPU/IR/Values/PointerValues.cs b/Src/ILGPU/IR/Values/PointerValues.cs index 7b6bb54db..10fa952d2 100644 --- a/Src/ILGPU/IR/Values/PointerValues.cs +++ b/Src/ILGPU/IR/Values/PointerValues.cs @@ -495,8 +495,8 @@ protected internal override Value Rebuild( /// protected internal override void Write(IIRWriter writer) { - writer.Write(FieldSpan.Index); - writer.Write(FieldSpan.Span); + writer.Write("Index", FieldSpan.Index); + writer.Write("Span", FieldSpan.Span); } /// diff --git a/Src/ILGPU/IR/Values/StructureValues.cs b/Src/ILGPU/IR/Values/StructureValues.cs index bb08e6395..6ec43e126 100644 --- a/Src/ILGPU/IR/Values/StructureValues.cs +++ b/Src/ILGPU/IR/Values/StructureValues.cs @@ -1101,8 +1101,8 @@ internal StructureOperationValue( /// protected internal override void Write(IIRWriter writer) { - writer.Write(FieldSpan.Index); - writer.Write(FieldSpan.Span); + writer.Write("Index", FieldSpan.Index); + writer.Write("Span", FieldSpan.Span); } #endregion diff --git a/Src/ILGPU/IR/Values/Terminators.cs b/Src/ILGPU/IR/Values/Terminators.cs index aaeff792b..4ebfebf83 100644 --- a/Src/ILGPU/IR/Values/Terminators.cs +++ b/Src/ILGPU/IR/Values/Terminators.cs @@ -282,10 +282,11 @@ protected override TypeNode ComputeType(in ValueInitializer initializer) => /// protected internal override void Write(IIRWriter writer) { - writer.Write(NumTargets); + int index = 0; + writer.Write("NumTargets", NumTargets); foreach (var target in Targets) { - writer.Write(target.Id); + writer.Write($"Targets[{index++}]", target.Id); } } diff --git a/Src/ILGPU/IR/Values/Threads.cs b/Src/ILGPU/IR/Values/Threads.cs index b945615c3..9fb23d0ab 100644 --- a/Src/ILGPU/IR/Values/Threads.cs +++ b/Src/ILGPU/IR/Values/Threads.cs @@ -127,7 +127,7 @@ protected internal override Value Rebuild( /// protected internal override void Write(IIRWriter writer) => - writer.Write(Kind); + writer.Write("Kind", Kind); /// public override void Accept(T visitor) => visitor.Visit(this); @@ -211,7 +211,7 @@ protected internal override Value Rebuild( /// protected internal override void Write(IIRWriter writer) => - writer.Write(Kind); + writer.Write("Kind", Kind); /// public override void Accept(T visitor) => visitor.Visit(this); @@ -337,7 +337,7 @@ protected internal override Value Rebuild( /// protected internal override void Write(IIRWriter writer) => - writer.Write(Kind); + writer.Write("Kind", Kind); /// public override void Accept(T visitor) => visitor.Visit(this); @@ -421,7 +421,7 @@ internal ShuffleOperation( /// protected internal override void Write(IIRWriter writer) => - writer.Write(Kind); + writer.Write("Kind", Kind); #endregion diff --git a/Src/ILGPU/IR/Values/Value.cs b/Src/ILGPU/IR/Values/Value.cs index e6d6f5960..8b23f30e5 100644 --- a/Src/ILGPU/IR/Values/Value.cs +++ b/Src/ILGPU/IR/Values/Value.cs @@ -796,20 +796,24 @@ public partial interface IIRWriter /// /// Serializes an IR instance to the stream. /// + /// + /// A tag that describes the purpose of this value. + /// /// /// The value to serialize. /// - public void Write(Value value) + public void Write(string tag, Value value) { - Write(value.Id); - Write(value.ValueKind); + Write("Id", value.Id); + Write("ValueKind", value.ValueKind); - Write(value.Method.Id); - Write(value.BasicBlock.Id); + Write("Method", value.Method.Id); + Write("BasicBlock", value.BasicBlock.Id); - Write(value.Count); + int index = 0; + Write("Count", value.Count); foreach (var node in value.Nodes) - Write(node.Id); + Write($"Nodes[{index++}]", node.Id); value.Write(this); } diff --git a/Src/ILGPU/IR/Values/View.cs b/Src/ILGPU/IR/Values/View.cs index e527b7645..7b9e46e65 100644 --- a/Src/ILGPU/IR/Values/View.cs +++ b/Src/ILGPU/IR/Values/View.cs @@ -233,7 +233,7 @@ protected internal override Value Rebuild( /// protected internal override void Write(IIRWriter writer) => - writer.Write(LengthType); + writer.Write("LengthType", LengthType); /// public override void Accept(T visitor) => visitor.Visit(this); From 31bc0da215735129b6273b091017099a683fd583 Mon Sep 17 00:00:00 2001 From: Isabelle Santin Date: Tue, 4 Jun 2024 10:55:40 -0500 Subject: [PATCH 12/16] Implement requested changes --- Src/ILGPU/IR/IRContext.cs | 5 ++- Src/ILGPU/IR/Serialization/BinaryIRWriter.cs | 14 +++++--- Src/ILGPU/IR/Serialization/IIRWriter.cs | 2 +- Src/ILGPU/IR/Types/ArrayType.cs | 8 ++--- Src/ILGPU/IR/Types/HandleType.cs | 4 +-- Src/ILGPU/IR/Types/IIRTypeContext.cs | 1 + Src/ILGPU/IR/Types/IRTypeContext.cs | 7 ++-- Src/ILGPU/IR/Types/PaddingType.cs | 6 ++-- Src/ILGPU/IR/Types/PointerTypes.cs | 8 ++--- Src/ILGPU/IR/Types/PrimitiveTypes.cs | 10 +++--- Src/ILGPU/IR/Types/StructureType.cs | 6 ++-- Src/ILGPU/IR/Types/TypeNode.cs | 10 ++++-- Src/ILGPU/IR/Types/VoidType.cs | 4 +-- Src/ILGPU/IR/Values/AlignValues.cs | 4 +-- Src/ILGPU/IR/Values/Arithmetic.cs | 24 ++++++------- Src/ILGPU/IR/Values/ArrayValues.cs | 6 ++-- Src/ILGPU/IR/Values/Atomic.cs | 14 ++++---- Src/ILGPU/IR/Values/Cast.cs | 38 ++++++++++---------- Src/ILGPU/IR/Values/Compare.cs | 8 ++--- Src/ILGPU/IR/Values/Constants.cs | 20 +++++------ Src/ILGPU/IR/Values/Convert.cs | 8 ++--- Src/ILGPU/IR/Values/Debug.cs | 4 +-- Src/ILGPU/IR/Values/DeviceConstants.cs | 24 ++++++------- Src/ILGPU/IR/Values/HandleValue.cs | 4 +-- Src/ILGPU/IR/Values/IOValues.cs | 4 +-- Src/ILGPU/IR/Values/LanguageValues.cs | 4 +-- Src/ILGPU/IR/Values/Memory.cs | 20 +++++------ Src/ILGPU/IR/Values/MethodCall.cs | 6 ++-- Src/ILGPU/IR/Values/Parameter.cs | 6 ++-- Src/ILGPU/IR/Values/PhiValue.cs | 4 +-- Src/ILGPU/IR/Values/PointerValues.cs | 20 +++++------ Src/ILGPU/IR/Values/Predicate.cs | 4 +-- Src/ILGPU/IR/Values/StructureValues.cs | 12 +++---- Src/ILGPU/IR/Values/Terminators.cs | 10 +++--- Src/ILGPU/IR/Values/Threads.cs | 24 ++++++------- Src/ILGPU/IR/Values/Undefined.cs | 4 +-- Src/ILGPU/IR/Values/Value.cs | 16 +++++---- Src/ILGPU/IR/Values/View.cs | 10 +++--- 38 files changed, 200 insertions(+), 183 deletions(-) diff --git a/Src/ILGPU/IR/IRContext.cs b/Src/ILGPU/IR/IRContext.cs index 395fbf420..c80e00a7b 100644 --- a/Src/ILGPU/IR/IRContext.cs +++ b/Src/ILGPU/IR/IRContext.cs @@ -502,10 +502,13 @@ public void Transform(in Transformer transformer) /// /// Serializes this instance using the given . /// + /// + /// The specific type of . + /// /// /// The writer to use for serialization. /// - public void Write(IIRWriter writer) + public void Write(T writer) where T : IIRWriter { var allMethods = GetMethodCollection(new MethodCollections.AllMethods()); foreach (var method in allMethods) diff --git a/Src/ILGPU/IR/Serialization/BinaryIRWriter.cs b/Src/ILGPU/IR/Serialization/BinaryIRWriter.cs index 4b5fc12c8..ee53c56f1 100644 --- a/Src/ILGPU/IR/Serialization/BinaryIRWriter.cs +++ b/Src/ILGPU/IR/Serialization/BinaryIRWriter.cs @@ -9,6 +9,7 @@ // Source License. See LICENSE.txt for details. // --------------------------------------------------------------------------------------- +using ILGPU.Util; using System; using System.IO; using System.Text; @@ -18,7 +19,7 @@ namespace ILGPU.IR.Serialization /// /// Wrapper class around for serializing IR types and values. /// - public sealed partial class BinaryIRWriter : IIRWriter + public sealed partial class BinaryIRWriter : DisposeBase, IIRWriter { private readonly BinaryWriter writer; @@ -54,9 +55,12 @@ public void Write(string tag, string value) => public void Write(string tag, T value) where T : Enum => writer.Write(Convert.ToInt32(value)); - /// - /// Disposes of the wrapped instance. - /// - public void Dispose() => ((IDisposable)writer).Dispose(); + /// + protected override void Dispose(bool disposing) + { + if (disposing) + writer.Dispose(); + base.Dispose(disposing); + } } } diff --git a/Src/ILGPU/IR/Serialization/IIRWriter.cs b/Src/ILGPU/IR/Serialization/IIRWriter.cs index 0011bfb05..f2a48cdb3 100644 --- a/Src/ILGPU/IR/Serialization/IIRWriter.cs +++ b/Src/ILGPU/IR/Serialization/IIRWriter.cs @@ -16,7 +16,7 @@ namespace ILGPU.IR.Serialization /// /// Describes a wrapper that serializes IR values and types to some implementation-specific instance /// - public partial interface IIRWriter : IDisposable + public partial interface IIRWriter { /// /// Serializes a 32-bit integer value to the stream. diff --git a/Src/ILGPU/IR/Types/ArrayType.cs b/Src/ILGPU/IR/Types/ArrayType.cs index e0bd3e056..f78d1eb40 100644 --- a/Src/ILGPU/IR/Types/ArrayType.cs +++ b/Src/ILGPU/IR/Types/ArrayType.cs @@ -79,11 +79,11 @@ protected override Type GetManagedType( TTypeProvider typeProvider) => typeProvider.GetArrayType(this); - /// - protected internal override void Write(IIRWriter writer) + /// + protected internal override void Write(T writer) { - writer.Write("ElementType", ElementType.Id); - writer.Write("NumDimensions", NumDimensions); + writer.Write(nameof(ElementType), ElementType.Id); + writer.Write(nameof(NumDimensions), NumDimensions); } #endregion diff --git a/Src/ILGPU/IR/Types/HandleType.cs b/Src/ILGPU/IR/Types/HandleType.cs index 2b27a0350..696c11c98 100644 --- a/Src/ILGPU/IR/Types/HandleType.cs +++ b/Src/ILGPU/IR/Types/HandleType.cs @@ -47,8 +47,8 @@ protected override Type GetManagedType( TTypeProvider typeProvider) => typeof(object); - /// - protected internal override void Write(IIRWriter writer) { } + /// + protected internal override void Write(T writer) { } #endregion diff --git a/Src/ILGPU/IR/Types/IIRTypeContext.cs b/Src/ILGPU/IR/Types/IIRTypeContext.cs index db995801c..518c1c28b 100644 --- a/Src/ILGPU/IR/Types/IIRTypeContext.cs +++ b/Src/ILGPU/IR/Types/IIRTypeContext.cs @@ -10,6 +10,7 @@ // --------------------------------------------------------------------------------------- using System; +using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; namespace ILGPU.IR.Types diff --git a/Src/ILGPU/IR/Types/IRTypeContext.cs b/Src/ILGPU/IR/Types/IRTypeContext.cs index ef9d23294..f1fd9085e 100644 --- a/Src/ILGPU/IR/Types/IRTypeContext.cs +++ b/Src/ILGPU/IR/Types/IRTypeContext.cs @@ -600,15 +600,16 @@ public IEnumerable GetUnifiedTypeCollection() /// /// Serializes this instance using the given . /// + /// + /// The specific type of . + /// /// /// The writer to use for serialization. /// - public void Write(IIRWriter writer) + public void Write(T writer) where T : IIRWriter { foreach (var type in GetUnifiedTypeCollection()) - { writer.Write(type); - } } #endregion diff --git a/Src/ILGPU/IR/Types/PaddingType.cs b/Src/ILGPU/IR/Types/PaddingType.cs index 1cd1b162c..24f273f75 100644 --- a/Src/ILGPU/IR/Types/PaddingType.cs +++ b/Src/ILGPU/IR/Types/PaddingType.cs @@ -65,9 +65,9 @@ protected override Type GetManagedType( TTypeProvider typeProvider) => typeProvider.GetPrimitiveType(PrimitiveType); - /// - protected internal override void Write(IIRWriter writer) => - writer.Write("PrimitiveType", PrimitiveType.Id); + /// + protected internal override void Write(T writer) => + writer.Write(nameof(PrimitiveType), PrimitiveType.Id); #endregion diff --git a/Src/ILGPU/IR/Types/PointerTypes.cs b/Src/ILGPU/IR/Types/PointerTypes.cs index c2e1db9ec..582144e38 100644 --- a/Src/ILGPU/IR/Types/PointerTypes.cs +++ b/Src/ILGPU/IR/Types/PointerTypes.cs @@ -129,11 +129,11 @@ protected AddressSpaceType( #region Methods - /// - protected internal override void Write(IIRWriter writer) + /// + protected internal override void Write(T writer) { - writer.Write("ElementType", ElementType.Id); - writer.Write("AddressSpace", AddressSpace); + writer.Write(nameof(ElementType), ElementType.Id); + writer.Write(nameof(AddressSpace), AddressSpace); } #endregion diff --git a/Src/ILGPU/IR/Types/PrimitiveTypes.cs b/Src/ILGPU/IR/Types/PrimitiveTypes.cs index 82b961c54..34aecce64 100644 --- a/Src/ILGPU/IR/Types/PrimitiveTypes.cs +++ b/Src/ILGPU/IR/Types/PrimitiveTypes.cs @@ -125,9 +125,9 @@ protected override Type GetManagedType( TTypeProvider typeProvider) => typeProvider.GetPrimitiveType(this); - /// - protected internal override void Write(IIRWriter writer) => - writer.Write("BasicValueType", BasicValueType); + /// + protected internal override void Write(T writer) => + writer.Write(nameof(BasicValueType), BasicValueType); #endregion @@ -185,8 +185,8 @@ protected override Type GetManagedType( TTypeProvider typeProvider) => typeof(string); - /// - protected internal override void Write(IIRWriter writer) { } + /// + protected internal override void Write(T writer) { } #endregion diff --git a/Src/ILGPU/IR/Types/StructureType.cs b/Src/ILGPU/IR/Types/StructureType.cs index 18f10342f..75c76625c 100644 --- a/Src/ILGPU/IR/Types/StructureType.cs +++ b/Src/ILGPU/IR/Types/StructureType.cs @@ -943,11 +943,11 @@ protected override Type GetManagedType( TTypeProvider typeProvider) => typeProvider.GetStructureType(this); - /// - protected internal override void Write(IIRWriter writer) + /// + protected internal override void Write(T writer) { int index = 0; - writer.Write("NumFields", NumFields); + writer.Write(nameof(NumFields), NumFields); foreach (var fieldType in Fields) { writer.Write($"Fields[{index++}]", fieldType.Id); diff --git a/Src/ILGPU/IR/Types/TypeNode.cs b/Src/ILGPU/IR/Types/TypeNode.cs index 5c81ef7c4..b64e26932 100644 --- a/Src/ILGPU/IR/Types/TypeNode.cs +++ b/Src/ILGPU/IR/Types/TypeNode.cs @@ -355,10 +355,14 @@ protected abstract Type GetManagedType(TTypeProvider typeProvider /// /// Serializes this instance's specific internals to the given . /// + /// + /// The specific type of . + /// /// /// The given serializer instance. /// - protected internal abstract void Write(IIRWriter writer); + protected internal abstract void Write(T writer) + where T : IIRWriter; /// /// Converts the current type to the given type . @@ -429,8 +433,8 @@ public partial interface IIRWriter /// public void Write(TypeNode value) { - Write("Type", value.Id); - Write("TypeKind", value.TypeKind); + Write(nameof(value.Id), value.Id); + Write(nameof(value.TypeKind), value.TypeKind); value.Write(this); } diff --git a/Src/ILGPU/IR/Types/VoidType.cs b/Src/ILGPU/IR/Types/VoidType.cs index 2aa1b467c..935e90c29 100644 --- a/Src/ILGPU/IR/Types/VoidType.cs +++ b/Src/ILGPU/IR/Types/VoidType.cs @@ -50,8 +50,8 @@ protected override Type GetManagedType( TTypeProvider typeProvider) => typeof(void); - /// - protected internal override void Write(IIRWriter writer) { } + /// + protected internal override void Write(T writer) { } #endregion diff --git a/Src/ILGPU/IR/Values/AlignValues.cs b/Src/ILGPU/IR/Values/AlignValues.cs index c42b23d4e..d4eaca3ed 100644 --- a/Src/ILGPU/IR/Values/AlignValues.cs +++ b/Src/ILGPU/IR/Values/AlignValues.cs @@ -61,8 +61,8 @@ internal BaseAlignOperationValue( #region Methods - /// - protected internal override void Write(IIRWriter writer) { } + /// + protected internal override void Write(T writer) { } /// /// Tries to determine an explicit alignment compile-time constant (primarily diff --git a/Src/ILGPU/IR/Values/Arithmetic.cs b/Src/ILGPU/IR/Values/Arithmetic.cs index ee36a95b4..82ba82073 100644 --- a/Src/ILGPU/IR/Values/Arithmetic.cs +++ b/Src/ILGPU/IR/Values/Arithmetic.cs @@ -190,11 +190,11 @@ protected internal override Value Rebuild( Kind, Flags); - /// - protected internal override void Write(IIRWriter writer) + /// + protected internal override void Write(T writer) { - writer.Write("Kind", Kind); - writer.Write("Flags", Flags); + writer.Write(nameof(Kind), Kind); + writer.Write(nameof(Flags), Flags); } /// @@ -329,11 +329,11 @@ protected internal override Value Rebuild( Kind, Flags); - /// - protected internal override void Write(IIRWriter writer) + /// + protected internal override void Write(T writer) { - writer.Write("Kind", Kind); - writer.Write("Flags", Flags); + writer.Write(nameof(Kind), Kind); + writer.Write(nameof(Flags), Flags); } /// @@ -465,11 +465,11 @@ protected internal override Value Rebuild( Kind, Flags); - /// - protected internal override void Write(IIRWriter writer) + /// + protected internal override void Write(T writer) { - writer.Write("Kind", Kind); - writer.Write("Flags", Flags); + writer.Write(nameof(Kind), Kind); + writer.Write(nameof(Flags), Flags); } /// diff --git a/Src/ILGPU/IR/Values/ArrayValues.cs b/Src/ILGPU/IR/Values/ArrayValues.cs index c88412297..3b7adffcb 100644 --- a/Src/ILGPU/IR/Values/ArrayValues.cs +++ b/Src/ILGPU/IR/Values/ArrayValues.cs @@ -155,8 +155,8 @@ protected internal override Value Rebuild( } /// - protected internal override void Write(IIRWriter writer) => - writer.Write("Type", Type.Id); + protected internal override void Write(T writer) => + writer.Write(nameof(Type), Type.Id); /// public override void Accept(T visitor) => visitor.Visit(this); @@ -243,7 +243,7 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Dimension)); /// - protected internal override void Write(IIRWriter writer) { } + protected internal override void Write(T writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Atomic.cs b/Src/ILGPU/IR/Values/Atomic.cs index 7e5e3bb80..e6d91d6e4 100644 --- a/Src/ILGPU/IR/Values/Atomic.cs +++ b/Src/ILGPU/IR/Values/Atomic.cs @@ -201,11 +201,11 @@ protected internal override Value Rebuild( Kind, Flags); - /// - protected internal override void Write(IIRWriter writer) + /// + protected internal override void Write(T writer) { - writer.Write("Kind", Kind); - writer.Write("Flags", Flags); + writer.Write(nameof(Kind), Kind); + writer.Write(nameof(Flags), Flags); } /// @@ -282,9 +282,9 @@ protected internal override Value Rebuild( rebuilder.Rebuild(CompareValue), Flags); - /// - protected internal override void Write(IIRWriter writer) => - writer.Write("Flags", Flags); + /// + protected internal override void Write(T writer) => + writer.Write(nameof(Flags), Flags); /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Cast.cs b/Src/ILGPU/IR/Values/Cast.cs index bd0d08947..a467b84f0 100644 --- a/Src/ILGPU/IR/Values/Cast.cs +++ b/Src/ILGPU/IR/Values/Cast.cs @@ -137,8 +137,8 @@ protected internal override Value Rebuild( Location, rebuilder.Rebuild(Value)); - /// - protected internal override void Write(IIRWriter writer) { } + /// + protected internal override void Write(T writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -214,8 +214,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Value), TargetBasicValueType); - /// - protected internal override void Write(IIRWriter writer) { } + /// + protected internal override void Write(T writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -329,9 +329,9 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Value), TargetElementType); - /// - protected internal override void Write(IIRWriter writer) => - writer.Write("TargetElementType", TargetElementType.Id); + /// + protected internal override void Write(T writer) => + writer.Write(nameof(TargetElementType), TargetElementType.Id); /// public override void Accept(T visitor) => visitor.Visit(this); @@ -429,9 +429,9 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Value), TargetAddressSpace); - /// - protected internal override void Write(IIRWriter writer) => - writer.Write("TargetAddressSpace", TargetAddressSpace); + /// + protected internal override void Write(T writer) => + writer.Write(nameof(TargetAddressSpace), TargetAddressSpace); /// public override void Accept(T visitor) => visitor.Visit(this); @@ -512,9 +512,9 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Value), TargetElementType); - /// - protected internal override void Write(IIRWriter writer) => - writer.Write("TargetElementType", TargetElementType.Id); + /// + protected internal override void Write(T writer) => + writer.Write(nameof(TargetElementType), TargetElementType.Id); /// public override void Accept(T visitor) => visitor.Visit(this); @@ -588,8 +588,8 @@ protected internal override Value Rebuild( Location, rebuilder.Rebuild(Value)); - /// - protected internal override void Write(IIRWriter writer) { } + /// + protected internal override void Write(T writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -721,8 +721,8 @@ protected internal override Value Rebuild( Location, rebuilder.Rebuild(Value)); - /// - protected internal override void Write(IIRWriter writer) { } + /// + protected internal override void Write(T writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -790,8 +790,8 @@ protected internal override Value Rebuild( Location, rebuilder.Rebuild(Value)); - /// - protected internal override void Write(IIRWriter writer) { } + /// + protected internal override void Write(T writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Compare.cs b/Src/ILGPU/IR/Values/Compare.cs index 7be00ffec..f86c41105 100644 --- a/Src/ILGPU/IR/Values/Compare.cs +++ b/Src/ILGPU/IR/Values/Compare.cs @@ -274,11 +274,11 @@ protected internal override Value Rebuild( Kind, Flags); - /// - protected internal override void Write(IIRWriter writer) + /// + protected internal override void Write(T writer) { - writer.Write("Kind", Kind); - writer.Write("Flags", Flags); + writer.Write(nameof(Kind), Kind); + writer.Write(nameof(Flags), Flags); } /// diff --git a/Src/ILGPU/IR/Values/Constants.cs b/Src/ILGPU/IR/Values/Constants.cs index 894178fe4..cc82cae6d 100644 --- a/Src/ILGPU/IR/Values/Constants.cs +++ b/Src/ILGPU/IR/Values/Constants.cs @@ -78,8 +78,8 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreateNull(Location, Type); - /// - protected internal override void Write(IIRWriter writer) { } + /// + protected internal override void Write(T writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -280,11 +280,11 @@ protected internal override Value Rebuild( BasicValueType, rawValue); - /// - protected internal override void Write(IIRWriter writer) + /// + protected internal override void Write(T writer) { - writer.Write("BasicValueType", BasicValueType); - writer.Write("RawValue", RawValue); + writer.Write(nameof(BasicValueType), BasicValueType); + writer.Write(nameof(RawValue), RawValue); } /// @@ -380,11 +380,11 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreatePrimitiveValue(Location, String); - /// - protected internal override void Write(IIRWriter writer) + /// + protected internal override void Write(T writer) { - writer.Write("Encoding", Encoding.CodePage); - writer.Write("String", String); + writer.Write(nameof(Encoding), Encoding.CodePage); + writer.Write(nameof(String), String); } /// diff --git a/Src/ILGPU/IR/Values/Convert.cs b/Src/ILGPU/IR/Values/Convert.cs index 6e6a5ee81..955cc1b6e 100644 --- a/Src/ILGPU/IR/Values/Convert.cs +++ b/Src/ILGPU/IR/Values/Convert.cs @@ -137,11 +137,11 @@ protected internal override Value Rebuild( Type, Flags); - /// - protected internal override void Write(IIRWriter writer) + /// + protected internal override void Write(T writer) { - writer.Write("TargetType", TargetType); - writer.Write("Flags", Flags); + writer.Write(nameof(TargetType), TargetType); + writer.Write(nameof(Flags), Flags); } /// diff --git a/Src/ILGPU/IR/Values/Debug.cs b/Src/ILGPU/IR/Values/Debug.cs index 6e14e184b..c965397c4 100644 --- a/Src/ILGPU/IR/Values/Debug.cs +++ b/Src/ILGPU/IR/Values/Debug.cs @@ -107,8 +107,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Condition), rebuilder.Rebuild(Message)); - /// - protected internal override void Write(IIRWriter writer) { } + /// + protected internal override void Write(T writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/DeviceConstants.cs b/Src/ILGPU/IR/Values/DeviceConstants.cs index 6ffe90788..d829de0b7 100644 --- a/Src/ILGPU/IR/Values/DeviceConstants.cs +++ b/Src/ILGPU/IR/Values/DeviceConstants.cs @@ -72,8 +72,8 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreateAcceleratorTypeValue(Location); - /// - protected internal override void Write(IIRWriter writer) { } + /// + protected internal override void Write(T writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -144,9 +144,9 @@ internal DeviceConstantDimensionValue( #region Methods - /// - protected internal override void Write(IIRWriter writer) => - writer.Write("Dimension", Dimension); + /// + protected internal override void Write(T writer) => + writer.Write(nameof(Dimension), Dimension); #endregion @@ -389,8 +389,8 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreateWarpSizeValue(Location); - /// - protected internal override void Write(IIRWriter writer) { } + /// + protected internal override void Write(T writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -440,8 +440,8 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreateLaneIdxValue(Location); - /// - protected internal override void Write(IIRWriter writer) { } + /// + protected internal override void Write(T writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -510,9 +510,9 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreateDynamicMemoryLengthValue(Location, ElementType, AddressSpace); - /// - protected internal override void Write(IIRWriter writer) => - writer.Write("AddressSpace", AddressSpace); + /// + protected internal override void Write(T writer) => + writer.Write(nameof(AddressSpace), AddressSpace); /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/HandleValue.cs b/Src/ILGPU/IR/Values/HandleValue.cs index 119fdc73a..48e0fc177 100644 --- a/Src/ILGPU/IR/Values/HandleValue.cs +++ b/Src/ILGPU/IR/Values/HandleValue.cs @@ -64,8 +64,8 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreateRuntimeHandle(Location, Handle); - /// - protected internal override void Write(IIRWriter writer) { } + /// + protected internal override void Write(T writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/IOValues.cs b/Src/ILGPU/IR/Values/IOValues.cs index a39519cc5..97b4f94a0 100644 --- a/Src/ILGPU/IR/Values/IOValues.cs +++ b/Src/ILGPU/IR/Values/IOValues.cs @@ -270,8 +270,8 @@ protected internal override Value Rebuild( ref arguments); } - /// - protected internal override void Write(IIRWriter writer) { } + /// + protected internal override void Write(T writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/LanguageValues.cs b/Src/ILGPU/IR/Values/LanguageValues.cs index e8da57250..4e24a8217 100644 --- a/Src/ILGPU/IR/Values/LanguageValues.cs +++ b/Src/ILGPU/IR/Values/LanguageValues.cs @@ -166,8 +166,8 @@ protected internal override Value Rebuild( ref arguments); } - /// - protected internal override void Write(IIRWriter writer) { } + /// + protected internal override void Write(T writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Memory.cs b/Src/ILGPU/IR/Values/Memory.cs index 980962412..97c1e1f56 100644 --- a/Src/ILGPU/IR/Values/Memory.cs +++ b/Src/ILGPU/IR/Values/Memory.cs @@ -140,9 +140,9 @@ protected internal override Value Rebuild( AddressSpace, rebuilder.Rebuild(ArrayLength)); - /// - protected internal override void Write(IIRWriter writer) => - writer.Write("AddressSpace", AddressSpace); + /// + protected internal override void Write(T writer) => + writer.Write(nameof(AddressSpace), AddressSpace); /// public override void Accept(T visitor) => visitor.Visit(this); @@ -233,9 +233,9 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreateMemoryBarrier(Location, Kind); - /// - protected internal override void Write(IIRWriter writer) => - writer.Write("Kind", Kind); + /// + protected internal override void Write(T writer) => + writer.Write(nameof(Kind), Kind); /// public override void Accept(T visitor) => visitor.Visit(this); @@ -308,8 +308,8 @@ protected internal override Value Rebuild( Location, rebuilder.Rebuild(Source)); - /// - protected internal override void Write(IIRWriter writer) { } + /// + protected internal override void Write(T writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -390,8 +390,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Target), rebuilder.Rebuild(Value)); - /// - protected internal override void Write(IIRWriter writer) { } + /// + protected internal override void Write(T writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/MethodCall.cs b/Src/ILGPU/IR/Values/MethodCall.cs index 518ca4da5..1c16a9525 100644 --- a/Src/ILGPU/IR/Values/MethodCall.cs +++ b/Src/ILGPU/IR/Values/MethodCall.cs @@ -151,9 +151,9 @@ protected internal override Value Rebuild( return call.Seal(); } - /// - protected internal override void Write(IIRWriter writer) => - writer.Write("Target", Target.Id); + /// + protected internal override void Write(T writer) => + writer.Write(nameof(Target), Target.Id); /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Parameter.cs b/Src/ILGPU/IR/Values/Parameter.cs index 9ad606c0e..6cd8ab694 100644 --- a/Src/ILGPU/IR/Values/Parameter.cs +++ b/Src/ILGPU/IR/Values/Parameter.cs @@ -95,9 +95,9 @@ protected internal override Value Rebuild( // Params have already been mapped in the beginning rebuilder.Rebuild(this); - /// - protected internal override void Write(IIRWriter writer) => - writer.Write("ParameterType", ParameterType.Id); + /// + protected internal override void Write(T writer) => + writer.Write(nameof(ParameterType), ParameterType.Id); /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/PhiValue.cs b/Src/ILGPU/IR/Values/PhiValue.cs index 958b5ac27..5109e3357 100644 --- a/Src/ILGPU/IR/Values/PhiValue.cs +++ b/Src/ILGPU/IR/Values/PhiValue.cs @@ -389,8 +389,8 @@ protected internal override Value Rebuild( // Phi values have already been mapped in the beginning rebuilder.Rebuild(this); - /// - protected internal override void Write(IIRWriter writer) + /// + protected internal override void Write(T writer) { int index = 0; foreach (var source in Sources) diff --git a/Src/ILGPU/IR/Values/PointerValues.cs b/Src/ILGPU/IR/Values/PointerValues.cs index 10fa952d2..96c8a958b 100644 --- a/Src/ILGPU/IR/Values/PointerValues.cs +++ b/Src/ILGPU/IR/Values/PointerValues.cs @@ -132,8 +132,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Offset), rebuilder.Rebuild(Length)); - /// - protected internal override void Write(IIRWriter writer) { } + /// + protected internal override void Write(T writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -222,8 +222,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Source), rebuilder.Rebuild(Offset)); - /// - protected internal override void Write(IIRWriter writer) { } + /// + protected internal override void Write(T writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -398,8 +398,8 @@ protected internal override Value Rebuild( ref values); } - /// - protected internal override void Write(IIRWriter writer) { } + /// + protected internal override void Write(T writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -492,11 +492,11 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Source), FieldSpan); - /// - protected internal override void Write(IIRWriter writer) + /// + protected internal override void Write(T writer) { - writer.Write("Index", FieldSpan.Index); - writer.Write("Span", FieldSpan.Span); + writer.Write(nameof(FieldSpan.Index), FieldSpan.Index); + writer.Write(nameof(FieldSpan.Span), FieldSpan.Span); } /// diff --git a/Src/ILGPU/IR/Values/Predicate.cs b/Src/ILGPU/IR/Values/Predicate.cs index ff7bc58f5..eb0f5485a 100644 --- a/Src/ILGPU/IR/Values/Predicate.cs +++ b/Src/ILGPU/IR/Values/Predicate.cs @@ -89,8 +89,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(TrueValue), rebuilder.Rebuild(FalseValue)); - /// - protected internal override void Write(IIRWriter writer) { } + /// + protected internal override void Write(T writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/StructureValues.cs b/Src/ILGPU/IR/Values/StructureValues.cs index 6ec43e126..d6ba740a1 100644 --- a/Src/ILGPU/IR/Values/StructureValues.cs +++ b/Src/ILGPU/IR/Values/StructureValues.cs @@ -1038,8 +1038,8 @@ protected internal override Value Rebuild( return instance.Seal(); } - /// - protected internal override void Write(IIRWriter writer) { } + /// + protected internal override void Write(T writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -1098,11 +1098,11 @@ internal StructureOperationValue( #region Methods - /// - protected internal override void Write(IIRWriter writer) + /// + protected internal override void Write(T writer) { - writer.Write("Index", FieldSpan.Index); - writer.Write("Span", FieldSpan.Span); + writer.Write(nameof(FieldSpan.Index), FieldSpan.Index); + writer.Write(nameof(FieldSpan.Span), FieldSpan.Span); } #endregion diff --git a/Src/ILGPU/IR/Values/Terminators.cs b/Src/ILGPU/IR/Values/Terminators.cs index 4ebfebf83..14200dd12 100644 --- a/Src/ILGPU/IR/Values/Terminators.cs +++ b/Src/ILGPU/IR/Values/Terminators.cs @@ -229,8 +229,8 @@ protected internal override Value Rebuild( Location, rebuilder.Rebuild(ReturnValue)); - /// - protected internal override void Write(IIRWriter writer) { } + /// + protected internal override void Write(T writer) { } /// /// Throws an . @@ -279,11 +279,11 @@ internal Branch(in ValueInitializer initializer) protected override TypeNode ComputeType(in ValueInitializer initializer) => initializer.Context.VoidType; - /// - protected internal override void Write(IIRWriter writer) + /// + protected internal override void Write(T writer) { int index = 0; - writer.Write("NumTargets", NumTargets); + writer.Write(nameof(NumTargets), NumTargets); foreach (var target in Targets) { writer.Write($"Targets[{index++}]", target.Id); diff --git a/Src/ILGPU/IR/Values/Threads.cs b/Src/ILGPU/IR/Values/Threads.cs index 9fb23d0ab..9a2c0c239 100644 --- a/Src/ILGPU/IR/Values/Threads.cs +++ b/Src/ILGPU/IR/Values/Threads.cs @@ -125,9 +125,9 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Predicate), Kind); - /// - protected internal override void Write(IIRWriter writer) => - writer.Write("Kind", Kind); + /// + protected internal override void Write(T writer) => + writer.Write(nameof(Kind), Kind); /// public override void Accept(T visitor) => visitor.Visit(this); @@ -209,9 +209,9 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreateBarrier(Location, Kind); - /// - protected internal override void Write(IIRWriter writer) => - writer.Write("Kind", Kind); + /// + protected internal override void Write(T writer) => + writer.Write(nameof(Kind), Kind); /// public override void Accept(T visitor) => visitor.Visit(this); @@ -335,9 +335,9 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Origin), Kind); - /// - protected internal override void Write(IIRWriter writer) => - writer.Write("Kind", Kind); + /// + protected internal override void Write(T writer) => + writer.Write(nameof(Kind), Kind); /// public override void Accept(T visitor) => visitor.Visit(this); @@ -419,9 +419,9 @@ internal ShuffleOperation( #region Methods - /// - protected internal override void Write(IIRWriter writer) => - writer.Write("Kind", Kind); + /// + protected internal override void Write(T writer) => + writer.Write(nameof(Kind), Kind); #endregion diff --git a/Src/ILGPU/IR/Values/Undefined.cs b/Src/ILGPU/IR/Values/Undefined.cs index 645e6e8b3..91b40ec58 100644 --- a/Src/ILGPU/IR/Values/Undefined.cs +++ b/Src/ILGPU/IR/Values/Undefined.cs @@ -50,8 +50,8 @@ protected internal override Value Rebuild( IRRebuilder rebuilder) => builder.CreateUndefined(); - /// - protected internal override void Write(IIRWriter writer) { } + /// + protected internal override void Write(T writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); diff --git a/Src/ILGPU/IR/Values/Value.cs b/Src/ILGPU/IR/Values/Value.cs index 8b23f30e5..2a243ee84 100644 --- a/Src/ILGPU/IR/Values/Value.cs +++ b/Src/ILGPU/IR/Values/Value.cs @@ -548,10 +548,14 @@ protected internal abstract Value Rebuild( /// /// Serializes this instance's specific internals to the given . /// + /// + /// The specific type of . + /// /// /// The given serializer instance. /// - protected internal abstract void Write(IIRWriter writer); + protected internal abstract void Write(T writer) + where T : IIRWriter; /// /// Verifies that the this value is not sealed. @@ -804,14 +808,14 @@ public partial interface IIRWriter /// public void Write(string tag, Value value) { - Write("Id", value.Id); - Write("ValueKind", value.ValueKind); + Write(nameof(value.Id), value.Id); + Write(nameof(value.ValueKind), value.ValueKind); - Write("Method", value.Method.Id); - Write("BasicBlock", value.BasicBlock.Id); + Write(nameof(value.Method), value.Method.Id); + Write(nameof(value.BasicBlock), value.BasicBlock.Id); int index = 0; - Write("Count", value.Count); + Write(nameof(value.Count), value.Count); foreach (var node in value.Nodes) Write($"Nodes[{index++}]", node.Id); diff --git a/Src/ILGPU/IR/Values/View.cs b/Src/ILGPU/IR/Values/View.cs index 7b9e46e65..9e3e8fc56 100644 --- a/Src/ILGPU/IR/Values/View.cs +++ b/Src/ILGPU/IR/Values/View.cs @@ -89,8 +89,8 @@ protected internal override Value Rebuild( rebuilder.Rebuild(Pointer), rebuilder.Rebuild(Length)); - /// - protected internal override void Write(IIRWriter writer) { } + /// + protected internal override void Write(T writer) { } /// public override void Accept(T visitor) => visitor.Visit(this); @@ -231,9 +231,9 @@ protected internal override Value Rebuild( rebuilder.Rebuild(View), LengthType); - /// - protected internal override void Write(IIRWriter writer) => - writer.Write("LengthType", LengthType); + /// + protected internal override void Write(T writer) => + writer.Write(nameof(LengthType), LengthType); /// public override void Accept(T visitor) => visitor.Visit(this); From bead851c9c775910f072e4703edf1f4189fab3d7 Mon Sep 17 00:00:00 2001 From: Isabelle Santin Date: Fri, 19 Jul 2024 09:08:49 -0500 Subject: [PATCH 13/16] Fix nits for final review --- Src/ILGPU/IR/IRContext.cs | 4 ---- Src/ILGPU/IR/Types/IIRTypeContext.cs | 1 - Src/ILGPU/IR/Types/StructureType.cs | 4 +--- Src/ILGPU/IR/Values/PhiValue.cs | 4 +--- Src/ILGPU/IR/Values/Terminators.cs | 4 +--- 5 files changed, 3 insertions(+), 14 deletions(-) diff --git a/Src/ILGPU/IR/IRContext.cs b/Src/ILGPU/IR/IRContext.cs index c80e00a7b..d211c9da2 100644 --- a/Src/ILGPU/IR/IRContext.cs +++ b/Src/ILGPU/IR/IRContext.cs @@ -514,16 +514,12 @@ public void Write(T writer) where T : IIRWriter foreach (var method in allMethods) { foreach (var param in method.Parameters) - { param.Write(writer); - } foreach (var block in method.Blocks) { foreach (var entry in block) - { entry.Value.Write(writer); - } block.Terminator?.Write(writer); } diff --git a/Src/ILGPU/IR/Types/IIRTypeContext.cs b/Src/ILGPU/IR/Types/IIRTypeContext.cs index 518c1c28b..db995801c 100644 --- a/Src/ILGPU/IR/Types/IIRTypeContext.cs +++ b/Src/ILGPU/IR/Types/IIRTypeContext.cs @@ -10,7 +10,6 @@ // --------------------------------------------------------------------------------------- using System; -using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; namespace ILGPU.IR.Types diff --git a/Src/ILGPU/IR/Types/StructureType.cs b/Src/ILGPU/IR/Types/StructureType.cs index 75c76625c..fd0bdebdf 100644 --- a/Src/ILGPU/IR/Types/StructureType.cs +++ b/Src/ILGPU/IR/Types/StructureType.cs @@ -949,9 +949,7 @@ protected internal override void Write(T writer) int index = 0; writer.Write(nameof(NumFields), NumFields); foreach (var fieldType in Fields) - { - writer.Write($"Fields[{index++}]", fieldType.Id); - } + writer.Write($"{nameof(Fields)}[{index++}]", fieldType.Id); } #endregion diff --git a/Src/ILGPU/IR/Values/PhiValue.cs b/Src/ILGPU/IR/Values/PhiValue.cs index 5109e3357..d5cf606ce 100644 --- a/Src/ILGPU/IR/Values/PhiValue.cs +++ b/Src/ILGPU/IR/Values/PhiValue.cs @@ -394,9 +394,7 @@ protected internal override void Write(T writer) { int index = 0; foreach (var source in Sources) - { - writer.Write($"Sources[{index++}]", source.Id); - } + writer.Write($"{nameof(Sources)}[{index++}]", source.Id); } /// diff --git a/Src/ILGPU/IR/Values/Terminators.cs b/Src/ILGPU/IR/Values/Terminators.cs index 14200dd12..fabc56ba1 100644 --- a/Src/ILGPU/IR/Values/Terminators.cs +++ b/Src/ILGPU/IR/Values/Terminators.cs @@ -285,9 +285,7 @@ protected internal override void Write(T writer) int index = 0; writer.Write(nameof(NumTargets), NumTargets); foreach (var target in Targets) - { - writer.Write($"Targets[{index++}]", target.Id); - } + writer.Write($"{nameof(Targets)}[{index++}]", target.Id); } #endregion From 29340570f42f44a0e8a1f0640defdac6a4157d7b Mon Sep 17 00:00:00 2001 From: Isabelle Santin Date: Fri, 19 Jul 2024 09:26:25 -0500 Subject: [PATCH 14/16] One last nit of mine --- Src/ILGPU/IR/Values/Value.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Src/ILGPU/IR/Values/Value.cs b/Src/ILGPU/IR/Values/Value.cs index 2a243ee84..e8500a47c 100644 --- a/Src/ILGPU/IR/Values/Value.cs +++ b/Src/ILGPU/IR/Values/Value.cs @@ -817,7 +817,7 @@ public void Write(string tag, Value value) int index = 0; Write(nameof(value.Count), value.Count); foreach (var node in value.Nodes) - Write($"Nodes[{index++}]", node.Id); + Write($"{nameof(value.Nodes)}[{index++}]", node.Id); value.Write(this); } From 514628532aa29be4fa0d2d4688ea85da56b413c9 Mon Sep 17 00:00:00 2001 From: Isabelle Santin Date: Wed, 24 Jul 2024 08:37:10 -0500 Subject: [PATCH 15/16] Update copyright headers / fix unused using statements --- Src/ILGPU/IR/IRContext.cs | 2 +- Src/ILGPU/IR/Serialization/BinaryIRWriter.cs | 2 +- Src/ILGPU/IR/Serialization/IIRWriter.cs | 2 +- Src/ILGPU/IR/Types/ArrayType.cs | 3 +-- Src/ILGPU/IR/Types/HandleType.cs | 3 +-- Src/ILGPU/IR/Types/IIRTypeContext.cs | 2 +- Src/ILGPU/IR/Types/PaddingType.cs | 3 +-- Src/ILGPU/IR/Types/PointerTypes.cs | 3 +-- Src/ILGPU/IR/Types/PrimitiveTypes.cs | 3 +-- Src/ILGPU/IR/Types/TypeKind.cs | 4 ++-- Src/ILGPU/IR/Types/TypeNode.cs | 2 +- Src/ILGPU/IR/Types/VoidType.cs | 3 +-- Src/ILGPU/IR/Values/AlignValues.cs | 3 +-- Src/ILGPU/IR/Values/Arithmetic.cs | 3 +-- Src/ILGPU/IR/Values/ArrayValues.cs | 3 +-- Src/ILGPU/IR/Values/Atomic.cs | 3 +-- Src/ILGPU/IR/Values/Cast.cs | 3 +-- Src/ILGPU/IR/Values/Compare.cs | 3 +-- Src/ILGPU/IR/Values/Constants.cs | 4 +--- Src/ILGPU/IR/Values/Convert.cs | 3 +-- Src/ILGPU/IR/Values/Debug.cs | 3 +-- Src/ILGPU/IR/Values/DeviceConstants.cs | 3 +-- Src/ILGPU/IR/Values/HandleValue.cs | 3 +-- Src/ILGPU/IR/Values/Memory.cs | 3 +-- Src/ILGPU/IR/Values/MethodCall.cs | 3 +-- Src/ILGPU/IR/Values/Parameter.cs | 3 +-- Src/ILGPU/IR/Values/PhiValue.cs | 3 +-- Src/ILGPU/IR/Values/PointerValues.cs | 3 +-- Src/ILGPU/IR/Values/Predicate.cs | 3 +-- Src/ILGPU/IR/Values/StructureValues.cs | 3 +-- Src/ILGPU/IR/Values/Terminators.cs | 3 +-- Src/ILGPU/IR/Values/Threads.cs | 3 +-- Src/ILGPU/IR/Values/Undefined.cs | 3 +-- Src/ILGPU/IR/Values/Value.cs | 2 +- Src/ILGPU/IR/Values/View.cs | 3 +-- 35 files changed, 36 insertions(+), 65 deletions(-) diff --git a/Src/ILGPU/IR/IRContext.cs b/Src/ILGPU/IR/IRContext.cs index d211c9da2..581ee72a9 100644 --- a/Src/ILGPU/IR/IRContext.cs +++ b/Src/ILGPU/IR/IRContext.cs @@ -1,6 +1,6 @@ // --------------------------------------------------------------------------------------- // ILGPU -// Copyright (c) 2018-2023 ILGPU Project +// Copyright (c) 2018-2024 ILGPU Project // www.ilgpu.net // // File: IRContext.cs diff --git a/Src/ILGPU/IR/Serialization/BinaryIRWriter.cs b/Src/ILGPU/IR/Serialization/BinaryIRWriter.cs index ee53c56f1..f1eb30ff7 100644 --- a/Src/ILGPU/IR/Serialization/BinaryIRWriter.cs +++ b/Src/ILGPU/IR/Serialization/BinaryIRWriter.cs @@ -1,6 +1,6 @@ // --------------------------------------------------------------------------------------- // ILGPU -// Copyright (c) 2024 ILGPU Project +// Copyright (c) 2024 ILGPU Project // www.ilgpu.net // // File: BinaryIRWriter.cs diff --git a/Src/ILGPU/IR/Serialization/IIRWriter.cs b/Src/ILGPU/IR/Serialization/IIRWriter.cs index f2a48cdb3..c75852a1e 100644 --- a/Src/ILGPU/IR/Serialization/IIRWriter.cs +++ b/Src/ILGPU/IR/Serialization/IIRWriter.cs @@ -1,6 +1,6 @@ // --------------------------------------------------------------------------------------- // ILGPU -// Copyright (c) 2024 ILGPU Project +// Copyright (c) 2024 ILGPU Project // www.ilgpu.net // // File: IIRWriter.cs diff --git a/Src/ILGPU/IR/Types/ArrayType.cs b/Src/ILGPU/IR/Types/ArrayType.cs index f78d1eb40..cd2f45d39 100644 --- a/Src/ILGPU/IR/Types/ArrayType.cs +++ b/Src/ILGPU/IR/Types/ArrayType.cs @@ -1,6 +1,6 @@ // --------------------------------------------------------------------------------------- // ILGPU -// Copyright (c) 2019-2023 ILGPU Project +// Copyright (c) 2019-2024 ILGPU Project // www.ilgpu.net // // File: ArrayType.cs @@ -9,7 +9,6 @@ // Source License. See LICENSE.txt for details. // --------------------------------------------------------------------------------------- -using ILGPU.IR.Serialization; using System; namespace ILGPU.IR.Types diff --git a/Src/ILGPU/IR/Types/HandleType.cs b/Src/ILGPU/IR/Types/HandleType.cs index 696c11c98..436b5ffc0 100644 --- a/Src/ILGPU/IR/Types/HandleType.cs +++ b/Src/ILGPU/IR/Types/HandleType.cs @@ -1,6 +1,6 @@ // --------------------------------------------------------------------------------------- // ILGPU -// Copyright (c) 2019-2023 ILGPU Project +// Copyright (c) 2019-2024 ILGPU Project // www.ilgpu.net // // File: HandleType.cs @@ -9,7 +9,6 @@ // Source License. See LICENSE.txt for details. // --------------------------------------------------------------------------------------- -using ILGPU.IR.Serialization; using System; namespace ILGPU.IR.Types diff --git a/Src/ILGPU/IR/Types/IIRTypeContext.cs b/Src/ILGPU/IR/Types/IIRTypeContext.cs index db995801c..a669d946a 100644 --- a/Src/ILGPU/IR/Types/IIRTypeContext.cs +++ b/Src/ILGPU/IR/Types/IIRTypeContext.cs @@ -1,6 +1,6 @@ // --------------------------------------------------------------------------------------- // ILGPU -// Copyright (c) 2018-2023 ILGPU Project +// Copyright (c) 2018-2024 ILGPU Project // www.ilgpu.net // // File: IIRTypeContext.cs diff --git a/Src/ILGPU/IR/Types/PaddingType.cs b/Src/ILGPU/IR/Types/PaddingType.cs index 24f273f75..ab26f0049 100644 --- a/Src/ILGPU/IR/Types/PaddingType.cs +++ b/Src/ILGPU/IR/Types/PaddingType.cs @@ -1,6 +1,6 @@ // --------------------------------------------------------------------------------------- // ILGPU -// Copyright (c) 2020-2023 ILGPU Project +// Copyright (c) 2020-2024 ILGPU Project // www.ilgpu.net // // File: PaddingType.cs @@ -9,7 +9,6 @@ // Source License. See LICENSE.txt for details. // --------------------------------------------------------------------------------------- -using ILGPU.IR.Serialization; using System; namespace ILGPU.IR.Types diff --git a/Src/ILGPU/IR/Types/PointerTypes.cs b/Src/ILGPU/IR/Types/PointerTypes.cs index 582144e38..f0e6eb478 100644 --- a/Src/ILGPU/IR/Types/PointerTypes.cs +++ b/Src/ILGPU/IR/Types/PointerTypes.cs @@ -1,6 +1,6 @@ // --------------------------------------------------------------------------------------- // ILGPU -// Copyright (c) 2018-2023 ILGPU Project +// Copyright (c) 2018-2024 ILGPU Project // www.ilgpu.net // // File: PointerTypes.cs @@ -10,7 +10,6 @@ // --------------------------------------------------------------------------------------- using ILGPU.Backends; -using ILGPU.IR.Serialization; using System; using System.Diagnostics; diff --git a/Src/ILGPU/IR/Types/PrimitiveTypes.cs b/Src/ILGPU/IR/Types/PrimitiveTypes.cs index 34aecce64..b4ed717b1 100644 --- a/Src/ILGPU/IR/Types/PrimitiveTypes.cs +++ b/Src/ILGPU/IR/Types/PrimitiveTypes.cs @@ -1,6 +1,6 @@ // --------------------------------------------------------------------------------------- // ILGPU -// Copyright (c) 2018-2023 ILGPU Project +// Copyright (c) 2018-2024 ILGPU Project // www.ilgpu.net // // File: PrimitiveTypes.cs @@ -9,7 +9,6 @@ // Source License. See LICENSE.txt for details. // --------------------------------------------------------------------------------------- -using ILGPU.IR.Serialization; using System; using System.Collections.Immutable; diff --git a/Src/ILGPU/IR/Types/TypeKind.cs b/Src/ILGPU/IR/Types/TypeKind.cs index 60a76b148..4e4cf4b3d 100644 --- a/Src/ILGPU/IR/Types/TypeKind.cs +++ b/Src/ILGPU/IR/Types/TypeKind.cs @@ -1,9 +1,9 @@ // --------------------------------------------------------------------------------------- // ILGPU -// Copyright (c) 2024 ILGPU Project +// Copyright (c) 2024 ILGPU Project // www.ilgpu.net // -// File: TypeNodeKind.cs +// File: TypeKind.cs // // This file is part of ILGPU and is distributed under the University of Illinois Open // Source License. See LICENSE.txt for details. diff --git a/Src/ILGPU/IR/Types/TypeNode.cs b/Src/ILGPU/IR/Types/TypeNode.cs index b64e26932..b1f47783b 100644 --- a/Src/ILGPU/IR/Types/TypeNode.cs +++ b/Src/ILGPU/IR/Types/TypeNode.cs @@ -1,6 +1,6 @@ // --------------------------------------------------------------------------------------- // ILGPU -// Copyright (c) 2018-2023 ILGPU Project +// Copyright (c) 2018-2024 ILGPU Project // www.ilgpu.net // // File: TypeNode.cs diff --git a/Src/ILGPU/IR/Types/VoidType.cs b/Src/ILGPU/IR/Types/VoidType.cs index 935e90c29..15380b36e 100644 --- a/Src/ILGPU/IR/Types/VoidType.cs +++ b/Src/ILGPU/IR/Types/VoidType.cs @@ -1,6 +1,6 @@ // --------------------------------------------------------------------------------------- // ILGPU -// Copyright (c) 2018-2023 ILGPU Project +// Copyright (c) 2018-2024 ILGPU Project // www.ilgpu.net // // File: VoidType.cs @@ -9,7 +9,6 @@ // Source License. See LICENSE.txt for details. // --------------------------------------------------------------------------------------- -using ILGPU.IR.Serialization; using System; namespace ILGPU.IR.Types diff --git a/Src/ILGPU/IR/Values/AlignValues.cs b/Src/ILGPU/IR/Values/AlignValues.cs index d4eaca3ed..53b3aac89 100644 --- a/Src/ILGPU/IR/Values/AlignValues.cs +++ b/Src/ILGPU/IR/Values/AlignValues.cs @@ -1,6 +1,6 @@ // --------------------------------------------------------------------------------------- // ILGPU -// Copyright (c) 2018-2021 ILGPU Project +// Copyright (c) 2018-2024 ILGPU Project // www.ilgpu.net // // File: AlignValues.cs @@ -10,7 +10,6 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; -using ILGPU.IR.Serialization; using ILGPU.IR.Types; using System; diff --git a/Src/ILGPU/IR/Values/Arithmetic.cs b/Src/ILGPU/IR/Values/Arithmetic.cs index 82ba82073..5c2e9b929 100644 --- a/Src/ILGPU/IR/Values/Arithmetic.cs +++ b/Src/ILGPU/IR/Values/Arithmetic.cs @@ -1,6 +1,6 @@ // --------------------------------------------------------------------------------------- // ILGPU -// Copyright (c) 2018-2023 ILGPU Project +// Copyright (c) 2018-2024 ILGPU Project // www.ilgpu.net // // File: Arithmetic.cs @@ -10,7 +10,6 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; -using ILGPU.IR.Serialization; using ILGPU.IR.Types; using ILGPU.Util; using System; diff --git a/Src/ILGPU/IR/Values/ArrayValues.cs b/Src/ILGPU/IR/Values/ArrayValues.cs index 3b7adffcb..583c168ba 100644 --- a/Src/ILGPU/IR/Values/ArrayValues.cs +++ b/Src/ILGPU/IR/Values/ArrayValues.cs @@ -1,6 +1,6 @@ // --------------------------------------------------------------------------------------- // ILGPU -// Copyright (c) 2020-2023 ILGPU Project +// Copyright (c) 2020-2024 ILGPU Project // www.ilgpu.net // // File: ArrayValues.cs @@ -10,7 +10,6 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; -using ILGPU.IR.Serialization; using ILGPU.IR.Types; using ILGPU.Util; using System.Runtime.CompilerServices; diff --git a/Src/ILGPU/IR/Values/Atomic.cs b/Src/ILGPU/IR/Values/Atomic.cs index e6d91d6e4..b9c14bbb7 100644 --- a/Src/ILGPU/IR/Values/Atomic.cs +++ b/Src/ILGPU/IR/Values/Atomic.cs @@ -1,6 +1,6 @@ // --------------------------------------------------------------------------------------- // ILGPU -// Copyright (c) 2018-2023 ILGPU Project +// Copyright (c) 2018-2024 ILGPU Project // www.ilgpu.net // // File: Atomic.cs @@ -10,7 +10,6 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; -using ILGPU.IR.Serialization; using ILGPU.IR.Types; using ILGPU.Util; using System; diff --git a/Src/ILGPU/IR/Values/Cast.cs b/Src/ILGPU/IR/Values/Cast.cs index a467b84f0..363e77719 100644 --- a/Src/ILGPU/IR/Values/Cast.cs +++ b/Src/ILGPU/IR/Values/Cast.cs @@ -1,6 +1,6 @@ // --------------------------------------------------------------------------------------- // ILGPU -// Copyright (c) 2018-2023 ILGPU Project +// Copyright (c) 2018-2024 ILGPU Project // www.ilgpu.net // // File: Cast.cs @@ -10,7 +10,6 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; -using ILGPU.IR.Serialization; using ILGPU.IR.Types; using ILGPU.Util; diff --git a/Src/ILGPU/IR/Values/Compare.cs b/Src/ILGPU/IR/Values/Compare.cs index f86c41105..1bb54fa22 100644 --- a/Src/ILGPU/IR/Values/Compare.cs +++ b/Src/ILGPU/IR/Values/Compare.cs @@ -1,6 +1,6 @@ // --------------------------------------------------------------------------------------- // ILGPU -// Copyright (c) 2018-2021 ILGPU Project +// Copyright (c) 2018-2024 ILGPU Project // www.ilgpu.net // // File: Compare.cs @@ -10,7 +10,6 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; -using ILGPU.IR.Serialization; using ILGPU.IR.Types; using ILGPU.Util; using System; diff --git a/Src/ILGPU/IR/Values/Constants.cs b/Src/ILGPU/IR/Values/Constants.cs index cc82cae6d..6f7fb6773 100644 --- a/Src/ILGPU/IR/Values/Constants.cs +++ b/Src/ILGPU/IR/Values/Constants.cs @@ -1,6 +1,6 @@ // --------------------------------------------------------------------------------------- // ILGPU -// Copyright (c) 2018-2023 ILGPU Project +// Copyright (c) 2018-2024 ILGPU Project // www.ilgpu.net // // File: Constants.cs @@ -10,10 +10,8 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; -using ILGPU.IR.Serialization; using ILGPU.IR.Types; using ILGPU.Util; -using System; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Runtime.CompilerServices; diff --git a/Src/ILGPU/IR/Values/Convert.cs b/Src/ILGPU/IR/Values/Convert.cs index 955cc1b6e..ceedc1838 100644 --- a/Src/ILGPU/IR/Values/Convert.cs +++ b/Src/ILGPU/IR/Values/Convert.cs @@ -1,6 +1,6 @@ // --------------------------------------------------------------------------------------- // ILGPU -// Copyright (c) 2018-2022 ILGPU Project +// Copyright (c) 2018-2024 ILGPU Project // www.ilgpu.net // // File: Convert.cs @@ -10,7 +10,6 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; -using ILGPU.IR.Serialization; using ILGPU.IR.Types; using ILGPU.Util; using System; diff --git a/Src/ILGPU/IR/Values/Debug.cs b/Src/ILGPU/IR/Values/Debug.cs index c965397c4..d8d6b25f0 100644 --- a/Src/ILGPU/IR/Values/Debug.cs +++ b/Src/ILGPU/IR/Values/Debug.cs @@ -1,6 +1,6 @@ // --------------------------------------------------------------------------------------- // ILGPU -// Copyright (c) 2018-2023 ILGPU Project +// Copyright (c) 2018-2024 ILGPU Project // www.ilgpu.net // // File: Debug.cs @@ -10,7 +10,6 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; -using ILGPU.IR.Serialization; using ILGPU.IR.Types; namespace ILGPU.IR.Values diff --git a/Src/ILGPU/IR/Values/DeviceConstants.cs b/Src/ILGPU/IR/Values/DeviceConstants.cs index d829de0b7..7b513482a 100644 --- a/Src/ILGPU/IR/Values/DeviceConstants.cs +++ b/Src/ILGPU/IR/Values/DeviceConstants.cs @@ -1,6 +1,6 @@ // --------------------------------------------------------------------------------------- // ILGPU -// Copyright (c) 2018-2021 ILGPU Project +// Copyright (c) 2018-2024 ILGPU Project // www.ilgpu.net // // File: DeviceConstants.cs @@ -10,7 +10,6 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; -using ILGPU.IR.Serialization; using ILGPU.IR.Types; using ILGPU.Runtime; diff --git a/Src/ILGPU/IR/Values/HandleValue.cs b/Src/ILGPU/IR/Values/HandleValue.cs index 48e0fc177..e29ee8860 100644 --- a/Src/ILGPU/IR/Values/HandleValue.cs +++ b/Src/ILGPU/IR/Values/HandleValue.cs @@ -1,6 +1,6 @@ // --------------------------------------------------------------------------------------- // ILGPU -// Copyright (c) 2019-2023 ILGPU Project +// Copyright (c) 2019-2024 ILGPU Project // www.ilgpu.net // // File: HandleValue.cs @@ -10,7 +10,6 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; -using ILGPU.IR.Serialization; using ILGPU.IR.Types; namespace ILGPU.IR.Values diff --git a/Src/ILGPU/IR/Values/Memory.cs b/Src/ILGPU/IR/Values/Memory.cs index 97c1e1f56..2c27b854b 100644 --- a/Src/ILGPU/IR/Values/Memory.cs +++ b/Src/ILGPU/IR/Values/Memory.cs @@ -1,6 +1,6 @@ // --------------------------------------------------------------------------------------- // ILGPU -// Copyright (c) 2018-2023 ILGPU Project +// Copyright (c) 2018-2024 ILGPU Project // www.ilgpu.net // // File: Memory.cs @@ -10,7 +10,6 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; -using ILGPU.IR.Serialization; using ILGPU.IR.Types; using ILGPU.Util; using System.Diagnostics.CodeAnalysis; diff --git a/Src/ILGPU/IR/Values/MethodCall.cs b/Src/ILGPU/IR/Values/MethodCall.cs index 1c16a9525..f9a4208d1 100644 --- a/Src/ILGPU/IR/Values/MethodCall.cs +++ b/Src/ILGPU/IR/Values/MethodCall.cs @@ -1,6 +1,6 @@ // --------------------------------------------------------------------------------------- // ILGPU -// Copyright (c) 2018-2022 ILGPU Project +// Copyright (c) 2018-2024 ILGPU Project // www.ilgpu.net // // File: MethodCall.cs @@ -10,7 +10,6 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; -using ILGPU.IR.Serialization; using ILGPU.IR.Types; using System.Runtime.CompilerServices; using ValueList = ILGPU.Util.InlineList; diff --git a/Src/ILGPU/IR/Values/Parameter.cs b/Src/ILGPU/IR/Values/Parameter.cs index 6cd8ab694..07855e95f 100644 --- a/Src/ILGPU/IR/Values/Parameter.cs +++ b/Src/ILGPU/IR/Values/Parameter.cs @@ -1,6 +1,6 @@ // --------------------------------------------------------------------------------------- // ILGPU -// Copyright (c) 2018-2023 ILGPU Project +// Copyright (c) 2018-2024 ILGPU Project // www.ilgpu.net // // File: Parameter.cs @@ -10,7 +10,6 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; -using ILGPU.IR.Serialization; using ILGPU.IR.Types; namespace ILGPU.IR.Values diff --git a/Src/ILGPU/IR/Values/PhiValue.cs b/Src/ILGPU/IR/Values/PhiValue.cs index d5cf606ce..70536b0e1 100644 --- a/Src/ILGPU/IR/Values/PhiValue.cs +++ b/Src/ILGPU/IR/Values/PhiValue.cs @@ -1,6 +1,6 @@ // --------------------------------------------------------------------------------------- // ILGPU -// Copyright (c) 2018-2023 ILGPU Project +// Copyright (c) 2018-2024 ILGPU Project // www.ilgpu.net // // File: PhiValue.cs @@ -10,7 +10,6 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; -using ILGPU.IR.Serialization; using ILGPU.IR.Types; using ILGPU.Util; using System; diff --git a/Src/ILGPU/IR/Values/PointerValues.cs b/Src/ILGPU/IR/Values/PointerValues.cs index 96c8a958b..ce8567c12 100644 --- a/Src/ILGPU/IR/Values/PointerValues.cs +++ b/Src/ILGPU/IR/Values/PointerValues.cs @@ -1,6 +1,6 @@ // --------------------------------------------------------------------------------------- // ILGPU -// Copyright (c) 2018-2023 ILGPU Project +// Copyright (c) 2018-2024 ILGPU Project // www.ilgpu.net // // File: PointerValues.cs @@ -10,7 +10,6 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; -using ILGPU.IR.Serialization; using ILGPU.IR.Types; using ILGPU.Util; using System; diff --git a/Src/ILGPU/IR/Values/Predicate.cs b/Src/ILGPU/IR/Values/Predicate.cs index eb0f5485a..2e4866ba9 100644 --- a/Src/ILGPU/IR/Values/Predicate.cs +++ b/Src/ILGPU/IR/Values/Predicate.cs @@ -1,6 +1,6 @@ // --------------------------------------------------------------------------------------- // ILGPU -// Copyright (c) 2018-2021 ILGPU Project +// Copyright (c) 2018-2024 ILGPU Project // www.ilgpu.net // // File: Predicate.cs @@ -10,7 +10,6 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; -using ILGPU.IR.Serialization; using ILGPU.IR.Types; using System; diff --git a/Src/ILGPU/IR/Values/StructureValues.cs b/Src/ILGPU/IR/Values/StructureValues.cs index d6ba740a1..fa9b6b7b3 100644 --- a/Src/ILGPU/IR/Values/StructureValues.cs +++ b/Src/ILGPU/IR/Values/StructureValues.cs @@ -1,6 +1,6 @@ // --------------------------------------------------------------------------------------- // ILGPU -// Copyright (c) 2020-2023 ILGPU Project +// Copyright (c) 2020-2024 ILGPU Project // www.ilgpu.net // // File: StructureValues.cs @@ -10,7 +10,6 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; -using ILGPU.IR.Serialization; using ILGPU.IR.Types; using ILGPU.Util; using System; diff --git a/Src/ILGPU/IR/Values/Terminators.cs b/Src/ILGPU/IR/Values/Terminators.cs index fabc56ba1..192227bf4 100644 --- a/Src/ILGPU/IR/Values/Terminators.cs +++ b/Src/ILGPU/IR/Values/Terminators.cs @@ -1,6 +1,6 @@ // --------------------------------------------------------------------------------------- // ILGPU -// Copyright (c) 2018-2023 ILGPU Project +// Copyright (c) 2018-2024 ILGPU Project // www.ilgpu.net // // File: Terminators.cs @@ -10,7 +10,6 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; -using ILGPU.IR.Serialization; using ILGPU.IR.Types; using ILGPU.Util; using System; diff --git a/Src/ILGPU/IR/Values/Threads.cs b/Src/ILGPU/IR/Values/Threads.cs index 9a2c0c239..1f50eca7c 100644 --- a/Src/ILGPU/IR/Values/Threads.cs +++ b/Src/ILGPU/IR/Values/Threads.cs @@ -1,6 +1,6 @@ // --------------------------------------------------------------------------------------- // ILGPU -// Copyright (c) 2018-2022 ILGPU Project +// Copyright (c) 2018-2024 ILGPU Project // www.ilgpu.net // // File: Threads.cs @@ -10,7 +10,6 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; -using ILGPU.IR.Serialization; using ILGPU.IR.Types; namespace ILGPU.IR.Values diff --git a/Src/ILGPU/IR/Values/Undefined.cs b/Src/ILGPU/IR/Values/Undefined.cs index 91b40ec58..6feb5ad29 100644 --- a/Src/ILGPU/IR/Values/Undefined.cs +++ b/Src/ILGPU/IR/Values/Undefined.cs @@ -1,6 +1,6 @@ // --------------------------------------------------------------------------------------- // ILGPU -// Copyright (c) 2019-2021 ILGPU Project +// Copyright (c) 2019-2024 ILGPU Project // www.ilgpu.net // // File: Undefined.cs @@ -10,7 +10,6 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; -using ILGPU.IR.Serialization; namespace ILGPU.IR.Values { diff --git a/Src/ILGPU/IR/Values/Value.cs b/Src/ILGPU/IR/Values/Value.cs index e8500a47c..e6f1e9f6d 100644 --- a/Src/ILGPU/IR/Values/Value.cs +++ b/Src/ILGPU/IR/Values/Value.cs @@ -1,6 +1,6 @@ // --------------------------------------------------------------------------------------- // ILGPU -// Copyright (c) 2018-2023 ILGPU Project +// Copyright (c) 2018-2024 ILGPU Project // www.ilgpu.net // // File: Value.cs diff --git a/Src/ILGPU/IR/Values/View.cs b/Src/ILGPU/IR/Values/View.cs index 9e3e8fc56..a1b1ed15e 100644 --- a/Src/ILGPU/IR/Values/View.cs +++ b/Src/ILGPU/IR/Values/View.cs @@ -1,6 +1,6 @@ // --------------------------------------------------------------------------------------- // ILGPU -// Copyright (c) 2018-2023 ILGPU Project +// Copyright (c) 2018-2024 ILGPU Project // www.ilgpu.net // // File: View.cs @@ -10,7 +10,6 @@ // --------------------------------------------------------------------------------------- using ILGPU.IR.Construction; -using ILGPU.IR.Serialization; using ILGPU.IR.Types; using ILGPU.Util; From 0d578ef661976b1707d425b82c8d2f32facabd10 Mon Sep 17 00:00:00 2001 From: Isabelle Santin Date: Wed, 24 Jul 2024 08:39:42 -0500 Subject: [PATCH 16/16] Fix code styles: line length --- Src/ILGPU/IR/Serialization/BinaryIRWriter.cs | 3 ++- Src/ILGPU/IR/Serialization/IIRWriter.cs | 3 ++- Src/ILGPU/IR/Types/TypeNode.cs | 3 ++- Src/ILGPU/IR/Values/Value.cs | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/Src/ILGPU/IR/Serialization/BinaryIRWriter.cs b/Src/ILGPU/IR/Serialization/BinaryIRWriter.cs index f1eb30ff7..b906a939b 100644 --- a/Src/ILGPU/IR/Serialization/BinaryIRWriter.cs +++ b/Src/ILGPU/IR/Serialization/BinaryIRWriter.cs @@ -17,7 +17,8 @@ namespace ILGPU.IR.Serialization { /// - /// Wrapper class around for serializing IR types and values. + /// Wrapper class around + /// for serializing IR types and values. /// public sealed partial class BinaryIRWriter : DisposeBase, IIRWriter { diff --git a/Src/ILGPU/IR/Serialization/IIRWriter.cs b/Src/ILGPU/IR/Serialization/IIRWriter.cs index c75852a1e..688b3922a 100644 --- a/Src/ILGPU/IR/Serialization/IIRWriter.cs +++ b/Src/ILGPU/IR/Serialization/IIRWriter.cs @@ -14,7 +14,8 @@ namespace ILGPU.IR.Serialization { /// - /// Describes a wrapper that serializes IR values and types to some implementation-specific instance + /// Describes a wrapper that serializes IR values and types + /// to some implementation-specific instance /// public partial interface IIRWriter { diff --git a/Src/ILGPU/IR/Types/TypeNode.cs b/Src/ILGPU/IR/Types/TypeNode.cs index b1f47783b..0fa7cefb5 100644 --- a/Src/ILGPU/IR/Types/TypeNode.cs +++ b/Src/ILGPU/IR/Types/TypeNode.cs @@ -353,7 +353,8 @@ protected abstract Type GetManagedType(TTypeProvider typeProvider where TTypeProvider : IManagedTypeProvider; /// - /// Serializes this instance's specific internals to the given . + /// Serializes this instance's specific internals + /// to the given . /// /// /// The specific type of . diff --git a/Src/ILGPU/IR/Values/Value.cs b/Src/ILGPU/IR/Values/Value.cs index e6f1e9f6d..10b8d122b 100644 --- a/Src/ILGPU/IR/Values/Value.cs +++ b/Src/ILGPU/IR/Values/Value.cs @@ -546,7 +546,8 @@ protected internal abstract Value Rebuild( IRRebuilder rebuilder); /// - /// Serializes this instance's specific internals to the given . + /// Serializes this instance's specific internals + /// to the given . /// /// /// The specific type of .